Why the CMMI or other standards have remained unattractive or avoided by software giants?
Tuesday, 17. June 2008, 08:01:59
Why the CMMI or other standards have remained unattractive or avoided by software giants, compromising the software quality, and providing later on with service packs and patches to be applied?
Many software giants are not in the favour SW-CMM or P-CMM or any among the whole CMMI, just because they simply does not want the lengthy assessment to be performed on regular basis which may impact the right time to deliver the product, opening the major loopholes in the software product. Therefore, it is tendency to offer service packs and security patches after the software has been delivered without going through the quality procedures offered by CMMI like standards.
The short answer is because most software giants base their projects on people rather than processes. The Google example is the most well known, but Microsoft, Sun or IBM have similar policies.
The idea is that quality software requires discipline, and there are two extremes in the discipline axis: on one end you have disciplined people to work with and on the other you choose to follow certain processes to the letter. CMMI's focus is mostly on processes, while Agile methodologies (Scrum, XP, open source etc) focus on people.
This doesn't mean that a framework like Scrum has no rules; it does, but one of the first is that the team is self-organizing. I saw statistics related to Scrum and the results are impressive.
So, if you look to what software giants are using you will see that they are using one or more flavors of Agile: Microsoft is using MSF, Google is using Scrum, XP and some other flavors, IBM is using CMMI in some departments, open source and some form of agile in others etc. This is simply because a well implemented Agile framework gives much better results than CMMI.
Regarding the Service Packs and patches, in today's business world there is absolutely no way to eliminate them, no matter which methodology or framework you are using. You can reduce the number of issues through some engineering practices (which are common to all methodologies) like inspection, unit testing a.s.o., but the even if the software is perfect when you release it (which surely isn't), new threats and changes appear every day. So, the business reasons will push you to release new patches and service packs.
I don't say all this to defend Microsoft. I believe that their mistake is not in the way they build the software; it has much improved in terms of security and stability. Their mistake is in the way they are using the software as a business weapon; instead of doing the best software they can, they try to kill the competition with it. Sadly for them, it doesn't work anymore. Sadly for their users, they are still doing it.
Personal advertisement: I am PassionIT and I help teams develop high quality software. I train, I help improving and I work hands-on, depending on the needs. Contact me if you need help. Alexandru Bolboaca-Diaconu
