Archive

Archive for March, 2007

Agile and CMMI – different?

March 19, 2007 Mark Leave a comment

So, a couple of days ago, I responded to a query on the NZ .net user group mailing list, around the difference between CMMI and Agile, what is TSP/PSP, etc. Seeing as how I work for an organisation where we have been CMMI certified (to one level or another) for 5+ years (and we’re going down the TSP/PSP path too….though I must admit I don’t know a hell of a lot about PSP and TSP myself), I felt sort of obliged to respond.

So, for the record, and given that no one disagreed with anything I said :) , here is a copy of my thoughts on the difference, what is Agile, what is CMMI, etc:

As far as my understanding of PSP/TSP goes, these are not software development processes, rather, they are personal and team productivity guidelines – ways in which you can measure and track personal and team productivity at a low level, and work as a result on making improvements where they are required.

CMMI is not a process in itself, rather it’s a set of standards you should follow to ensure that your processes are configured in a way that they are capable of maturing and improving over time. CMMI has a number of levels, which indicate where your organisation’s processes are along the maturity level. So, if you take MSF for CMMI Process Improvement as an example, you’re getting a process that is aligned to the “key practice areas” of CMMI level 3, which is in the middle of the range (the range goes from 1 (just starting out on the journey) to 5 (which represents a level of maturity where the processes themselves are rigorously managed and continuously being improved).

In terms of comparing CMMI to Agile, as I said, CMMI is not a development process per-se, but then neither is “Agile”. I suppose you could characterise an agile methodology as one where change is embraced, and reacting to change is built into the process itself. As a result, there tends to be less up front documentation done (why document everything to the nth degree, controlling document versions, etc, if it’s only going to change in a week?), and more focus is given to specific techniques for adapting to change as a project progresses. In contrast, a CMMI development process will take a different approach to change, managing it carefully, assessing impact of potential changes as they arise, documenting what was changed and when, as well as who by. A CMMI process will also require more documentation than many people might be used to because of the need to capture and analyse metrics in order to determine where processes might best be modified to achieve a higher quality result.

Having said that though, there was a great article from David Anderson (the guy behind MSF as seen in Team System) a while back discussing whether Agile and CMMI were mutually exclusive or not. So, could an Agile process also be certified as compliant with CMMI?? The conclusion was that yes it is totally possible. Here’s a link to that article…

http://www.agilemanagement.net/Articles/Weblog/CMMIandtheDeclarationofIn.html