The Unrealistic Deadline Anti-Pattern
Posted by Davy Brion on December 23rd, 2008
I just read this post from Mohammad Azam about a project that was impossible to do using Agile practices.
I quote:
A reasonable deadline for the project was approximately 3 months but it had to be completed in a month. At this time an agile book will indicate that the developer should talk to the owner and come to a reasonable deadline. Unfortunately, in this case the owner was fixed with the deadline and was not willing to move it further.
The author further concludes that following the agile principles would have killed the project. He dropped some of the agile principles and practices, and finished the project in 29 days.
Yes, the resultant code was messy but at the end I get to keep my job.
I have no problem with Mohammad dropping agile practices/principles in order to complete this on time and to help him keep his job (especially in the current economy). I do have a problem with the idea that ‘Agile’ can kill a project. The only thing that killed this project is the unrealistic deadline which was set by the owner. The fact that the project was delivered within the requested time frame, and even assuming that it is completely satisfactory to the owner, does not mean that it was a good idea to hold this project to a deadline which only allowed for one third of the estimated workload.
Now some of you are probably thinking “the deadline couldn’t have killed the project since it was delivered within that deadline!”. True, to a point. We all know what happens when developers face tight deadlines: they take technical shortcuts and they accumulate technical debt. Mohammad already stated that the resulting code was messy so i guess it’s safe to assume there’s quite a bit of technical debt there. Being in technical debt is like owing money to Tony Soprano… you better get out of debt fast or things are gonna get much worse, very soon even. The longer you wait with paying off the debt, the more you’ll lose certain abilities and possibilities.
Getting out of technical debt can be pretty expensive, but there’s not really an alternative. If you don’t get out of debt, further maintenance of the code base and adding new features will only become more expensive over time. Failure to pay off the debt will sooner or later kill the project entirely because the gains that the project brings are no longer greater than the costs that come with it. At that point, the decision is often made to build a new system to replace the old one. The new one is gonna fix all of the problems of the old one. And if you’re lucky, the managers will have figured out by then that unrealistic deadlines only cost more money in the long term than a reasonable deadline would have.
December 23rd, 2008 at 5:44 pm
His real mistake was not quitting. A manager that demands a project under inappropriate time constraints, forcing the sacrifice of quality, will demand another project be that way in the future, and another, and another, and another. There is good work to be had out there, for good people, with good people, on good projects. The fear of a lack of job alternatives will only allow more managers like this to run more projects like that, as their employees will begrudgingly go along for the ride. Let some other idiot take on the project that will compound maintenance headaches for future days to come.
December 23rd, 2008 at 7:24 pm
i mostly agree with that and normally i’d recommend quitting in a situation like that as well… but it’s not always that easy and depending on a lot of other stuff it might not always be a good idea.
December 23rd, 2008 at 10:53 pm
Something’s got to give… If both scope and cost (time) are fixed, quality is the only variable left. Mohammed was on a worker visa… on a visa you don’t quit right away. However, if I were him, I’d be looking out for a new job right now
December 23rd, 2008 at 11:34 pm
[...] The Unrealistic Deadline Anti-Pattern (Davy Brion) [...]
December 24th, 2008 at 6:50 am
Hi,
Thats the main point I was trying to make. Quitting is not easy when you are on a Worker Visa. Without worker visa you are forced to find work in 30 days or leave the country. With these strict rules do you really think anyone in this situation can think of quitting the job?
December 24th, 2008 at 12:24 pm
I wonder what a contractor would have done.
December 25th, 2008 at 1:14 pm
This scenario can be easily solved using the Look For Another Job And Then Quit pattern.
January 7th, 2009 at 1:05 am
Revisiting the thread after quite some time, but here we go:
@Mohammad – I have to admit that I did not realize a visa was in play, which certainly complicates things but doesn’t negate my (shared by everyone else) point. It would adjust the timing somewhat, however.
@Mai – I provided my answer _as_ a consultant/contractor but hold it equally dear as a permanent employee (which I have been from time to time and expect to be from time to time). This is a classic case of “If you can’t change your job, change your job.”
@Den Ben & Jimmer – right on, brothers!