We’re occasionally asked whether agile and CMMI are compatible, so we thought we’d write a short blog posting on the subject. The quick answer is yes, but you need to know what you’re doing. In this article we explore whether organizations are actually combining agile and CMMI in practice and then address some of the rhetoric around this topic.
The Dr. Dobbs Journal (DDJ) Summer 2012 State of the IT Union Survey examined this issue. The goal of the survey was to explore whether organizations were successful or unsuccessful at various levels of the scaling factors called out in the Software Development Context Framework (SDCF). One of the SDCF scaling factors is regulatory compliance, including both legal compliance such as Food and Drug Administration (FDA) compliance as well as self-imposed compliance such as CMMI or ISO 900X. This survey found that of the respondents whose organizations had achieved success apply agile techniques in practice, 44% indicated that one or more of their project teams had done so when self-imposed compliance requirements were in place. Of the respondents whose organizations had experienced one or more failed agile projects, 30% indicated that one or more of their projects had self-imposed compliancy requirements. More recently the DDJ Spring 2014 State of the IT Union Survey found that 44% of agile software development teams (and 43% of non-agile teams) face some sort of compliancy requirement. The following figure shows that agile teams, just like non-agile teams, are in fact working at scale.
The survey results lead me to three important observations. First and foremost, people are in fact successfully applying agile and CMMI together. Second, it can be a rocky road when doing so because some organizations are running into problems. Three, there isn’t any blatantly obvious evidence for or against applying the two together. Granted, this third observation is based on averages – your organization may have very good reasons to apply the two together. In particular, I suspect that the organizations applying CMMI and agile together are the ones where they already have a strong-CMMI culture and are now in the process of increasing their productivity through agile and lean techniques.
Reality Over Rhetoric
One only has to spend some time online to discover that when it comes to applying agile and CMMI together there is some questionable rhetoric being bandied about. We feel it’s important to surface this rhetoric and describe the reality of the situation. Common agile CMMI rhetoric includes:
- Agile and CMMI are incompatible. This is clearly not the case as we learned in the aforementioned surveys. A quick web search results in many publications on the topic, including case studies. From what we’ve seen most of this problem stems from agile protagonists not understanding CMMI and CMMI protagonists not understanding agile.
- Scrum is CMMI level 5. This is nothing more than marketing hogwash. The reality is that Scrum is a very, very small part of what you need to do to succeed at agile. Scrum’s focus is on some aspects of project leadership and requirements management, and it relies on other methodologies such as Extreme Programming (XP), Agile Modeling (AM), Unified Process (UP), and many others to fill in the blanks. Yes, Scrum can be used in CMMI environments but Scrum on its own clearly doesn’t even address all CMMI L2 issues let alone higher levels. Similarly, agile methods such as XP and AM can also be applied in CMMI environments to address portions of one or more process areas in an agile manner.
- CMMI doesn’t add value. Empirically you can observe that this is clearly not the case by simply hopping on a flight to Bangalore to see how the Indian IT service providers have leveraged CMMI into a multi-billion dollar industry. Furthermore there are numerous studies that have shown that as organizations move up CMMI levels their productivity improves (although some have shown that productivity peaks upon achieving CMMI L3, so be careful). Our experience is that the secret is to keep your CMMI implementation as agile as possible.
- CMMI equals needless bureaucracy. The way that an organization addresses CMMI compliancy is up to them. They can choose to adopt a documentation-heavy strategy, which many unfortunately do, or they can choose to adopt a more streamlined agile approach. Many agilists have had very bad experiences in heavy CMMI shops and in many cases that is their only CMMI experience, hence the bitterness regarding CMMI.
In the next posting in this series I’ll discuss how Disciplined Agile Delivery (DAD) and CMMI can potentially fit together.