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.