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 toolkit it’s difficult to know what to choose and how to fit them together. The DA toolkit 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 toolkit 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 toolkit 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 toolkit provides a context-sensitive and scalable approach to the agile software process. Furthermore, the DA toolkit 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 toolkit 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.
The Disciplined Agile tool kit is guided by the following principles:
IT departments are unique, complex adaptive systems. Anyone working in such environments needs a process framework that is sufficiently flexible to address the range of situations faced by your teams. The Disciplined Agile process decision framework is light-weight yet sufficiently flexible to support scaling at both the tactical and strategic levels.
Our experience is that to make agile and CMMI co-exist effectively is that four things need to occur:
In the next blog in this series we will explore how Disciplined Agile Delivery (DAD) maps to the CMMI framework.
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 Situation Context Framework (SCF). One of the SCF 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: