There was a study done in 1995 (22 years ago as of this writing) that concluded:
- Only 16% of software projects were successful
- 54% were challenged (cost overruns, budget overruns, or deficiencies)
- 31% were outright cancelled
- The average project runs 222% late, 189% over budget, and delivers only 61% of the specified functions.
Failure has become the IT norm. Today I want to discuss some of the reasons why, and in a follow up article, I’ll discuss my life mission to do something about it.
Most software projects I’ve quoted or started had a deadline date that was decided well before the project starts. 99% of the time, this is an arbitrary date of when “it’d be nice to have it.”
OR, a project is started with the intentions of “doing it right,” but a few months into the project there becomes a sudden need for it “to be done now.”
There’s an excellent quote from the Mythical Man-Month (a software development book written in the 70s):
But false scheduling to match the patron’s desired date is much more common in our discipline than elsewhere in engineering.
If anything, this has gotten worse in the age of iPhone Apps and overnight shipping. People are set on just deciding it’s time for a project to be “due.”
A lot of projects don’t have proper budgets allocated to them. Without knowing the specific requirements of a software, it’s impossible to determine how much it could cost. Much like home remodels or other labor intensive work, the cost of a software project is based on how long it takes the geeks working on it to complete it.
Companies go in looking for the lowest possible price on the project, and ignore the suppliers (generally the more experienced ones) who have strong cases for why it costs as much as it does.
Worse is when the budget runs out partially through the project. It’s important to ensure that the budget is in place to retain and optimize the solution down the road.
Clients often complain about the “disappearing developer” act that is very common in our industry (as well as graphic design). More often than not, the types of developers or designers that disappear are the ones that weren’t that professional in the first place (see, “No Budget,” above). Hiring the cheapest and lowest common denominator generally comes with lower professionalism and dedication.
We see quite the opposite, which is the “disappearing client” act.
A project will go well and we have your attention for several weeks, maybe even several months. Then, suddenly, our requests for testing or meetings are ignored.
You’ve become busy with another project or company emergency. The budget came in a lot lower than you expected, or you had delays/issues in other projects that needed your attention.
This, of course, is not the largest issue. We understand that things happen (I own a business myself and frequently have to delay my vendors while dealing with important issues).
The problem comes when all of a sudden, these lost weeks (or months) show up at the last minute with an urgent need to rush the project as soon as possible, which then creates:
No Focus on Quality
When there’s a haste to deliver the software or website, quality will suffer. Things won’t be tested or documented properly, and solutions will be rushed out. While this may save a couple of hours or even a couple of days, it always ends up in weeks (sometimes months or years) worth of delays.