Lora Bentley spoke with Ralf Kneuper, who worked in the quality assurance group of Software AG and at the systems house of the Deutsche Bahn AG as a senior consultant for process models, quality management, and project management as well as a project manager. Kneuper also wrote a book on Capability Maturity Model Integration. An excerpt of the book can be found in the IT Business Edge Knowledge Network.
Bentley: What is CMMI?
Kneuper: The Capability Maturity Model Integration is a model to help organizations that want to improve the way they work and to get better in achieving their business goals. It consists of a collection of best practices based on experience from many organizations and is structured in a way to help organizations to improve step-by-step. Initially, it only supported development but now there are also variants that cover acquisition of major products or services (CMMI for Acquisition) and the provision of services (CMMI for Services).
One of the main strengths of CMMI compared to other quality management models is the strong emphasis it puts on making sure the processes are actually used, or "institutionalized," and not just documented for an auditor to see. This makes the introduction of CMMI-based improvement more difficult and more expensive, but this is an investment that pays off.
Bentley: How did it come to be?
Kneuper: In the mid-80s, the Department of Defense had contracted out a number of complex systems that the suppliers had promised to develop but then it turned out that they were not able to do so. As a result, the DoD initiated the Software Engineering Institute (SEI) at Carnegie Mellon.
One of the major tasks of the SEI was to finds ways to rate suppliers before giving them a major contract, based on their expected ability to deliver what they promise. This work led to the development of the SW-CMM and, later the current CMMI. Of course, the same criteria that help to judge whether an organization will be able to do what it promises to do are at the same time best practices that help the organization to improve its work. So today, a large number of companies use the model as a tool or checklist to help them to improve, without any pressure from their customer.
Bentley: Are there different models for different applications?
Kneuper: As I mentioned before, there are different variants of CMMI, called constellations. The original constellation is now called CMMI for Development, CMMI-DEV, which applies to organizations that develop software, hardware or complete systems. In 2006, the new CMMI for Acquisition was added that helps organizations that do not do their own development but that acquire services and products. Since many organizations both do some development and some acquisition, this topic is included in CMMI for Development as well, but of course CMMI for Acquisition is much more thorough. The latest constellation, published just a few months ago, is the CMMI for Services that applies to all organizations that provide services. Of course, most people first think of IT services, but CMMI-SVC is more general and applies to all kinds of services, such as health services or transportation services.
All three constellations have a large common core covering those topics that are relevant for all three, even though in the current version of CMMI the core is similar but not the same across the three models. I expect that that problem will be resolved with the new version 1.3 that is expected towards the end of 2010.
Bentley: How can companies best put it to use?
Kneuper: The main issue here is to remember that CMMI is about improvement, not certification. Some companies, especially if they implement CMMI because their customer tells them to do so, only look for a way to satisfy the CMMI requirement rather than using this requirement as a trigger to check how to improve the relevant working process. Admittedly, this approach will lead to additional bureaucracy and little improvement.
CMMI does not tell you how to do things, but it tells you what to do, and this is for a good reason. You have both the freedom and the responsibility to implement the CMMI practices and perform the work in a way that really helps you. So always look for a way to integrate the CMMI practices into your normal working processes rather than adding them on top.