Allan Kelly has held just about every job in the software world, from sys admin to development manager. Today he provides training and coaching to teams in the use of Agile and Lean techniques. He is the author of "Changing Software Development: Learning to become Agile" (2008) and "Business Patterns for Software Developers" (2012) and a frequent conference speaker. Allan is a DZone MVB and is not an employee of DZone and has posted 77 posts at DZone. You can read more from them at their website. View Full User Profile
A question in my mail box: “How does Agile relate to CMM Level 5?”
As I started to tap out the answer I thought: this might as well be a blog entry. So here it is.
of CMM, or rather CMMI which replaced CMM about 10 years ago, as a
ruler. It is a way of measuring software development effectiveness. Is
your development process 1cm good? 2cm good? or 5cm?
doesn't say how you should do development, only how you should judge
effectiveness. Agile is a way of doing things - as opposed to "the
state of Agile" which is a measure of effectiveness.
You can use
Agile to be any CMMI level you like. CMMI doesn't care how you do it.
Watts Humphrey (the father of CMM) used to say something along the lines
of “Work on you quality and processes first, the levels will come by
themselves.” That statement is very Agile. Unfortunately some
organisations get it the wrong way around. I was at Reuters when they
imposed CMM and destroyed a big chunk of their development capability.
state of being Agile" might, or might not, conflict with Level 5 CMMI
simply because different things are considered important. You might be
CMMI level 5 and decidedly unAgile.
Ironically CMMI level 5 might
mean you have to investigate Agile. Because being level 5 means you
are “self optimising”. If an organisation is level 5 and hasn’t looked
at Agile it should because that may help them improve.
being level 5 itself makes it becomes harder to improve. The risk of
change is a lot greater because the organisation has more to
loWaterfallse - and probably lots of procedures to update making any
CMM(I) tends to be associated with a certain
way of doing things. Partly this is historic: when CMM(I) appeared
Waterfall was the dominant model, NASA was the first organization to
reach level 5 and (at the time) it was very Waterfall based, and because
CMM(I) tends to be more common in military work which are also big and
paper work intensive.
So, some people believe that CMM(I) means
following a very structured, heavy, WaterfallWaterfall process. It
doesn’t have to mean this but historically the two do tend to coincide.
The Software Engineering Institute issued a report in 2008 which discussed how CMMI and Agile could work together: CMMI or Agile: Why not embrace both!
I don’t agree with everything in the report but I do agree with the
general tone. CMMI and Agile are not alternatives and can be