IMHO a basic issue with maturity models is that they assume you know the end state. Maturity models also tend to take on a life of their own – where the end-game becomes one of moving from stage x to stage y – instead of creating business benefit.

 

This is a great article from poppendieck.com, from 3 years back, but still very relevant IMHO. I love this quote -

 

"The Measure of Maturity

I believe that our industry could use a simpler measurement of software development maturity, one that is not subject to the dangers of decomposition and does not attempt to defy Miller’s Law with a long lists of things to think about.  I propose that we use a measurement that has been successfully used in countless organizations, and has proven to be a true indicator of the presence of the kind of capabilities measured by CMM.  To introduce this measurement, let’s go back to Dell and see what it measured:

 

1)  The level of inventory throughout the entire system, and

2)  The speed with which the organization can repeatedly and reliably respond to a customer request.

 

Okay, you say, fine for manufacturing, but software development is different.

 

True, I counter, but these measurements still work.  

 

The level of inventory in your system is the amount of stuff you have under development.  The more inventory of unfinished development work you have sitting around, the more you are at risk of it growing obsolete, getting lost, and hiding defects. If you capitalized it, you also bear the risk of having to write it off if it doesn’t work.  The less of that kind of stuff you have on hand, the better off you will be.

 

The speed with which you can responds to a customer is directly proportional to the amount of unfinished development work you have clogging up your system.  In truth, the two measurements above are one and the same – you can deliver faster if your system is not clogged with unfinished work.  But more to the point, you cannot reliably and repeatedly deliver fast if you do not have a mature organization.  You need version control, built-in quality, ways to gather requirements fast and routinely translate them correctly into code.  You need everything you measure in CMM, and you need all of those capabilities working together as an integrated whole.  In short, the speed with which you can repeatedly and reliably deliver on customers requests is a better measure of the maturity of your software development organization"