Sep 5, 2007

An Agile vs CMMI Comparison

Jeff Sutherland (co-creator of Scrum) has just posted on using Scrum in a CMMI Level 5 environment. CMMI Level anything, almost without exception, implies that an organisation is running with a waterfall process with lots of paperwork and red tape involved. If asked, most people would say that CMMI is all about increasing levels of bureaucracy and paperwork in software development, and it means that software takes for ever to get delivered. While this may be right in most cases, in many respects this is unfortunate because at it's heart CMMI is not about adding red tape and slowing down the process at all, but rather it's about evaluating how good a company is at delivering software on a repeatable bases. Yet, when you look at the definitions of the various levels you can see why people get this impression:

Level 1 - Uncertainty. Success depends on individual effort.
Level 2 - Awakening. Basic project management practices are established.
Level 3 - Enlightenment. Standard process throughout organization.
Level 4 - Wisdom. Detailed metrics are collected and evaluated.
Level 5 - Certainty. Continuous process improvement via metrics feedback.

Anything that talks about "management practices", "standard processes", and "detailed metrics" will make most people instantly think of the waterfall delivery processes, limited flexibility and mountains of paperwork (especially when metrics are discussed). What people don't think about is that an agile methodology like scrum not only covers the areas of "management practices", "standard processes" and "detailed metrics" but it also provides for the "continuous improvement via feedback" needed for CMMI Level 5 and does so in a way that cuts through the meaningless paperwork, the tedious meetings, the wasted up front design efforts and provides a platform for managing and adapting to the inevitable change that all software projects experience.

So what happens when a company is brave enough to introduce Scrum into a CMMI:5 environment? Here's what Jeff found:

- Productivity doubled in less than six months reducing total project costs by 50%.

- Defects were reduced by 40% in all Scrum projects (despite the fact this company already had one of the lowest defect rates in the world.)

- Planning costs were reduced by about 80%.

- User satisfaction and developer satisfaction were much higher than comparable waterfall implementations.

- Projects were linearly scalable, something never seen before. The productivity of individual developers remains the same as the project increases in size.

That first statistic alone is enough to make senior management sit up and pay attention, but when combined with linear scalability and improved satisfaction, it's hard to think of reasons why Scrum shouldn't be used in most software development projects.

Thanks and credit to Jeff Sutherland, Carsten Jakobsen and Kent Johnson for the work they've done and the guts shown in not only implementing Scrum in a CMMI environment, but also in putting this information together. For more detail read the findings.

6 comments:

  1. I suggest you attempt to add some credibility to your articles by stating opinions based on facts. Your description of CMMI's bureaucracy is obviously not based on experience. CMMI does not add usesless bureaucracy, it ensures a quality project...

    ReplyDelete
  2. I think not. I have experienced CMMI waterfall flows and Agile OOD/A. And the results... Agile it's at least 40 % faster and 90% more quality ensurance that CMMI old fashioned models based on waterfall thinking

    ReplyDelete
  3. Thanks. Looks like Jeff changed his web site structure. Links should be fixed now

    ReplyDelete
  4. >>Your description of CMMI's bureaucracy is obviously not based on experience. CMMI does not add useless bureaucracy, it ensures a quality project...

    Absurd. In a CMMI level 3 software company I worked for all my experience told me it added useless bureaucracy and resulted in a lower quality product than if it were implementedly properly in Agile. I had to fill out a ton of paperwork that no one EVER read except the absurd audits - this consumed 15-20% of my time.

    CMMI only assures an acceptable way of failing (via process-blaming instead of person-blaming); it won't help at all with success.

    ReplyDelete
  5. CMMI means MATURITY.
    As you write in your post, it's obvious that you do not understod this.

    ReplyDelete