This is probably the most important blog entry I’ve ever posted.
The video is the longest video I’ve ever posted on the blog, and for that reason, I’ll keep the text content to a minimum.
Here’s why you should watch the video: CMMI may be entirely wrong for you, and you may not know it!
The video explains an epically crucial reality about CMMI that many agile (and other) teams are not aware of, leading them unknowingly down a path of self-defeat and damage. All of which could be avoided with this one super-critical piece of knowledge.
You’ll thank me later.
Backstory:
The lure of seemingly limitless opportunities can be quite strong, obviously. And, especially in tough economic times, succumbing to that lure can cause even the best of businesses to act unwisely. Such is the lure of CMMI ratings.
Well, anything that’s very alluring can cause unwise behavior, I suppose. Whether it’s as apparently harmless as indulging in a luscious dessert, spending money on unnecessary luxuries, or any of equally limitless opportunities to make bad choices, doing what we want instead of doing what’s right shows up even when working with CMMI.
This blog is full of examples of such bad CMMI choices, but there’s one bad choice I haven’t mentioned much about. That’s the choice to even try to use CMMI.
When working with a knowledgeable, concerned, trustworthy CMMI consultant, an organization should be steered away from CMMI when their circumstance doesn’t align well with model-based improvement using CMMI. In some cases, it may be a matter of steering towards the right CMMI constellation (e.g., for Development, or, for Services). However, just as whether or not CMMI is right for an organization ought to be discovered before too much energy is put into it, so should the decision about a particular maturity level within the constellation.
No CMMI constellation should be attempted if/when the organization doesn’t control the work that it does. Namely, that the work it does is controlled by another organization, such as a customer. Or, put the other way, CMMI should only be used if/when the processes used by the people doing the work are controlled by the same organization using CMMI to improve them.
At Maturity Level 2 (ML2), almost any type of work can use the practices in that level to improve its performance and to demonstrate that the practices are in place. However, at Maturity Level 3 (ML3), you have to be doing the type of work in the particular constellation in order to be able to use the practices in it. If you’re not doing that type of work, the practices will be irrelevant. Attempting to use the practices when there’s no such work being done will only cause the practices to get in the way and add nothing but frustration.
In particular, if you’re not doing work that involves structured engineering analysis, CMMI for Development at ML3 will be truly unwieldy.
Adding practices for work you’re not doing is an example of the bad behavior many organization exhibit when they’re chasing a level rating rather than hot on the trail of performance improvements. It’s these sorts of behaviors that are somehow rationalized as being beneficial when, in fact, they are unequivocally, diametrically, and everything but beneficial. They are a colossal waste of time and money and detrimental to morale and productivity.
You really need carve out about 11 minutes to watch the video.