351

I am a developer in a 5-member team and I believe our project is headed for disaster. I'll describe why in a moment, but my question is: how should I behave?

The deadline is in 1.5 months, and I feel no matter what we do, this project will fail. I'm of the opinion that we should just terminate the project and stop wasting our time, but politically I think it's impossible for our manager to do that.

What should I do in this case? Should I put in extra effort, or should I just take it easy? And what should I say to the manager?

Reasons this project is headed for failure:

  • With deadline approaching many of the must-have features are not finished
  • Application is unstable and very difficult to use
  • System is very convoluted, code very hard to understand, very difficult to change - Data model is too driven by a complex relational database (100+ tables)
  • Unclear leadership; the manager responds to new information with major changes
  • Almost no automated tests or unit test
  • Heavily depends on other systems, but no integration tests yet

In fact, we actually just inherited this project (along with the mess) around 1-2 months ago from another dev team under the same manager, who has worked on it for a few months.

Louis Rhys
  • 6,122
  • Partially, you are part of a problem. Why didn't you implement unit tests? As a developer, it should be your duty. You can add that as a big fail for whoever managed that project. – BЈовић May 10 '13 at 19:07
  • 2
    Related question (but I don't think a duplicate): What is the most productive way to handle development-related failures?. Best advice I could give you is just to let management know, and then do your best. You can't control the jobs you're assigned to, but you can control your reaction to them and prove you're a valuable employee who will always do their best no matter what. – Rachel May 10 '13 at 20:15
  • What kind of software process are you using? Waterfall/Agile? And which one? RUP/Scrum/XP... ? – Sjuul Janssen May 29 '13 at 15:50
  • 39
    Update your resume. Don't lose sleep over somebody else's problem. Expect things to get extended after the deadline is passed. – Sean McSomething Jul 19 '13 at 20:53
  • Well, that was two months ago. What happened? – kevin cline Aug 20 '13 at 16:29
  • 6
    @kevincline it's a long story, but at the end we delivered it on time, with a lot of bugs and missing features. They seem to want the system rather badly, so they decided to give us more time. Our reputation did suffer a lot, but generally people realized a lot of people did a lot of mistake in this project, so we are not being the scapegoat for this. Project-wise, it went better than I expected, but personally, working in this project and codebase for months is really demotivating – Louis Rhys Aug 21 '13 at 02:50
  • @BЈовић, I think you're making an assumption. How do you know Louis is even allowed to write unit tests? Do you actually know the context behind this? – Sam Sep 28 '13 at 23:33
  • 1
    No matter how bad the previous team, 1.5 months before deadline is not a got time to replace them, with the resultant learning curve for the new team. If I were the manager, I would have left the project with the team ought to understand it. – Mawg says reinstate Monica May 08 '15 at 10:10
  • It's the right time to replace them if you can change the deadline to 15 months. In which case it was a "target", not a "deadline". But the "manager responds to new information with major changes" - that means it will never be finished. – gnasher729 Nov 01 '22 at 11:52

20 Answers20

330

Communicate your concerns in the most concise and non-confrontational way possible up the management ladder. Summarize the risks, but do not impose your conclusion on them.

Management must always have the choice of what to do, but it is your job to assess and communicate the situation. Use email, so as to leave a paper trail when things go south.

Having done that, keep working on the project in good faith.

Keep in mind, you may not know everything there is to know about the project, its backers, and financial decisions behind it. Management decisions that seem stupid to you might actually be based on smart reasoning that isn't visible to you.

samthebrand
  • 368
  • 2
  • 12
  • 27
MrFox
  • 3,398
  • 54
    1. One thing I'd add is that when management decisions seem stupid to you, there is a slight chance that they actually have good reasons that you have no visibility into, but most of the time they are indeed stupid. Of course it is in management's best interest to convince you otherwise ;-)
  • – Sergey Kalinichenko May 10 '13 at 19:05
  • 191
    +1, but "working in good faith" doesn't meaning sacrificing your personal life to join a death march of endless unpaid overtime. – kevin cline May 10 '13 at 22:09
  • "Use email": Do you think e-mail is better than talking to him, e.g. over coffee/tea? – Louis Rhys May 11 '13 at 02:06
  • 28
    @LouisRhys Anytime you're dealing with something sensitive where emotions can come into it, and telling someone that something important might fail that they're invested in counts, having a paper trail can be really important. This is definitely a time for CYA. – Jeremy Pridemore May 11 '13 at 04:43
  • 3
    I also suggest printing those emails... – Radu Murzea May 13 '13 at 13:06
  • 19
    @LouisRhys You can talk with him over cofee/tea, but always write up your main concerns in an official email afterwards. When the shit hits the fan in 1.5 months you can refer back to the email you sent and thus avoid any blame for the "why weren't we told sooner?" questions that will start to come from up high. It also acts as an "actionable" item, meaning your manager will feel more inclined to do something rather than duck his head and hope everything just works out OK in the end. – Mike Weller May 14 '13 at 12:42
  • I'm going through the same thing right now. This is SO important, and not just as a CYA or for "I told you so" later. What Mike says above will happen as the blame is passed on down the food chain. Just make sure it doesn't stop with you and you're doing all you can on your part. I would add that it might be a good idea to include your other co-workers in the discussion as well, but this really depends upon how your manager would take it. Just tell him that you'll write up the highlights of the conversation and if you can add the rest of the group. It may spur further discussion and pressure. – Rodger Cooley May 14 '13 at 19:53
  • 4
    In your summary, try to avoid technical details and opinions if possible, but phrase things in such a way that can be read and understood by someone who is not a specialist in your technology, but will be able to follow your reasons for concern and take that into account when making a decision. – TobyEvans May 29 '13 at 13:00
  • I find it helpful to raise concerns as 'risks' and 'impacts'. PMs seem to love talking about risks and impacts and it will be more effective to frame things in their language. "Due to the lack of integration testing, there is a risk of unplanned integration issues which may require significant resources to address and will impact the deadline." Something like that. – TallGuy Jun 15 '18 at 01:36