Does Your Agile/UX (User eXperience) Shop have a CMM Rating?

by David Kelley on February 11, 2010

CMM?  what is that?  is the typical response I get when asking about CMM.  For starters CMM = Capability Maturity Model For Software Engineering project methodologies.  Basically it’s a way to rate how good a software shop is with regard to its process.  Now in the UX/Agile space talk of applying Software Engineering metrics such as the Capability Maturity Model For Software Engineering from Carnegie Mellon University might be a bit more than most will deal with :) however being exposed to both worlds I think it is worthwhile to talk about what UX/Agile can learn from CMM.

To be fair lets to all the UX/Agile folks, lets be honest about CMM… CMM is used to see if a software shop can write software for the space shuttle, you know meetings about meetings about meetings about the planning meetings to plan the planning meetings about the meetings to talk about the methodology that might be used to develop some software… there is some of this in CMM at a certain level but if one back up and takes a fair look at CMM I think it provides a way to see if what we are doing in our UX/Agile shop is reasonable. For some light reading on topic check out: http://en.wikipedia.org/wiki/Capability_Maturity_Model

So how the heck does CMM apply to UX/Agile shops… well to be honest (again) UX != Agile.  UX is about user experience right?  and making better ones, integrating design with interactive software and all that.  Agile is a group of software methodologies that are perceived to be about quickly building software.  In many cases companies or teams have a status meeting called ‘Scrum’ (oh wait a scrum is not a status meeting for starters but lets ignore that for now) and do un planned 2 week sprints of building software that that the dev’s test and they call them selves agile; but really this is not Agile either.  Agile is albeit a shorter life cycle approach is in fact still an SDLC disciplined approach or at least it can be and as such we can use CMM to look at how effective the approach to Agile is in our ‘UX/Agile’ team.

Lets look at CMM and understand in more detail how CMM does this.  So the part we care about is that CMM lets us see how ‘mature’ our team or organization is in our course todo it right. CMM has this idea of a Maturity Level.  For example CMM Level 1 is chaos… where CMM Level 5 is software teams building software for the shuttle.  CMM level is broken down into 5 levels

1. This level is characterized by software that is accidently successful, ad hoc, chaotic processes IF there are any at all.

2. The Managed team is able to set goals and has some outline of a process that is frequently successful.

3. The CMM Level 3 team has a defined process that is documented and standard team process’s and  reasonably expected to have consistent performance in its software project implementation.

4. The CMM Level 4 is where we start waxing a bit transcendental, ‘quantitatively managed’ using KPI’s (Key Performance Indicators)

5. CMM Level 5 is where the organization as part of its process is able to dynamically optimize its process’s, something like a self programming program.

I think a good quote from SEI is in fact “Predictability, effectiveness, and control of an organization’s software processes are believed to improve as the organization moves up these five levels. While not rigorous, the empirical evidence to date supports this belief.”

To me a guess the connection is obvious but just in case here is the correlation, An Agile Process that is not consistent and REPEATABLE with quality is not going to work  and in fact might not be agile but just be more of a mess.  Using CMM to get to a consistent, repeatable, documented and well managed process with regard to Agile and UX is key to helping is implement good agile which in turn can help us deliver good UX.  IF your agile is CMM Level 1 then maybe you need some CMM for your Agile before you get your UX in order…

Leave a Comment

Previous post:

Next post: