Wednesday, March 21, 2012

SPaMCast Question #5: Do agile and CMMI conflict philosophically?

[NOTE: Over the past several days, the CMMI Appraiser has been sharing snippets from a recent conversation with Tom Cagley on SPaMCast about how the CMMI is fully compatible with Scrum, and can be used to improve agile methods, making the investment in agile both powerful and productive. Listen to the full interview at SPaMCast 176.] 

Hey, Jeff, I recently did an agile class. A number of self-styled philosophers in the class would have argued that agile is a philosophy versus the CMMI, which is more a framework construct. Is there a conflict between a philosophy and a framework? ~ Tom Cagley, SPaMCast 

Tom, I suppose if we were trying to evaluate agile and the CMMI as the same thing, we would have a conflict. But it’s like apples and oranges.

I completely agree with your statement that agile is a philosophy and a way of life, whereas the CMMI is not. The CMMI is by definition a framework of best practices that are so detailed, well thought-out and practical that it cannot be thought of as a philosophy. The CMMI isn’t prescriptive, per se – it’s a “what-to-do” not a “how-to-do.” But to call it a philosophy would be a stretch.

Agile, on the other hand, is more of a system of thought. With the agile manifesto, its creators did a fantastic job of laying out the philosophy, saying, “Here are the things that are important and here’s what guides us. And here are the things that are important, too, but not as important.” They did an excellent job of prioritizing the thinking, and setting up what I call the guiding principles of agile.

The SEI never did that with the CMMI. It was never their intent to put out a set of guiding principles. Their intent was to provide a framework. But I think what happened in the 90s, by way of the Department of Defense mandate, was that the intent of that framework got twisted. People started saying, “We need to achieve a Maturity Level in order to win a contract.” Certain CMMI consultants – “box-checkers,” I call them – were willing to do that. They never really understood that the CMMI is a tool to help companies improve what they are already doing.

Agile, by contrast, is really more of a set of views and theories to help us answer, “How do we want to run our business?”

To your point about a conflict, it’s really been interesting to watch, over the last couple of years, as more and more companies around the country adopt agile. As a result, I see a collision brewing between management and engineering, especially finance and engineering. In these organizations, engineering is embracing agile almost whole-heartedly, and that’s a great thing. But this sets up a potential collision as management is scratching their heads and saying, “I’m not getting how this fits into our financial model.” Well, guess what? Agile doesn’t fit into their financial model! This is especially true when you have manufacturers and suppliers working together, and you have contracts based on the waterfall mentality, and you are getting paid based on life cycles and milestones. Unless that changes in the next few years, as agile becomes more and more popular, we’re going to have a real collision on our hands.

Our view is that the CMMI is the perfect tool to bring management and engineering together. With a proper mindset of communications and improvement over “compliance,” the CMMI can be used to improve the performance of agile companies. That's why it makes sense to allow the two frameworks to work together, instead of forcing them to be something they are not. Let apples be apples and oranges be oranges.

Like this blog? Forward to your nearest engineering or software exec!

Jeff Dalton is a Certified SCAMPI Lead Appraiser, Certified CMMI Instructor, author, and consultant with years of real-world experience with the CMMI in all types of organizations. Jeff has taught thousands of students in CMMI trainings and has received an aggregate satisfaction score of 4.97 out of 5 from his students.

Visit for more information about running a successful CMMI program.

No comments: