3

I'm an intern at a development company for an ERP system.

The company is currently in its infancy, and as such the code base that's being developed is relatively new. My task is to write comprehensive unit tests for all back-end operations, starting from scratch. Currently, our back-end codebase occupies about 50MB of data, uncompiled, with about 5 million lines (we like our whitespace).

When I sent my boss a mockup of some of the tests, he said it was perfect, and the rest of them should follow suit. With the formatting that I patterned out, each test occupies more space than the code it's testing, and it's all niched out, so copy, paste, and tidy is not a viable option. in the span of 5 days, I've managed to blanket just over 12% of the code base, and my boss expects me to be done with this in 4 days, or this coming friday. My boss gave me this deadline, I had no say. \personal.

That said, there is no way I'm getting this done. I could easily ask my boss for some more time, and more than likely it would be okay. The problem is that this is off on a logarithmic scale. I need 10 times as much time to get this project done, not just a week or so. Working more hours is not possible.

Both me and my boss highly value this project, and do not want to abandon it. This, however comes with the setback that hearing a month long project will probably deject my boss from this project, and my skills as an intern, and would likely result on him putting me onto things that never make it into production (as I have most of the time before this).

I'm not keen on going back to the burner, where my code won't see the light of day. How do I ask for a (comparatively) enormous amount of time to finish a project?

13
  • so... i'm guessing you don't do agile development, or daily standups, huh? If i were you, i'd buy any respectable agile ebook, read it over the next two days, and approach your boss with a new path to managing development. You may or may not be a good developer, but this would put you on the fast track to management.
    – bharal
    Jun 27, 2017 at 18:45
  • 1
    @bharal the platform we're using takes a full 8 hours to do a build, and there are 4 people at the company. with 4 people even agile is slow
    – user53861
    Jun 27, 2017 at 18:47
  • 3
    I can't imagine how anyone could write unit tests for 120,000 lines of code a day. How can you even read that much in a day to see what tests you should be writing?! Jun 27, 2017 at 20:09
  • @LorenPechtel more than 1/2 of the lines are whitespace / comments. after that, many of the functions are verbose, and further still, there are groups of functions that I can cater to at once.
    – user53861
    Jun 27, 2017 at 20:11
  • 1
    8 hours, huh? well, while you're reading about agile, read the microservices blog by martin fowler - martinfowler.com/articles/microservices.html - you'll be CTO by next month. Also, agile isnt' about fast/slow. It's about bubbling up progress and assisting in managing expectations and improving estimates.
    – bharal
    Jun 27, 2017 at 20:14

3 Answers 3

13

in the span of 5 days, I've managed to blanket just over 12% of the code base, and my boss expects me to be done with this in 4 days, or this coming friday. My boss gave me this deadline, I had no say.

How do I ask for a (comparatively) enormous amount of time to finish a project?

You owe your boss your best estimate, along with the reasoning behind it.

Your boss probably assumes that you can speed up subsequent steps due to what you learned in your earlier steps. Often, that's a reasonable assumption.

But if you spend another day on it, you can report back how much more of the code base has been covered. And if you still decide you need a lot more time, you should give your boss your best estimate to cover the entirety.

If your boss decides that you have less time, ask if there is a way to prioritize the code base so that you can cover the most "important" parts in your limited time. Sometimes end dates are driven by business needs - it happens. We have to learn to do the best we can with whatever we are given.

And if your boss decides to abandon the project due to insufficient time to do the work at hand, that's something you'll just have to live with. It happens all the time. You still did valuable work (perhaps work that can be completed at some future date, perhaps by someone else).

5

How do I tell my boss?

"Hey boss, it took me 5 days to cover 12% of our codebase. There is no way I will be able to cover another 88% in 4 days".

PS. If for some unfathomable reason the boss is under the impression that the remaining 88% could be done in 4 days, the this is extremly helpful. And I wouldn't insult my boss by assuming he can't do the maths in his head.

2
  • That's not very helpful; it should include rough estimations of what it WOULD take for the boss to be able to do anything useful with the content of the email.
    – Erik
    Jun 28, 2017 at 9:49
  • Well, it can still be useful for the boss if they have any ability to extrapolate: but yeah, there's some benefit in adding the estimate of ~40 days
    – Jon Story
    Jun 28, 2017 at 16:22
4

As hard as it is, I found it always best to be completely open about such things.

The earlier you communicate the more room there will be to mange this properly.

Your Boss is responsible for the resources and if he decides a goal is not worth pursuing as soon as he knows the real cost involved that is his call to make. That said, being open and trustworthy with you estimates is always a good trait to have.

If you are convinced that this task is what you should be doing, even with the time needed to complete it, find convincing arguments and make your case to your boss.

You must log in to answer this question.