It’s a situation that all software developers run into sooner or later: it becomes clear that a project you’re working on is highly likely to fail. Too tight of a delivery schedule, poorly defined or constantly changing requirements or simply bad management can all lead to a feeling in the pit of your stomach that all of your efforts are going to be for naught. What should you do when you’re a developer on a project that seems to be circling the drain?
That’s a question that was asked recently on StackExchange and has gotten a lot of responses. While some suggested getting off the sinking ship as quickly as possible, many recommendations for dealing with the problem were offered. Here are a handful of the common themes that emerged:
1. Share your concerns with the powers that be
Communicate your concerns in the most concise and non-confrontational way possible up the management ladder. Summarize the risks, but do not try to impose your conclusion on them.MrFox
Only include facts and objective observations. Leave all conclusions up to whomever (if anyone) reads what you've written.Dan Pichelman
Make a few polite suggestions for improvement. Don't sound the warning bells, don't be doom and gloom, just be polite and subtle.cadmium
2. Continue to do your best on the project
Try to provide answers, not just problems. Look like you are trying to fix them.Ozz
Focus on personal excellence - strive to write ever better code, meet ever higher standards of quality and functionality.code4life
Definitely don't slack.Philipp
3. Focus on what can you learn or gain from the situation
Oftentimes, the same chaos and disorganization that comes with a failing project, affords you the opportunity to shine. So look at the project this way: what opportunity does this failing project afford, for the light to shine on all of my strengths and best qualities? What lessons am I learning from this experience, that will make me a better professional and a better person?code4life
This is your chance to practice important skills in systematic thinking and interpersonal communication. Understand and visualize the issues and potential opportunities that are being missed so you can develop a strategy to communicate these as clearly and simply as possible.Tone
You can show some leadership skills here that might help you later along the way, treat the problem as a challenge.Eran Medan
4. Prepare for the worst
CYA. If the project does fail and you suspect the manager will start blaming everyone but himself, make sure you have enough proof that you did everything required of youcadmium
Keep a paper trail (e.g. diary, saved emails, etc).Dan Pichelman
Be prepared to defend all of your code.... Keep networking, and keep your options open if the situation becomes too difficult or you become a victim of a mass layoff.Jim G.
Several people also recommended reading Death March by Edward Yourdon about the best way to deal with working on such projects.
Do you have additional advice for developers dealing with a situation like this? Please share in the comments.
Read more of Phil Johnson's #Tech blog and follow the latest IT news at ITworld. Follow Phil on Twitter at @itwphiljohnson. For the latest IT news, analysis and how-tos, follow ITworld on Twitter and Facebook.