Combining Agile and CMMI? Then You Better Be Disciplined

Agile vs. CMMI

One of the great advantages of agile and lean software development is the wealth of practices, techniques and strategies available to you.  This is also one of its greatest challenges because without something like the DA framework it’s difficult to know what to choose and how to fit them together. The DA framework adopts practices and strategies from existing sources and provides advice for when and how to apply them together.  In one sense, methods such as Scrum, Extreme Programming (XP), Kanban, and Agile Modeling (AM) provide the process bricks and DA the mortar to fit the bricks together effectively.

Another strategy to process improvement is captured by the Capability Maturity Model Integrated (CMMI)-Development (CMMI-Dev) approach.  With this strategy organizations will organize their improvement efforts around the CMMI process areas, which has the effect of local optimization of each process area at the expense of the overall flow and efficiency within your software process. The fact that CMMI-Level 5, which few organizations achieve in practice, focuses on process optimization belies this point that overall flow tends to be an afterthought in CMMI environments.

It is possible to combine agile and CMMI approaches together, as a quick Internet search will reveal.  There appears to be a fair bit of evidence showing that applying agile within CMMI environments appears to improve the situation.  It is our opinion that applying CMMI to agile teams tends to decrease their effectiveness in practice.

A better strategy is to first apply the DA framework with the goal of streamlining your overall software process.  Then if, and only if, you need to be CMMI-compliant you should make changes to your process to become compliant.   As we show in Mapping CMMI-Dev to Disciplined Agile the DA framework can be fully CMMI-compliant. The DA framework in effect shows how to weave the various process areas together.   For example, the Produce a Potentially Consumable Solution process goal includes process factors such as Needs Exploration, Solution Exploration, and Planning which map to aspects of Requirements Development (RD), Technical Solution (TS), and Integrated Project Management (IPM) CMMI process areas respectively.  By starting with DA, you will tailor a light-weight software process to meet your actual needs while only requiring a few (hopefully) minor tweaks so that you can easily pass a SCAMPI assessment.  In short, get the process right and then make it CMMI compliant – focusing on CMMI-compliancy will almost assuredly guarantee you have a software process that is heavier than it needs to be.

Via the combination of supporting multiple lifecycles and lightweight process tailoring via application of process goals the DA framework provides a context-sensitive and scalable approach to the agile software process.   Furthermore, the DA framework presents time-oriented advice, e.g. at this point in time here’s what you need to do and here’s how it fits together, that is actionable by agile teams. In short, the framework takes the mystery out of how all of these agile and lean techniques work together in practice.

Our fundamental advice is to avoid CMMI if at all possible.  If you then your best bet is to take a Disciplined Agile approach to CMMI compliancy.


2 thoughts on “Combining Agile and CMMI? Then You Better Be Disciplined

  1. Ed Weller

    When done right, addressing turnover, new hires, and other training/education costs, for which appropriate “how do we do things” (e.g. process) documentation that satisfies the CMMI practices also in the long run lower organizaiotn costs, I saw very little additional overhead in the org when appraising Agile organizaitons. There is a cost with the appraisal – someone has to find and organize the artifacts required by the SCAMPI process. See Agile and CMMI: Yes, They Can Work Together from the Better SW Conference West in 2013. The two should not be conflated

    One of the nicer impacts of looking at Agile organizations is that it made the appreisla a lot easier as many of the Agile / scrum practices simplify the evaluation and satisfaction of the proejct management practices in the model

  2. John Gagon

    I worked for a government subcontractor in 2011 and part of 2012. I got a certification for CMMI level 3. The shared values of both systems seems to revolve around restrospective. CMMI is meta- and retrospective heavy. It is also most often used by PMs. I would agree that there is too much overhead for an team desiring to be agile to seek fusion with CMMI. There’s perhaps too much focus on analyzing the work than there is on doing the work. I personally found the analysis paralysis to be a common issue as well as the documentation. It has very structured flows which I am not sure are flexible enough. I’ve also seen many CMMI folks desirous to use agile. They often approach it however from their perspective which utilizes a lot of estimation and process review. They are hungry for something more efficient but don’t want to feel the lack of a defined process security blanket. For FFP heavy contracts, CMMI is most common. I certainly wouldn’t use it for more open contracts or projects and I would agree…use it when it’s needed. That is often the case where heavy oversight of project delivery between two parties is contentious or there is high competition for public projects. To be competitive, much of CMMI is templated documents and forms that become part of the operational flow. I feel if you can insulate DAD style projects from CMMI, by using DAD at the line work level and CMMI passively around it, it can possibly work when that’s the requirement. Thank you for addressing this. I feel relieved that others have shared my experience and can concur with my feelings on this issue.


Leave a Reply

Your email address will not be published. Required fields are marked *