Software projects, regardless they are small or large, are likely to fail or go overtime/overbudget today not much less than they did 60 years ago. What is puzzling is that, over this period, academy and industry defined, if not a complete theory system, at least a set of rules, best practices and “don’t” lists that, they claim, can provide accurate (or at least good enough) estimations for the effort required to complete a software project, while also providing a set of tools for managing such project to reach the desired objectives.So the real question is why, projects keep failing and management keeps ignoring the wealth of evidences that would lead to a better handling of such projects.
Yesterday I watched the webinar “Software Estimation in an Agile World” by Steve McConnell. I “met” Steve years ago, nearly by chance, reading his book “Software Project Survival Guide”. He is a great Software Engineer so listening to what he has to say on the matter is always worth the time.
At a given time in the presentation a point is made that progressing the CMM level of a company not only allows to obtain very good estimations, but also development costs are reduced.
So, what can prevent any wise company manager/owner/leader to climb the CMM ladder? I have three hypothesis and my guess is that the real reason is a specific combination of these three.
- Mystical Data. At CMM level 0 the company is in the wilderness of mystic evaluation. There are no scientific data since there is no data collection a thus no data elaboration. The company may, in “bona fide”, reckoning that current practice is actual faster without the burden of process.
- NAH Syndrome. Sometimes I heard this. It goes something like “yes, CMM and real process and the like are useful for large companies or for places like NASA and nuclear reactors [a favourite example], but CMM is Not Applicable Here, it would cost too much and it would slow us out of competitiveness”.
- “Lottery Syndrome”. This is very close to the reason you may want to enter a Lottery. You know that the chances to win are low, BUT they are not zero. In the same way the company knows that driving a project without a CMM may be risky, but there is an actual chance that the outcome be a project developed in the given time and budget and in a way that makes the customer happy.
What do you think?