Every Project Needs a Cat … or Why CMMI Works For Me

When the cat is away, the mice will play.

Earlier this month, TCG was re-confirmed as a CMMI Level 2 organization. Many people look at the CMMI documentation and think that it is a lot of overhead, but that’s not the way I see it.  To me, CMMI is like keeping a cat in the kitchen.  

I’m not in any way saying that programmers, designers, testers, or managers are lazy mice that only work when the cat is away.  I’m lucky enough to work with people who are smart, motivated and want to do a great job.  In fact, everyone I work with not only wants to do a great job, but they know exactly what they need to do to make a project succeed in the long term.  

It’s the “long term” bit that sometimes becomes a problem. Every project has deadlines and every team gets in a crunch now and again. What does a good development team do that situation? The best they can. But when you are down in the weeds you are lucky to see the upcoming mile stone.  You surely aren’t thinking about the 5th or 6th milestone down the lane. Even a good team will sometimes deviate a bit from what they know are best practices if it means satisfying a client today.  You can always pay it back later, right?  Right?  Well…

My experience says that when things get tight, taking short cuts to meet today’s goal just messes things up worse for tomorrow. Skipping a step you know to be good for the long term health of a project won’t be good for the long term health of the project. Sure, that last statement seems obvious, but we’ve all been in meetings where someone says “well, since the deadline is this week I think we better just…”

So, back to the proverbial cat:  Having a defined and documented process that spells out the best process for your team is great. Having someone check up on folks to make sure they are following the process is even better. That’s the cat right there. You will make the hard choice and do what is right because now you have to.  You can’t sweep it under the rug.  

If you have stuck with me this far, you are surely thinking of that one time where you would have lost a $10 million project if you had to stick to the letter of every policy.  I agree, there are times when you have to bend a little to keep from snapping in half.  A good CMMI compatible policy will have enough flexibility to get you out of a jam.  It will typically involve presenting a good case for a waiver and getting sign off from “the management.”  Not usually too hard if the alternative is wasting time/money or crashing a key project.  

So if you are looking at CMMI, don’t see it as a busy work generator or a dusty binder of stuffy rules. It’s not either of those things. CMMI is a framework that let’s you define the process that is right for your team and then help you follow it. If anyone isn’t following it, the cat will catch them sooner or later and fix the problem.