June 05, 2013, 6:00 AM —
Image credit: flickr/Vlad Iorsh
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.
Only include facts and objective observations. Leave all conclusions up to whomever (if anyone) reads what you've written.
Make a few polite suggestions for improvement. Don't sound the warning bells, don't be doom and gloom, just be polite and subtle.
2. Continue to do your best on the project
Try to provide answers, not just problems. Look like you are trying to fix them.
Focus on personal excellence - strive to write ever better code, meet ever higher standards of quality and functionality.
Definitely don't slack.
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?
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.
You can show some leadership skills here that might help you later along the way, treat the problem as a challenge.
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 you
Keep a paper trail (e.g. diary, saved emails, etc).
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.
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.