What Is the Capability Maturity Model?
The Capability Maturity Model (CMM) is a development model created after studying data collected from an organization contracted with the United States Department of Defense, which funds research. The term "maturity" refers to the form and optimization of the process, from temporary practice to formal defined steps, to management outcome indicators, and to proactive process optimization.
- The capability maturity model was originally developed as a tool to objectively assess government contractor processes' ability to implement contract software projects. The model is based on the process maturity framework first described in IEEE software, and was later described in Watts Humphrey's "Management Software Processes" book, published in 1989. It was later published in a 1993 report and published in 1995 as a book by the same author.
- Although the model comes from the field of software development, it is also used as a general model to assist business processes and is widely used worldwide in government offices, business and industry.
- The basic idea of CMM is that because problems are caused by our method of managing software processes, the use of new software technologies does not automatically increase productivity and profitability. CMM helps organizations build a regular, mature
- It must be kept in mind that improvements in software processes cannot be accomplished overnight, and CMM introduces changes incrementally. The CMM clearly defines 5 different maturity levels, and an organization can move to higher maturity levels in a series of small improvement steps.
- Maturity level 1: Initial. Organizations at this lowest level basically have no sound software engineering management system. Everything is done in a special way. If a particular project happens to be done by a capable administrator and an excellent software development team, the project may be successful. However, it is often the case that due to lack of sound overall management and detailed planning, time and expenses are often overrun. As a result, most actions are for crisis response, not planned tasks. An organization at maturity level 1 is unpredictable because the software process is completely dependent on the current staffing. The staff has changed and the process has changed. As a result, it is impossible to accurately predict important items such as product development time and costs.
- Maturity level 2: Repeatable. At this level, some basic software project management behaviors, design, and management techniques are based on experience in similar products and are called "repeatable." Certain measures have been taken at this level, which are an indispensable first step towards a complete process. Typical measures include careful tracking of costs and progress. Unlike at the first level, acting under a crisis, managers can spot problems as they arise and take corrective action immediately to prevent them from becoming a crisis. The key point is that without these measures, it is impossible to detect problems before they become uncontrollable. Measures taken in one project can also be used to develop deadlines and cost plans for future projects.
- Maturity level 3: Defined. At level 3, the process of software production is fully documented. The management and technical aspects of the software process are clearly defined, and the process is continuously improved as needed, and a review method is used to ensure the quality of the software. At this level, the CASE environment can be cited to further improve quality and productivity. In the first stage, "high technology" will only make this crisis-driven process more chaotic.
- Maturity level 4: Managed . A company at level 4 sets quality and production goals for each project. These two quantities will be continuously measured and when there is too much deviation from the target, action will be taken to correct it. Using statistical quality control, management can distinguish random deviations from meaningful quality or production target deviations. (A simple example of statistical quality control measures is the error rate per thousand lines of code. The corresponding goal is to reduce this over time. Amount) [1] .
- Maturity level 5: Optimizing . The goal of a Level 5 organization is to continuously improve software processes. Such organizations use statistical quality and process control techniques as a guide. The knowledge gained from all aspects will be used in future projects, so that the software process is integrated into a positive feedback loop, and productivity and quality are steadily improved.
- The entire enterprise will focus on continuously optimizing the process and take proactive measures to find the weaknesses and strengths of the process to achieve the goal of preventing defects. At the same time, analyze the effectiveness data of each relevant process, make an analysis of the costs and benefits of the new technology, and propose suggestions for modifying the process. Companies that reach this level can continue to improve spontaneously to prevent similar defects from recurring.
- CMM provides a step-by-step improvement framework for software process capability. It provides a framework diagram based on process improvement based on past software engineering experience. It points out what major tasks a software organization needs in software development. The relationship between them, and the sequence of work, do these tasks step by step and make the software organization mature. The idea of CMM comes from the project management and quality management which has a long history. It has been revised several times since its creation and has become a model with extensive influence in the software industry. Although various maturity models have been proposed by individuals or groups, no one has established an authoritative standard in the industry like CMM. However, OPM3 released by PMI in 2003 is expected to become the standard of the project management community with its three-dimensional model and wide coverage.