views:

1040

answers:

20

Ten years ago when I first encountered the CMM for software I was, I suppose like many, struck by how accurately it seemed to describe the chaotic "level one" state of software development in many businesses, particularly with its reference to reliance on heroes. It also seemed to provide realistic guidance for an organisation to progress up the levels improving their processes.

But while it seemed to provide a good model and realistic guidance for improvement, I never really witnessed an adherence to CMM having a significant positive impact on any organisation I have worked for, or with. I know of one large software consultancy that claims CMM level 5 - the highest level - when I can see first hand that their processes are as chaotic, and the quality of their software products as varied, as other, non-CMM businesses.

So I'm wondering, has anyone seen a real, tangible benefit from adherence to process improvement according to CMM?

And if you have seen improvement, do you think that the improvement was specifically attributable to CMM, or would an alternative approach (such as six-sigma) have been equally or more beneficial?

Does anyone still believe?

As an aside, for those who haven't yet seen it, check out this funny-because-its-true parody

+4  A: 

CMM and CMMI both offer some benefits if your organization takes the lessions it tries to teach at heart. The problem is that getting to the higher levels is very difficult and expensive, and the only time I have seen an organization go through the effort is because their customers won't let them bid on contracts until they are at a certain level.

This has the effect of the organization doing everything they can to "just get the number" without actually caring about it improving their process.

Craig H
+1  A: 

At school, I was taught: CMM is a good Idea, but lacking certification (anyone can say they are level 5 / level 4) it ends up being a marketing tool for offshore shops. So, yeah, the idea is sound, but how do you prove adherence?

Daren Thomas
+1  A: 

CMMI isn't really about improving your software, it is about documenting what you have done. You can almost estimate a company's CMMI level by the weight of the documentation it produces.

Background: I have studied CMMI in my Software Engineering graduate program and have worked on a team that followed its guidelines.

Jonathan Allen
+2  A: 

Yourdon still believes. But he might also still believe the world is going to end with Y2K.

This is not something I would personally put a lot of faith in or want to be yoked with in the future. But often ours is not to reason why...

Flory
++ for the Yourdon link.
Ed Guiness
+3  A: 

The higher end? No. CMM-5 shops do not impress me.

The lower end? Yes. CMM-1 organizations scare me.

CMM can help a new/novice team measure themselves and do the self improvement thing.

Stu Thompson
The problem is that level 1 can not tell the chaotic, make-it-up-as-I-go mentality from the world class chessmaster; who has a strategy, and skill, he just develops it as he goes and doesn't write it all down.Level 1 doesn't mean ad-hoc; it means management doesn't know what's going on.The assumption that level 1 is ad-hoc builds in invalid assumptions in the model from the start.
Matthew Heusser
@Matthew Heusser: Level 1 is, **by definition**, *ad hoc*. Processes, if any, are undocumented and in a state of constant change. Additionally, you *'chess master'* analogy doesn't hold--software development teams are made out of many people working in concert, not just one lone wolf. Synergy is important.
Stu Thompson
Allright then. Consider the writer's room in Saturday Night Live. Unquestionably doing knowledge work as a team. Could be chaos, could be high-skill strategy that isn't documented. And isn't all good swdev in a state of constant change?
Matthew Heusser
@Matthew Heusser: Thoughts on your SNL analogy: **1)** What happens in the writer's room is just part of the process that goes into making an SNL episode/season, which is a closer analogy to what we do in SW dev. **2)** Break down what they do there, and I'm sure you'll see a repeatable process. E.g.: *a)* what is worth mocking this week? *b)* brain storm ideas! *c)* divide into groups, work on the ideas, *d)* script dialog, e) push to production, legal, etc. by 4pm deadline. **Again**, CMM 1 is by definition *ad hoc*. Think on this: working in a reactionary manor (L1) vs. with intent (>L1)
Stu Thompson
+1  A: 

I used to. But now I find that CMM and CMMI don't really fit that well with agile approaches.

Oh sure you can squeeze things to get that square peg into the round hole, but when push comes to shove, you are still basing your approach on an ability to predict everything that is needed, and anticipating everything that will be encountered, when building a software system.

And we all know, how well that approach works in real life! (-:

cheers,

Rob

Rob Wells
+2  A: 

P.S. Though a bit off-topic, I would like to mention that faked CMMI certifications are very common as well as real certifications obtained through bribery.

Jonathan Allen
+9  A: 

At the heart of the matter lies this problem, neatly described by the CMM guidance itself...

...Sound judgment is necessary to use the CMM correctly and with insight. Intelligence, experience and knowledge must shape an appropriate interpretation of the CMM in a specific environment. That interpretation should be based on the business needs and objectives of the organization and the projects. A rote, checklist-oriented application of the CMM has the potential to harm an organization rather than help it...

From Page 14, section 1.6 of The Capability Maturity Model, Guidelines for Improving the Software Process by the Carnegie Mellon University Software Engineering Institute, ISBN 0-201-54664-7.

Ed Guiness
+1  A: 

Agile is the next CMM and both are fragile. The field of process and quality consulting is a good business in any industry and like the engineering folks everyone needs new buzzwords to keep the money flowing.

CMM when it first came out of the SEI was a good concept based on solid academic work but it was soon picked up by the process consultants and is a worthless certification now, which is used by most CIOs to cover their ass (Nobody got fired for picking a CMM Level 5 company)

Agile is going to go down that route soon and then we can be sure to see the next silver bullet in the horizon soon :)

Sijin
+3  A: 

My experience is that the CMM is so vague that its very easy to fulfill. Also, when they come to certify you, they look at the project that your organization chooses. Where I used to work, this was the project with no real deadline, plenty of money, and lots of time to spend on every nook and cranny of process. Many of the other projects continued with little to no code/design review sometimes without versioning software.

I think the emphasis on CMM certification is unfortunate. Companies know how to work the system, and do. Instead of focussing on real process improvement that meets their bottom line, they focus on getting a certification and working the system. I honestly think most organizations would rather spend time on the former instead of wasting so much time on the latter.

Really what matters is having conscientious people who want to make good development decisions and know that they will need help making those decisions. There is no substitute for quality programmers who know that programming is an ongoing group activity where they are just as likely to make a mistake as anyone else.

Doug T.
+6  A: 

If you see CMM run. And run fast.

James Dean
+1  A: 

When I worked on commercial flight software, we used CMM and as our processes improved our ability to accurately predict completion times improved. But this was a cumbersome process, other approaches should work just as well.

+2  A: 

CMM doesn't really speak to the quality of the software, but more towards the documentation and repeatability of the process. In other words, it is possible to have an orderly and repeatable development process, but still create crappy software. As long as the process is properly documented, it is possible to achieve CMM Level 5.

At the end of the day CMM is another tool that can be used or misused. If the end goal is to improve software quality, it is possible to use CMM to improve the development process and improve software quality. If achieving a certain CMM level is the goal, then most likely software quality will suffer.

sbanwart
+8  A: 

I found it to be bloated, documentation exercise that was used mainly as a contract-acquiring/maintaining vehicle. Once we had the contract, then it was an exercise in getting around the process.

As a developer, I got nothing out of it but lost MONTHS of my professional life fiddle-farting around with CMMI.

The same goes for 6 Sigma, which I branded "Common Sense in a Box". I didn't need to be trained how to figure out what the problem was to a process - it was generally quite evident.

For me, small teams and agile mechanisms work much better. Short cycles, lots of communication. That might not work in all environments, but it definitely works in mine.

Just my two cents.

itsmatt
Thanks, appreciate the heartfelt comment.
Ed Guiness
+2  A: 

I have been doing a lot of interviewing for small teams doing iterative development. Personally, if I see CMM on a resume it is a big red flag that signals interest in process over results.

dp
+1  A: 

Smaller projects are less dependant on process for success. The key metric is the Hero to Bystander Ratio. Any project with an HTBR of less than 0.2 is in serious trouble.

+8  A: 

For a typical CMM level 1 programming shop, making the effort to get to level 2 is worthwhile; this means that you need to think about you processes and write them down. Naturally, this will meet resistance from cowboy programmers who feel limited by standards, documentation, and test cases.

The effort to get from level 2 ("there is a process") to level 3 ("everyone has the same process") normally gets bogged down in inter-departmental warfare, so it's probably not worth starting.

Sten Vesterli
From experience I would agree. A pity then that CMM goes to level 5.
Ed Guiness
I agree. The journey from level 2 to level 3 can be pursued but not in exuriating details. You might not get certified, but you will definately improve the processes.
Vaibhav Garg
+2  A: 

All formal methods exist to sell books/training courses/certification, and for no other reason. That's why there are so many formal methods. Once you realise this, you are free :-)

Bob Moore
+1  A: 

The Model is losing it's credibility, first because the companies adopt the model not looking for a maturer software development model, but to be appraised to a CCMI level.

And the other problem, the one that I think leads to the lost credibility is that as a contractor, you have no guarantee that the project your CMMI appraisal supplier is selling you will be developed using the model practices. The CMMi label only states that the company have once developed projects that were evaluated as adherents to a specific CMMi Maturity level.

The problem is not just on CMMi but on the process developed by the companies. The CMMi does not describe the process itself, but just what the process should do. You have the same problem with PMBOK. Actually the problem is not just the PMBOK, but primarily the problem is the bad project managers that claim to follow the PMI statements.

Pedro
+1  A: 

There are quite a few good ideas that can readily be adapted and adopted by any organisation for their own good, but getting a badge is a pain due to the requirement for all kinds of redundant documentation.

The problem is that CMMi is not a process but just a guide for whatever process you might choose to have and that in itself invites half-baked ideas flowing around.

Another point is that migration is a real pain when you are starting, but its the same as any other teething trouble, I guess.

Vaibhav Garg