I heard Hillell Glazer talk about CMMI and agile with the title “Get over IT! Stopobsessing over CMMI and Get on with being Great” (long title by the way). Hillel also wrote a book called the “High Performance Operations”
The interesting part for me in his talk was “what is CMMI really good for?”
To answer this question we can look at what it’s NOT that good at:
- It’s not good for appraisal!
- Where it looks for evidence like documentation but not results (optimization).
- It’s not good with people!
- It’s all about a model for processes, nothing about how to interact respectfully with each other.
- It’s not good with words
- It’s too academically written you need consultants to help you understand what is meant … why not use normal English and terms that are understandable?
- It’s not light weight process model!
- 3 books of over 500 pages each and you need to be an expert to understand it – don’t put your juniors to implement this! Meaning that the processes are so complicated that it in my eyes don’t meet my basic rule “simplicity is beautiful”.
The only real thing CMMI is good at Is to improve your processes – And yes that’s something.
OK, so here is what I think!!!
When judging if something is agile or not I tend to consult the Agile manifesto and the 12 principles. There are many interpretations of agile that claims that if you do like this you are agile (almost saying if you don’t do like this you are NOT agile like if you are having iterations of less than 6 weeks you following the agile paradigm, but if your iterations are longer that 6 weeks…..you are NOT agile!.
I believe that applying CMMI is way beyond applying agile methods. They have a lot in common like “Requirements are managed and inconsistencies with plan and work product are identified” which could be a product backlog or “Estimates of project planning parameters are established and maintained” which could be the sprint planning with estimates and the release plan estimated in t-shirts size and so fort.
Other activities in CMMI like Project monitoring and control or Configuration management are not only thinks that are within the project team but has stakeholder interest that lays outside the team and in the portfolio management or top management. These activities does RUP, Scrum or other agile methods not describe but they are not in any contradiction to Agile.
Just as Prince 2 that is a project management (steering) methodology can work with Agile methods CMMI can work with Agile methods or other methods as well.
But calling CMMI Agile….. NO.
CMMI is about processes an model of how to understand processes to improve them. It misses totally the individuels, the people, there is no focus on the customer only the improving result. There is a design of the product, a quality verification and some interest in organisation, but no customer collaboration, no delivering software frequently with involved business people and focusing on trust rather that control.
I still believe that agile value “Individuals over Processes and Tools“. CMMI is a tool to understand and improve your processes. CMMI is not Agile, but can be used in a agile context – it all depends on the interpretation.