Saturday, November 26, 2011

Can we be CMMI Level 3 without losing our agility?


Dear CMMI Appraiser, I’ve been enjoying your posts about Agile and CMMI.  I am the founder of an Agile organization that has grown to 40 people.  We aren’t about process at all, but I’d like to see us adopt more of a CMMI Level 3 mindset.  Our CMMI Consultant tells us we're pitiful and need help.  Can companies like ours become CMMI compliant without losing the flexibility and freedom that makes us who we are?  ~Louis

Louis,

Hmmm.  Not a very nice thing for your CMMI Consultant to say about you...isn't he the one supposed to be giving you help?  


Yes, companies like yours really can achieve great benefit from using both CMMI and Agile.  The combination allows you to exploit synergies that have the potential to dramatically improve business performance.

However, when you say you aren’t about process, I would challenge that.  If you are really using Agile techniques, you are, without a doubt ALL about process!  As I tell the attendees in my CMMI Training class,  that’s nothing to be ashamed of! It's ok, we all know :)  You should be proud that you’ve been able to stay flexible while incorporating useful processes like daily stand-ups, planning poker, and more.  A good CMMI Lead Appraiser should be able to recognize those things as useful to your organization and make some suggestions for making them even better.

The good news about CMMI is that it aligns very well with all of the major Agile methods.  And it can be used to make those things even better! For example, take a look at how the CMMI practices correspond with some of the more common agile techniques: 



This should help your organization start to move in a direction where you can use the CMMI to help improve and still be Agile and light-weight.  The truth is, not only can you be light and Agile, but you can still have choices that will meet the needs of each project.  Choices are what give you the freedom to be who you are, and to do it the right way for each given situation.  If you were to come to me for some CMMI Consulting I would offer you this same advice.

Many people mistakenly believe that, in order to adopt the CMMI, they need to adopt a culture of rigid compliance that kills your freedom.  Nothing could be further from the truth.  It's all about choices - something the SEI calls "tailoring."

At this point, Louis, adopting the CMMI in your Agile organization may be the adventure you are ready for.

Jeff Dalton is a Certified SCAMPI Lead Appraiser, Certified CMMI Instructor, Candidate SCAMPI Appraiser Observer, author, and consultant with years of real-world experience with the CMMI in all types of organizations.  Jeff has taught thousands of students and has received an aggregate satisfaction score of 4.97 out of 5 from his students.

Learn more about CMMI Appraisals at www.broadswordsolutions.com

4 comments:

Ricardo said...

How do you add requirements management and its traceability in that kind of companies and people who think processes are not for them?

Jeff Dalton said...

Ricardo,

Awwwwwwesome question! I think I'll turn that into a whole post in itself!

The short answer is, in a true "agile" environment, teams are VERY process focused and disciplined. A team that was serious about Scrum or XP would derive their stories from larger stories (so-called "epics"), and would further break down those stories into tasks. Where does this all get represented? On the task board of course! Chris Sims, the great Scrum coach calls this the "evolved task board." I'm a fan.

The trick is to not call it "process" but just call it "stuff we have to do." It goes like this:

"in order to make sure we do all the 'stuff we have to do' we'll break our epics down to stories, and our stories to tasks (including testing tasks) and we'll put them all on the evolved task board."

VoilĂ ! A process!

Ricardo said...

Yes but, how do you link classes, methods, variables, file... to requirements and models if they do not exist? As far as I know, there is no requirement management in xp, and even worse, there are no models, as most xp practicioners think the code is the model/design.

For these questions and others, I don't understand how can be cmmi used with xp. For instance verification and validation.

Jeff Dalton said...

Ricardo,

ALL of the SDLC models (Waterfall, Scrum, V-Model, RUP, XP, etc) have massive holes that do not include elements you and I know are important.

I always hear people say, "but Scrum does not include X, so we don't have to do it!."

What a crock. If you're managing a project and you don't have a plan, don't manage changes, and don't communicate with your customer, you're not a project manager. If you're a SW engineer and you don't design your software in some type of "modeling" framework, YOU'RE NOT AN ENGINEER!"

The CMM is a tool to make SDLC's more useful and effective. You don't "use" CMMI with XP, you use CMMI to make XP better (and Scrum, and Waterfall).

I had a project recently tell me that they used XP, and that CMMI "won't work" for them because they don't write everything down.

Now, ask yourself this, which is the bigger problem?

Sometimes people hide behind "agile" because they know that no one wants to get in front of the "this is about agility and better efficiency" language. Nonsense. You need to do it right - not just faster.