11

I'm a software developer. For the better part of a year, my team has been working on a Big Project. Until recently, I had no involvement in the project, and so I only had a vague understanding of what was going on with it.

A newer employee was given a Small Slice of the Big Project to work on. After several instances of missed deadlines and extensions, he decided to leave the company. His intention was to complete the Small Slice before his notice period was over, but that didn't happen and it was given to me to complete within the week after he left.

His code is a mess, and didn't come very close to finishing the Small Slice. Management was made aware of this. I was told to prioritize making it work over fixing style and design issues, which I've been doing. I don't have a concrete design document or technical requirements to work with, so I've been cobbling together the intended functionality from what work the other employee did and asking the Big Project's lead engineer questions.

The week wasn't enough time to complete it. Management was frustrated that I wasn't finished, but gave me another week (this past week) to finish it. Unfortunately, the lead left for vacation in the middle of the week; while the vacation was approved by management, no one told me about it, so I don't have access to him as a resource and I wasn't able to prepare for that in advance.

As I got towards the end of the week I was concerned that I wouldn't finish on time, so I got approval from my supervisor to work overtime this weekend. I did, and I'm still not finished. We have a meeting with management on Monday about the Big Project, and I'll be expected to report that the Small Slice is finished and ready for testing. My current plan is to come in early on Monday and try to finish before the meeting, but I'm not sure if that will help. I should mention that the final, hard deadline for the Big Project is in two weeks. The lead will be out of the office until the middle of next week and my supervisor will be out on Monday.

I feel like management has had unrealistic expectations for me in this project. I also feel that the state the previous employee left the Small Slice in has slowed me down, and if I had been the one working on it from the beginning I would have met the original deadline, which was over a month ago.

My question is this: how do I handle the likely-to-be-uncomfortable meeting with management and avoid negative repercussions?

  • 12
    Prioritize making it work over fixing style and design issues : the usual mistake. For anything non-trivial, it makes the development actually longer. Been there, done that, failed deadline. – gazzz0x2z Aug 14 '16 at 6:40
  • 1
    As already pointed out, this was about 75% management's fault and 25% yours. Never commit without doing planning and preparation (especially when you have not been deeply involved in a project). Can they push the "big project" back? Can they allocate more resources to the "small slice"? Can another programmer assist you on the "small slice"? What is/are the best way(s) management can help you solve this problem (without you dumping it on them)? - Answers to these questions will help you in your meeting. – G.T.D. Aug 14 '16 at 16:43
  • 1
    @B1313 I would say this is 100% management's fault. An employee has no right to refuse work or what is asked of them. – Dan Aug 15 '16 at 16:27
  • 1
    "After several instances of missed deadlines and extensions, he decided to leave the company. His intention was to complete the Small Slice before his notice period was over, but that didn't happen" - 4(?) weeks to develop, and failed (which you might expect from his history of poor estimation). You expect to do it in 1 week, without his project knowledge, including unpicking his code? Then you miss deadlines and extensions? Are you a senior / more experienced dev than he was? Is there a much wider problem with management of software development, estimation and deadlines with this company? – TessellatingHeckler Aug 15 '16 at 18:05
  • 2
    Possible duplicate of How can we protest a deadline that is too short? – gnat Oct 11 '17 at 9:26
9

Unfortunately, you've dug yourself a bit of a hole here. Never commit to a deadline until you've estimated the work and are reasonably confident you can make it. While it may not seem like it, management would rather have known of the problems as soon as you started on the project, rather than now as that would have allowed them to make better decisions - for example, finding some more resource to help you the project.

However, you are in the state you're in, so what's the best course of action now? What your management need is a realistic estimate when the project will be complete. Spend your time on Monday morning working out how long it will take you to complete the project, and come to the meeting with that information prepared. Management won't be happy as you didn't give them warning of the problems, but at least you'll note bf letting them come up with a plan.

  • Management is aware of the issues with the work the other employee left behind; I'll clarify that. – user56239 Aug 14 '16 at 6:49
  • That puts you in a slightly better place, but you still implicitly committed to their deadlines which puts the onus back on you. – Philip Kendall Aug 14 '16 at 7:04
  • OP never stated he committed to deadlines. Only that he was given deadlines. – paparazzo Aug 14 '16 at 9:47
  • 11
    OP didn't push back on deadlines = OP accepted them. If you take a work and does not make clear that the deadlines are not realistic, you are giving the message 'the expected deadlines are ok for me'. – Paolo Aug 14 '16 at 12:23
  • 1
    @Paolo When the OP was originally given the task and told 7 days with no spec and no prior exposure to the code. At that point OP had nothing to go on if the deadline was realistic. Now missing the second deadline - OP had a week with the code and should have pushed back if 7 more days was not enough. – paparazzo Aug 16 '16 at 15:31
6

You went in without a plan, and messed around trying to cobble things together. Now you're wondering why things have gone South.

You need to go in on Monday with a feasible plan of resolution to go with the excuses at the very least. Excuses on their own are not a good look. So spend some time on that, rely on yourself as much as possible, no one else has the same vested interest in seeing you succeed, and you're setting yourself up as a potential scapegoat. Whining at this point is not constructive, you have had two weeks to do that in.

So make a list, outline your tasks, itemise what has been done and what has not. Flag anything you need clarification on and move forwards from there. In future, do this before you start and add/delete to the list as information becomes available.

  • 1
    +1 because stating clearly OP's fault but also providing useful advice to recover from this sticky situation. – Paolo Aug 14 '16 at 12:28
  • I would also tack on getting clarification to understand what the "big project" is and what the "small slice" is supposed to do by itself and in relation to the "big project", so that way anything you already are "clear" on matches the big overall picture and if not, you can know it ahead of time and adapt already done parts to work as needed. – G.T.D. Aug 14 '16 at 16:40
4

"Unfortunately, the lead left for vacation in the middle of the week; while the vacation was approved by management, no one told me about it, so I don't have access to him as a resource and I wasn't able to prepare for that in advance."

You should have asked management for an alternate point of contact the minute you found out that the lead had left on vacation. In addition, in all the outfits I have ever worked in, when the lead has to take time off, the lead - and sometimes, the lead is me - always make sure to leave contact data so that they can be reached. If your lead vanished into thin air without leaving behind contact info, it's a problem. A problem that you have to escalate with your management.

It's not clear to me at this point that even if the lead did not go on vac, that you'd be able to finish the project anyway. Since you work with the lead to complete the Small Slice, it'd be nice if the lead did some speaking up for you and back up your assessment that finishing the Small Slice is challenging. In fact, the lead should have come up with an original estimate as to how long it should take you to finish the Small Slice and adjust the estimate as you do the work and uncover issues that were not apparent.

It is unlikely that you'll finish by Monday morning. So go for Plan B: you do as much as can be done with the info and support that's available to you, produce something that you can show, go over the missing pieces and what it takes to put them in and have an estimate ready as too how long it's going to take you to finish the rest of the Small Slice, assuming that you get the support you need.

The impression that you want to convey on Monday morning is that even though you did not finish, you know what you are doing and what you need, and that you can finish the Small Slice on your own, as long as you get the support from the lead that you need. And you know how long it takes.

In general, don't let those who have no idea what it takes to finish set deadlines for you without your input. Because if you let them do it, you're setting yourself up for frustration - you and them.

3

You were given bad code and no documentation. If deadlines were missed multiple time then 1 week is not reasonable for you to recover.

No documentation is a management problem.

If you don't even know what the Small Slice is supposed to do then you cannot come up with a good estimate.

I would make three lists of modules

  • Working (I think)

  • Not working but I think I know what it is supposed to do

  • Not working and I don't know what it is supposed to do

The second you can create an estimate of what it will take to fix it

The third all you can do is put in a guess

If you cannot be sure you will be done in two weeks then tell them.

List the names of the modules. If they ask where you could use help be able to list the modules.

You could have managed expectations better but this problem was not created by you. This is a meeting where you need to manage expectations. If they tell you it has to be done this week don't say OK unless you are sure you can get it done this week.

  • 1
    "If you don't even know what the Small Slice is supposed to do then you cannot come up with a good estimate." This is it. Every good project management book will agree with this. Even with a detailed design spec and years of experience, your estimates are only ever estimates. Code Complete (Microsoft press) explains this in detail. – David Aug 15 '16 at 14:57
1

As a software developer, you need to manage expectations. By not fighting the deadline you agreed to it and the expectation was thus:

  • The project will finish in a week.
  • The project will finish the week after that.
  • The project will finish after another weekend of work.

Anyone can see that this will likely continue for some time. To make matters worse, you will also be held accountable for the quality of the project, which is very bad news, considering:

I was told to prioritize making it work over fixing style and design issues, which I've been doing.

So the answer is quite simple:

STOP DIGGING!

Your fault was that you jumped head first into this project, and said yes to whatever arbitrary deadline that was set for you, without really knowing about the work that was left to do. Admit that mistake to management. Don't blame them, or they will push back.

After that they will probably ask you for a new deadline. Remember the part about "stop digging". Tell them how much time you need to come up with a detailed plan of what's to be done and an estimate for the time to do this properly. Give them an estimate for how long it takes to make a real estimate.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.