The Disciplined Agile Framework : A Pragmatic Approach to Agile Maturity

It is possible to combine Agile and Capability Maturity Model Integrated (CMMI), but few organizations are doing this in practice. There are many challenges to be overcome, not the least of which is the very different mindsets of adherents of each approach. More importantly, we have a better option available to us in the form of the Disciplined Agile (DA) Framework. The DA process decision framework provides light-weight guidance to help organizations streamline their software processes in a context-sensitive manner. It does this by showing how various capabilities such as solution delivery, operations, enterprise architecture, portfolio management, and many others work together in a cohesive whole. The framework also provides a range of options for addressing these capabilities, describing the tradeoffs associated with each option. The DA Framework provides organizations with an easier and better described path to agile capability maturity than the strategy of force-fitting Agile and CMMI together. The Capability Maturity Model Integrated (CMMI) model purports to provide guidance to help organizations improve their software processes. This has in fact happened in some organizations, albeit in manners that are not as streamlined as many people would like. Agile strategies – such as agile development techniques, agile architecture techniques, agile management techniques, agile modeling techniques, and more – offer the potential to streamline and improve your software processes. This has occurred in practice in a multitude of environments. Agile has become the standard approach in many organizations and continues to grow in the majority of companies around the world. It is possible to combine Agile strategies and CMMI together: CMMI describes what should be done and Agile describes how it should be done, so combining them should be a good idea. That’s the theory – Practice shows there is a better way. Rethinking Agile Capability Maturity Let’s begin with several important observations: 1. Agile and CMMI promote different paths to capability. In CMMI [1], capability is defined as “the inherent ability of a process to produce the planned results. As the capability of a process improves, the process becomes predictable and measurable, the quality of the result product augments and the productivity of the teams too. ” The Agile Manifesto [2], on the other hand, is very clear that the path to Agile capability is to build teams of motivated people and provide them with an environment where they can succeed. These teams should reflect on a regular basis so that they can identify, and then adopt, potential improvements to the way that they work. Agile teams own their own process and evolve it over time. 2. Agile seems to help CMMI. Tadros [3] found that there were fewer gaps found by SCAMPI reviews in organizations that had taken an agile approach compared with non-agile. The study also found that quality metrics were noticeably better in the organizations combining agile with CMMI strategies. 3. CMMI is attractive to government organizations and those that serve them. CMMI has “succeeded” in US government agencies where competition is non-existent and in companies focused on working for government organizations where questionable procurement practices virtually assure an onerous, documentation-heavy process. This is a harsh observation, but CMMI tends to thrive when productivity isn’t of paramount importance. 4. CMMI enables offshoring. CMMI is common with Indian service providers (ISPs) who use CMMI as a marketing strategy to lure customers, as well as Chinese service providers hoping to compete against ISPs. CMMI is also adopted by groups within privatesector companies that hope CMMI will help them to manage the work that they offshore to CMMI-compliant service providers. 5. Few agilists are interested in CMMI. Although McMahon [4] argues that CMMI can be applied to enhance agile techniques the reality is that agilists consider CMMI to be an anathema. Without a coach of McMahon’s caliber it is highly unlikely that you’d succeed at inflicting CMMI on an existing agile team – most likely your agile developers would find ways around that mandate or choose to seek employment elsewhere. 6. Leading-edge software engineering organizations rarely consider CMMI. Organizations in highly competitive environments – Apple, Google, and Etsy to name a few – would laugh you out of the room were you to suggest that they adopt CMMI. Time to market and quality are paramount for these organizations, so that forces them to be incredibly effective at software development. If CMMI truly offered the potential for them to be more effective they would adopt it as swiftly as possible, yet that isn’t happening.