CMM model: Difference between revisions
m (Article improvement) |
(The LinkTitles extension automatically added links to existing pages (<a target="_blank" rel="noreferrer noopener" class="external free" href="https://github.com/bovender/LinkTitles">https://github.com/bovender/LinkTitles</a>).) |
||
Line 14: | Line 14: | ||
}} | }} | ||
CMM - Capability Maturity Model - was developed in 1987 by American software programmers Software Engineering Institute (SEI). was supported by the US Department of Defense and its goal was to develop methods that would improve the effectiveness of IT projects that were implemented by the Department of Defense. For this purpose, many years of research were carried out, the effect of which was to create the [[Capability]] Maturity Model for Software (SW-CMM). It is a model that focuses on improving manufacturing processes in organizations involved in the [[production]] of software. CMM is built based on the concept of maturity, where each (higher) subsequent level means more control over the processes taking place during the [[project]]. Thanks to the application of the model, the [[organization]] is able to determine the directions of changes and achieve greater [[efficiency]]. The model also helps in determining the path of the organization's evolution. CMM distinguishes five levels of maturity of the software development organization: | CMM - Capability Maturity Model - was developed in 1987 by American software programmers Software Engineering Institute (SEI). was supported by the US Department of Defense and its goal was to develop methods that would improve the effectiveness of IT projects that were implemented by the Department of Defense. For this purpose, many years of research were carried out, the effect of which was to create the [[Capability]] Maturity Model for Software (SW-CMM). It is a model that focuses on improving manufacturing processes in organizations involved in the [[production]] of software. CMM is built based on the concept of maturity, where each (higher) subsequent level means more control over the processes taking place during the [[project]]. Thanks to the application of the model, the [[organization]] is able to determine the directions of changes and achieve greater [[efficiency]]. The model also helps in determining the path of the organization's evolution. CMM distinguishes five [[levels of maturity]] of the [[software development]] organization: | ||
==CMM-1== | ==CMM-1== | ||
Line 42: | Line 42: | ||
* '''Level 2''': Repeatable - Here, the organization begins to gain control over the processes and the results. The processes become repeatable, meaning that they can be repeated without having to start from scratch each time. The processes are now documented and are available to all members of the organization. | * '''Level 2''': Repeatable - Here, the organization begins to gain control over the processes and the results. The processes become repeatable, meaning that they can be repeated without having to start from scratch each time. The processes are now documented and are available to all members of the organization. | ||
* '''Level 3''': Defined - At this level, the organization has a fully defined set of processes that can be used to manage and control the software development life cycle. The processes are now standardized and are available for use by all members of the organization. | * '''Level 3''': Defined - At this level, the organization has a fully defined set of processes that can be used to manage and control the software development life cycle. The processes are now standardized and are available for use by all members of the organization. | ||
* '''Level 4''': Managed - At this level, the processes are now managed and controlled. The organization has a clear understanding of how their processes work and can monitor them to ensure that they are being implemented correctly. The processes are now monitored and adapted to the changing needs of the organization. | * '''Level 4''': Managed - At this level, the processes are now managed and controlled. The organization has a clear understanding of how their processes work and can monitor them to ensure that they are being implemented correctly. The processes are now monitored and adapted to the changing [[needs]] of the organization. | ||
* '''Level 5''': Optimizing - At this level, the organization is able to continually improve their processes and make them more efficient. The organization is now able to identify and implement changes that will lead to increased efficiency and better results. | * '''Level 5''': Optimizing - At this level, the organization is able to continually improve their processes and make them more efficient. The organization is now able to identify and implement changes that will lead to increased efficiency and better results. | ||
Line 51: | Line 51: | ||
* '''Improved Collaboration''': The CMM model encourages collaboration between different departments and teams within an organisation, allowing teams to work together to identify and address weaknesses in their processes. | * '''Improved Collaboration''': The CMM model encourages collaboration between different departments and teams within an organisation, allowing teams to work together to identify and address weaknesses in their processes. | ||
* '''Increased Productivity''': By encouraging the use of best practices and improving the efficiency of processes, the CMM model can help organisations to increase their productivity and achieve their goals more quickly. | * '''Increased Productivity''': By encouraging the use of best practices and improving the efficiency of processes, the CMM model can help organisations to increase their productivity and achieve their goals more quickly. | ||
* '''Improved Documentation''': The CMM model encourages the use of standardised processes and documentation which can help organisations to ensure that their processes are well-defined and properly documented. | * '''Improved [[Documentation]]''': The CMM model encourages the use of standardised processes and documentation which can help organisations to ensure that their processes are well-defined and properly documented. | ||
==Limitations of CMM model== | ==Limitations of CMM model== | ||
* The Capability Maturity Model (CMM) has some limitations that should be taken into consideration when considering its use. Firstly, CMM is not suitable for all types of organizations and software development projects, as it is most effective when applied to large projects and organizations with a certain structure. Secondly, the model is based on a linear approach to software development, which does not always reflect the reality of the projects and processes. Thirdly, CMM does not provide any guidance for the implementation of processes and does not guarantee that the outcomes will be successful. Fourthly, the model does not consider the influence of external factors, such as the team’s motivation and the environment, which could have a significant effect on the success of the project. Lastly, CMM does not take into account the role of culture and leadership in the development of software, which could have a major impact on the results. | * The Capability Maturity Model (CMM) has some limitations that should be taken into consideration when considering its use. Firstly, CMM is not suitable for all types of organizations and software development projects, as it is most effective when applied to large projects and organizations with a certain structure. Secondly, the model is based on a linear approach to software development, which does not always reflect the reality of the projects and processes. Thirdly, CMM does not provide any guidance for the implementation of processes and does not guarantee that the outcomes will be successful. Fourthly, the model does not consider the influence of external factors, such as the team’s [[motivation]] and the [[environment]], which could have a significant effect on the success of the project. Lastly, CMM does not take into account the role of culture and leadership in the development of software, which could have a major impact on the results. | ||
==Other approaches related to CMM model== | ==Other approaches related to CMM model== | ||
* The SEI-CMM is not the only approach to software development process improvement. Other approaches related to the SEI-CMM model include: | * The SEI-CMM is not the only approach to software development [[process improvement]]. Other approaches related to the SEI-CMM model include: | ||
* ISO/IEC 15504 (SPICE) – an international standard that measures the process capability of software development and maintenance process. It has five process capability levels. | * ISO/IEC 15504 (SPICE) – an international [[standard]] that measures the [[process capability]] of software development and maintenance process. It has five process capability levels. | ||
* TickIT – a process improvement approach that provides guidance for improving the quality of software products and services. | * TickIT – a process improvement approach that provides guidance for improving the quality of software products and services. | ||
* Six Sigma – a process improvement methodology that focuses on reducing defects and increasing customer satisfaction. | * [[Six Sigma]] – a process improvement methodology that focuses on reducing defects and increasing [[customer]] satisfaction. | ||
* CMMI – a process improvement framework that provides guidance for improving the quality of software products and services. | * CMMI – a process improvement framework that provides guidance for improving the quality of software products and services. | ||
Revision as of 07:22, 1 March 2023
CMM model |
---|
See also |
CMM - Capability Maturity Model - was developed in 1987 by American software programmers Software Engineering Institute (SEI). was supported by the US Department of Defense and its goal was to develop methods that would improve the effectiveness of IT projects that were implemented by the Department of Defense. For this purpose, many years of research were carried out, the effect of which was to create the Capability Maturity Model for Software (SW-CMM). It is a model that focuses on improving manufacturing processes in organizations involved in the production of software. CMM is built based on the concept of maturity, where each (higher) subsequent level means more control over the processes taking place during the project. Thanks to the application of the model, the organization is able to determine the directions of changes and achieve greater efficiency. The model also helps in determining the path of the organization's evolution. CMM distinguishes five levels of maturity of the software development organization:
CMM-1
CMM-1 is a basic level for the first stage of development of a software company. There are no formal definitions of software development processes, planning or cost estimation. All processes are chaotic and unpredictable, which results from continual changes taking place during the project. The management only realizes that a project is being implemented. A characteristic feature of CMM1 is the fact that the success of the project largely depends on the work of the super-programmer (s), and therefore it is not repeatable.
CMM-2
CMM-2 - This level is characterized by the fact that the organization uses planning and cost analysis tools. Processes are planned and carried out according to the adopted organizational policy. It is necessary to follow the project requirements (resources, expectations of the client). The organization controls and tracks changes, creates measures of product quality and maintains them at a high level. The management is constantly acquainted with the progress of the work of the project being carried out. The works are carried out on the basis of the action plan prepared and adopted by the organization
CMM-3
CMM-3 - The organization has achieved its objectives from the CMM-2 level. Project management processes as well as the software production process itself are defined, described and formalized. Each employee is an element of a well-functioning system that generates software. The organization should create a thoroughly defined quality policy and refine the process of informing the management about the progress of work carried out within a given project. This level is significantly more advanced and structured in relation to the CMM-2 level.
It is necessary for the company to develop a precisely defined quality policy and mechanisms to inform the board about the progress.
CMM-4
CMM-4 - The organization develops mechanisms for measuring the efficiency of processes. Indicators are created that accurately determine the level of product quality. Processes are managed in a quantitative way, their course is tracked, sources of their variability are analyzed. The biggest difference with respect to the CMM-4 level is the very high predictability of the processes in the organization.
CMM-5
CMM-5 Taking into account the measurement of process efficiency and product quality of the product, the organization makes controlled changes to the current processes in order to improve the indicators. All targets from previous levels have been achieved. This level focuses on continuous improvement of processes through the use of modern technology and innovative solutions.
CMM vs CMMI
The CMM model has been developed in several versions, which were created in the nineties of the twentieth century. The CMM successor is CMMI (Capability Maturity Model Integration), which, unlike its predecessor, is a comprehensive model that can be implemented in organizations with a different business profile.
Examples of CMM model
- Level 1: Initial - This level is the basic level of maturity that is most often found in small software development organizations. At this stage, the processes are not defined, and the organization has no control over them. The organization more or less works on the "fly", and the results of the projects are unpredictable.
- Level 2: Repeatable - Here, the organization begins to gain control over the processes and the results. The processes become repeatable, meaning that they can be repeated without having to start from scratch each time. The processes are now documented and are available to all members of the organization.
- Level 3: Defined - At this level, the organization has a fully defined set of processes that can be used to manage and control the software development life cycle. The processes are now standardized and are available for use by all members of the organization.
- Level 4: Managed - At this level, the processes are now managed and controlled. The organization has a clear understanding of how their processes work and can monitor them to ensure that they are being implemented correctly. The processes are now monitored and adapted to the changing needs of the organization.
- Level 5: Optimizing - At this level, the organization is able to continually improve their processes and make them more efficient. The organization is now able to identify and implement changes that will lead to increased efficiency and better results.
Advantages of CMM model
One of the biggest advantages of the CMM model is its ability to help organisations to improve the effectiveness of their software development projects. It provides a methodical approach to assess and improve the maturity of an organisation's processes. The following are some of the main advantages that the CMM model offers:
- Improved Quality: The CMM model is designed to help organisations identify and address weaknesses in their processes which can lead to improved quality of the software products they produce.
- Improved Efficiency: By using the model to identify and address process issues that can lead to wasted time and resources, organisations can improve the efficiency of their software development projects.
- Improved Collaboration: The CMM model encourages collaboration between different departments and teams within an organisation, allowing teams to work together to identify and address weaknesses in their processes.
- Increased Productivity: By encouraging the use of best practices and improving the efficiency of processes, the CMM model can help organisations to increase their productivity and achieve their goals more quickly.
- Improved Documentation: The CMM model encourages the use of standardised processes and documentation which can help organisations to ensure that their processes are well-defined and properly documented.
Limitations of CMM model
- The Capability Maturity Model (CMM) has some limitations that should be taken into consideration when considering its use. Firstly, CMM is not suitable for all types of organizations and software development projects, as it is most effective when applied to large projects and organizations with a certain structure. Secondly, the model is based on a linear approach to software development, which does not always reflect the reality of the projects and processes. Thirdly, CMM does not provide any guidance for the implementation of processes and does not guarantee that the outcomes will be successful. Fourthly, the model does not consider the influence of external factors, such as the team’s motivation and the environment, which could have a significant effect on the success of the project. Lastly, CMM does not take into account the role of culture and leadership in the development of software, which could have a major impact on the results.
- The SEI-CMM is not the only approach to software development process improvement. Other approaches related to the SEI-CMM model include:
- ISO/IEC 15504 (SPICE) – an international standard that measures the process capability of software development and maintenance process. It has five process capability levels.
- TickIT – a process improvement approach that provides guidance for improving the quality of software products and services.
- Six Sigma – a process improvement methodology that focuses on reducing defects and increasing customer satisfaction.
- CMMI – a process improvement framework that provides guidance for improving the quality of software products and services.
In summary, there are several approaches related to the SEI-CMM model, such as ISO/IEC 15504 (SPICE), TickIT, Six Sigma, and CMMI, that provide processes and guidance for improving the effectiveness of software development and maintenance process.
References
- Curtis, B., Hefley, B., & Miller, S. (2009). People capability maturity model (P-CMM) version 2.0 (No. CMU/SEI-2009-TR-003). CARNEGIE-MELLON UNIV PITTSBURGH PA SOFTWARE ENGINEERING INST.
- Carbone, G., De Novellis, L., Commissaris, G., & Steinbuch, M. (2010). An enhanced CMM model for the accurate prediction of steady-state performance of CVT chain drives. Journal of Mechanical Design, 132(2), 021005.
- Paulk, M. C., Curtis, B., Chrissis, M. B., & Weber, C. V. (1993). Capability maturity model, version 1.1. IEEE software, 10(4), 18-27.