Scrum and CMMI – Does it fit together?
Many people ask the question “Do CMMI and agile principles fit together?” The statement that Scrum and CMMI fit together has been discussed numerous times already. The answer is a clear “yes”. However, many people still ask “How?” and have different experiences: “In my organization CMMI was implemented with a command and control culture, how can this fit with agile principles?” This article provides clear answers to these questions.
How can I use CMMI with agile principles?
It all comes down to the interpretation of CMMI. While many people have experienced CMMI with a command and control culture, that is nowhere written into CMMI. Quite the opposite. If you apply agile principles, you can come to a very different interpretation of CMMI than if you apply command and control principles. So, if people tell you a command and control interpretation of CMMI, that is their view. Do your own interpretation. Actually, CMMI even asks you for this.
“Where is that written in CMMI?” you might ask. Everywhere. It is one of the key principles of CMMI that you interpret it in the light of your organization’s principles. If they are agile principles, use them. In the introductory notes CMMI says that any statement in CMMI must be interpreted using “your organizational constraints, and your business environment”. With this CMMI means that any statement in CMMI should be read annotated with the words “according to your business principles.” If you live an agile culture, annotate that. E. g. CMMI asks “How do you plan your project?”, which is meant to be read as “How do you plan your project according to your agile principles?”.
Because this is so important to CMMI, many statements explicitly have the words “as needed”, “appropriate” or “adequate” in them. They all mean the same, saying: “Please really, really find a solution that fits your company’s principles.” You now probably see how wrong consultants are that come with predefined process definitions you must do in order to be CMMI compliant (whatever “compliant” means). This cannot ever be according to your company’s principles. This cannot be right.
Doesn’t CMMI say what you must do?
While many consultants love to say “you must do this or that”, this is utterly wrong. Your organization mustn’t do anything. In any case, this is not how you treat adults.
CMMI is a grid system that lists “what” an effective and efficient organization does. CMMI does not list any “how” you do it. The “how” is what you come up with – according to your business principles. Treat CMMI as nice guy asking you questions about your work, like „How do you plan your project according to your agile principles?“ Now, with Scrum you have quite a good answer to that. This is how Scrum and CMMI fit together.
What is the benefit of the „How do you ...“ questions?
The “How do you ...” questions of CMMI help you (and many other people) to review the solutions you are taking. You can
- Identify useful but currently missing activities. E.g. CMMI asks “How do you identify risks according to agile principles?” Maybe you are missing that, and maybe you find out that it might be quite a good idea to do it, e.g. by putting risks in the impediment backlog.
- Identify gaps to your business principles. Maybe you identify you are doing something, but not according to agile principles.
- Break down large improvements into smaller chunks. For example, you might find out that some organizational improvement cycle would be helpful. What are the “parts” of such a cycle? CMMI provides guidance with a set of practices. These you can implement with agile techniques, e.g. with organizational Scrum.
- Prioritize improvements. Often misunderstood as certification levels, the maturity levels in CMMI are simply an improvement prioritization like in any backlog. Removing impediments that you locate within maturity level 2 have probably a higher ROI than impediments that you locate within maturity level 3. If you would prioritize otherwise, just do so. It is guidance, nothing more and nothing less.
With the “How do you ...?” questions, CMMI is like a coach.
What is the benefit of combining Scrum and CMMI?
CMMI lists all practices “what” an effective and efficient organization typically does. Scrum provides good solutions for the “how” of planning and running projects. Yet, there is much more to an agile organization. What is the task of management? How about engineering? CMMI gives you the “How do you ...?” questions for those areas, too. With this you have an orientation that helps you improve far beyond Scrum, always with your agile principles as your guide to shape agile solutions to the “what” that CMMI lists. Yes, CMMI is much more than Scrum. But then an organization is much more than Scrum.
Isn’t CMMI all about processes? Isn’t that command and control?
This is probably one of the greatest misunderstandings of CMMI, because the word „process“ is used in so many ways. In CMMI, the word „process“ simply stands for „work“. If you read it that way, many things become quite obvious.
In this article I have suggested some “wording” changes that might help you understand CMMI in the right way. Here is my tip for you, to make things much easier to read: Download CMMI as a word file and do a search and replace. Replace “process” by “work”. Also replace “as needed”, “appropriate” and “adequate” with “according to our agile principles”. Voilà. There is your agile CMMI. Save it. Use it that way for your organization.
How do I start with agile CMMI?
CMMI is not made for reading. If you look at CMMI you will see that it is ordered alphabetically. It is a dictionary. You don’t read a dictionary from A-Z (unless you have been confined to prison for five years). However, looking things up in a dictionary is quite worthwhile. Likewise, looking things up in CMMI is quite worthwhile. What you really should learn is how to find things and how to navigate. An authorized CMMI training gives you a quick and reliable “entry” into CMMI, better than any reading could. If you want to dive into CMMI with an agile interpretation, go to an “Introduction to CMMI” training that is held by a trainer who is a Certified Scrum Professional.