The CMMI story

Many companies are eager to use the Capability Maturity Model Integration (CMMI) but managers do not know what will happen when their workers are starting to make improvement happens. When I was in China last year, several managers told me about the “mistakes” that they have made.

One manager told me: “I think the CMMI will help improving the way developers work but nobody told me that it also forces management to change the way we manages projects too”. I was surprised: “Of course, the model is designed more for managers than for developers. It requires that managers to commit to improve the way software is developed.” The manager shook his head and explained: “It requires developers to collect data, implement metrics and measurements then report to management. It also requires management to make corrective actions about the project based on these data.”. I agreed: “That is correct, managers must act on those data.”. He looked at me as I did not know his intention: “In that case, managers have to do something about it”. Suddenly I understood. It is easy to tell others to change as long as you do not have to do anything. But it is not easy to change yourself. By using an model like the CMMI, it makes everybody have to change to make quality happens, including management. Later, I found out that in some companies, managers like to give order but do not want to act. By having measurements and data, it forces them to act and some do not like it. If the project slips schedule than they have to do something about it. In the past, some ignored it and let the situation became worst then they just cancel the project rather than fix it. By having data earlier, it give managers the ability to take corrective action when the problem is first detected but in some situations, that maybe not what managers want to know.

I reminded them that they cannot still doing the same thing that they always do and expect different results. Quality is not something happens naturally as it requires a lot of works. The CMMI is a model for improving software development. Developers must change the way the build software. Manager must change the way they manage project. Users must change the way they ask project to do what they want and when they want it done. They cannot create unnecessary requests at the last minute. If these behaviors do not change, nothing will happen.

Another manager told me: “The CMMI requires too many documented processes. It forces us to document them.” I told him: “The CMMI does not require anything, it is only a guideline. It tells you “What” you need to do but not “How” to do it. By having a document process, it helps people to know what to do so they do not skip important things. If you focus on the “How” then you document too much.” He shook his head: “We do not have time to document, we are so busy so we just buy all documents from a consultant. In that case, we have all the document that we need.”

Throughout my time in China, I have seen the purchasing of CMMI documents in many companies. What managers need to know is processes is a basic structure of a company. That is the way company does business. That is the way company build software. Since every company has different way of do thing. No company is the same so processes should reflect the difference or the way things are conducted in particular company. No one can use the same process from another the place. They do not fit and cannot be used. If the documented process that they purchase from somebody is not the same way they do business. If it is not the same way their developers build software. If it is not the same way managers manage project then my question is “What good are those document?”. When I asked, a manager simply answered: “We must have documents to pass the CMMI appraisal.”

A manager seemed curious: “Why does the CMMI require documentation?” I explained: “Before any improvement can happen, people in your company do things in certain way but they do not put it in writing. It is mostly in their head so everybody do things differently and that is why your quality is not very good. The first step is ask them to write it down. Of course the way they do may not be perfect. By reviewing what has been done in a document, you can find out some errors and correct them. You rewrite the new process and ask them to use to see if it is better. If it is good then you want everyone to follow it. That is “Continuous improvement”. The manager smiled: “But it is hard and take time. Buying a documented process is much easier and it help us to achieve CMMI level 3 since we have everything documented.”

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University

You may like