Thursday, September 17, 2009

The Maturity of Agile Development

Recent discussions about the coexistence of the Capability Maturity Model (CMM) and agile development has prompted me to revisit my master's thesis on the subject.

Ten years ago, I was one of the first practitioners of eXtreme Programming (XP), a software development method that belongs to the agile development movement. The big stumbling block of these methods has always been how to introduce it in an organization. Mentioning the words "extreme programming" makes you fight an uphill battle from the start. Agile is definitely a better word when presenting it. But still, the adoption of agile development requires a shift in the organizational culture, which historically has been more formal.

After having participated in and coached a few pilot projects, I started to think about how to best introduce the method in a software organization. This thinking caused me to return to university to research the topic - the result was a master's thesis on the subject.

During my research, I considered the existing and accepted certification levels in the software industry and compared it with the agile way of developing software. The Capability Maturity Model (CMM) is the most widely accepted definition for measuring process and organizational maturity. It was developed by academics and industry experts and is used by the largest governmental organizations in the world. If I could find that XP was compatible with the CMM, it would be so much easier to introduce in software development organizations.

What I found went beyond compatibility between the CMM and XP - I actually found that XP is an excellent springboard for organizations that want to reach greater levels of CMM maturity! I presented my findings at the XP2003 conference and these results are still used by many organizations to convince risk-averse managers of the traits of agile development. Maturing Extreme Programming Through The CMM

It is interesting to see that today, the members of the agile community are still fighting the same battle. Scott Ambler, IBM's agile expert and evangelist, is working on an Agile Process Maturity Model (APMM), for the same reasons: to ease that adoption of agile methods in traditional software organizations.