Are agile and CMMI — Capability Maturity Model Integration — antithetical? Prior to embarking on our relationship with Hillel Glazer, our CMMI consultant, several of us thought exactly that: Agile and lean thinking means that we avoid unnecessary waste and overhead, while CMMI demands heavyweight approaches and documentation. Happily, we’ve learned that our preconceptions about CMMI were wrong and that it in fact can harmonize with agile, especially in our environment.
CMMI is, simply, a framework for business-process improvement. It’s a software-management model for software projects to plan, organize and identify what needs to get done to run the project. It’s not an engineering-development standard, a process itself or a prescribed way of doing things. Since our teams have been doing regular retrospectives as an application of agile thinking for a while now, CMMI allows us to build on that foundation of process improvement that is already part of our thinking.
So back to the question of whether agile thinking can co-exist with CMMI: of course, if we understand CMMI as a framework for improvement and delivering value to our customers, and if we understand agile to mean, among other things, satisfying our customers through early and continuous delivery of valuable software.
In short, CMMI done well and agile done well work hand in glove. When you use CMMI to assess how well you plan (note: it’s not how *much* you plan), deliver requirements (not necessarily document them) and measure things that are important (not measure for measuring’s sake), you also see how effectively agile answers the questions that CMMI asks. And if you’re really applying agile approaches — focusing on working software (not merely avoiding documentation), responding responsibly to change (rather than simply not planning) and working hard to improve (rather than being satisfied), you see how CMMI enhances what you’re doing.
Hillel wrote about how we were approaching the CMMI process using Agile techniques in his blog, and even made a video about our CMMI team room, check it out: