News

Agile Programming and the CMMI: Irreconcilable Differences?

On paper, the Capability Maturity Model Index seems about as different from XP and other agile programming disciplines as it can be. This is true to some degree in practice, too, because CMMI and agile adherents typically approach software development from decidedly different viewpoints. At the same time, experts say, they are complementary to a surprising degree, and there's very little, if any, irreconcilability, between the two prominent paradigms.

The problem with CMMI, agile proponents like to argue, is it assumes that software development involves definite processes: That is, processes about which almost everything is known. As any agile programmer who's ever worked on a development project of any size will tell you, this is rarely the case.

"There's a fundamental assumption in the CMMI that processes can be repeatable, and that they are predictive processes, basically not empirical processes," says Michael Spayd, a principal with Cogility Consulting Solutions and a former CMM process assessor. (The CMM framework serves as the basis for what is now called the CMMI.) "That is the fundamental flaw in the CMMI, and that's actually why I don't personally believe in level 4 and 5. They are ridiculous and do not create value."

Spayd knows whereof he speaks: Several years ago, he transitioned from CMM process assessment to agile programming, starting with XP. These days, he says, he wants to help agile IT organizations work within the confines of CMM, CMMI and similar process-intensive mandates from on high. As far as he's concerned, the two paradigms aren't quite as irreconcilable as zealots on either side believe. "Although it's certainly true that culturally speaking, the kind of culture where CMMI lives most easily is a control culture, where the idea is really to minimize risk by emphasizing predictable, repeatable results," Spayd says.

At the same time, Spayd points to the research of CMMI author Mark Paulk, who has concluded that the two paradigms are, in fact, compatible. The key is to conceive of the CMMI as a management framework that describes tested best practices, but which does not prescribe a specific software development methodology. It's true, Spayd acknowledges, that many organizations take a process-driven route to CMMI achievement, although that doesn't have to be the case. "The CMM does not require waterfall in the least. It doesn't require a framework approach, or extensive documentation, absolutely not," he argues. "Culturally, yes, there's absolutely a preponderance of that, but there's no reason you can't use agile practices to achieve the same results."

Hillel Glazer, a principal and SCAMPI lead appraiser with CMMI and ISO assessment specialist Entinex, agrees. "Far too few people in software make the distinction between a management method [or] process and a development method or process," he points out. "Once you make that distinction, the separation between XP and CMMI is a lot clearer."

Glazer, like Spayd, believes the CMMI and agile programming disciplines such as XP are complementary, and not irreconcilable. "Is there overlap? Yes. But that's mostly because XP...has elements of both management and development in it," he says. "But where XP ventures into management methods, they are not incompatible with CMMI."

Bill Pyritz, a programming veteran with a large manufacturer of networking and telecommunications solutions, says he's had limited success getting his own company interested in agile software development. At the same time, Pyritz points out, his company is already ISO 9001 certified, and is starting to explore CMMI level 3 certification.

Although management hasn't yet made a decision, Pyritz plans to leave nothing to chance: He's already prepared a PowerPoint presentation that deals with the similarities and differences between CMMI and the hybrid version of XP his programmers use. He plans to pitch it to management. "My idea is to get the agile ideas propagated from all directions," he explains. "The workshops get the line workers involved, while at the same time I am giving presentations and writing papers that I pass along to upper management."

As for achieving CMMI certification using agile practices, experts say it's not at all uncommon, but still depends largely on the orientation of the person doing the assessment. "The CMM doesn't state how you have to do things, it only states what an assessor must look for," Spayd says, noting that many agile organizations would probably be assessed at CMMI level 2 or 3 today.

"CMMI has goals like 'There's a process in place so everybody understands the requirements.' If you could show an assessor that instead of a requirements list, the user and the developer actually have a conversation, and you could easily get some assessors, not all, by any means, to say that's fine," he concludes.