One last ditch attempt to create a paperless office led me to my own definition of Capability Maturity Model (CMM). There it was scribbled on a post-it.
SEI CMM - a software development model where-in an engineer focuses virtually on everything except coding; Has largely been responsible for beating creative software development to death; Soon to be replaced by a more lethal CMMi. [Naren 2002-2003]
I can't believe I said that. That was a while ago; but it still holds true. In fact the greatest of the systems consultants, Tom DeMarco and Timothy Lister have better insights to offer on what they call the paradox of process improvement programs.
If you are already a CMM Level 2 or higher organization, remember this: The projects most worth doing are the ones that will move you DOWN one full level on your process scale. [Peopleware]
It is 100 percent true; none of the innovative and interesting companies perceive CMM certification as a competitive edge. For a second, imagine Google a “CMM level 5 certified” search engine; would you think that CMM is the key differentiator not the page rank algorithm? If so, you must be a Software Quality Assurance (SQA) guy in Indian IT Company ;)
A magnanimous guinea pig (customer) once came along and said “You come up with a high value product and you will get a dollar if I am happy. But, if you screw up you get nothing. On the other hand, you can have a dime now and excel in a monotonous support job that demands high quality. You have a choice to make.”
Thanks to risk-averse business model, much of Indian CMM frenzy IT service industry has long stayed clear of innovation unlike the high value companies in Silicon Valley.
Consider this – Go ahead use CMM for your new product development; churn out piles of documentation like use cases, UML diagrams, test cases and system integration plans, live project plans; quantify all the unknowns with stereotype metrics. Sure that sounds like a plan. But remember this is what that is going to happen. Your competitor, a startup working on a shoe string budget has already captured the market while your architects are talking about a generic framework for integrating with “third-party” products.
I neither want to sound preaching nor bitching. But I guess it is high time the big software companies gave the control back in to the hands of engineers.
A quick search on Amazon and Google shows how popular CMM is. CMM is not at all a bad thing as I perceived it to be in the first place. It is in fact ideal for improving operational efficiency of a mature system. No doubt processes form the back bone in any service industry.
Let creativity, chaos prevail during the innovation phase. Most of the times you want it to prevail through out the life cycle of the product. At times you have to let it go. In that case, instead of institutionalizing CMM stack, apply it at a micro level as a methodology for product life cycle management as some sort of migration strategy for seasoned CMMers. See the self explanatory diagram below.