CMMI for Development (CMMI-DEV in short) model is collection of best practices meant for Software Development & Support Companies to improve their products and as a result to improve customer satisfaction. CMMI was developed by industry specialists from different industries, domains, government and was developed at the Carnegie Mellon® Software Engineering Institute (SEI) USA. Today every company wants its services and products to be delivered in a better, quick and cost effective way. Every company is building more complex products and services but to develop complex product or service is very difficult and unusual. And it involves some components to be developed in-house and some to be acquired from other companies and then the final product or service is comprised by integrating them all. For these activities Organizations must be capable and mature enough to manage and control their own complex development and maintenance processes.The main issue many organizations faced is the need of an integrated approach. Business success is directly dependent on effective management of organizational assets. In brief, to achieve their business objectives, these organizations which provide products and services always need an appropriate way to manage their development activities.
In the present scenario, an organization improves its way of doing business by various standards, models, methodologies and guidelines. However, most of these standards and models focus on a particular domain or division of the business rather than taking a systemic approach to the problems.
CMMI for Development (CMMI-DEV) offers a possibility to eliminate or avoid these barriers, problems faced by many organizations worldwide. CMMI for Development comprises of best practices that address development activities applicable to products and services developed by an organization. It also comprises practices that include the product’s lifecycle covering from beginning to delivery and maintenance.
CMMI-DEV contains 22 process areas – out of these 16 are core process areas, 1 is a shared process area, and 5 are development specific process areas.
All CMMI-DEV model practices concentrate on the activities of an organization that are in the Software development business. CMMI contains following process areas specially defined for software engineering activities:
- Requirements development,
- Technical solution,
- Product integration,
CMMI for Development is defined as a reference model that includes activities meant for developing both products and services. Many organizations including software, hardware, aerospace, banking, defense companies and others uses CMMI for Development for process improvement activities.
CMMI for Development includes software industry best practices that comprise project management, process management, systems engineering, hardware engineering, software engineering, and other supporting processes used in development and maintenance of software products and projects.
Structure of CMMI Components
What is a Process Area in CMMI?
A process area is a group of relevant practices (known as Specific Practices), when implemented together, satisfies a set of goals (Specific Goals) considered significant to make improvement in that particular area.
The 22 process areas are presented in alphabetical order by acronym:
- Causal Analysis and Resolution (CAR)
- Configuration Management (CM)
- Decision Analysis and Resolution (DAR)
- Integrated Project Management (IPM)
- Measurement and Analysis (MA)
- Organizational Process Definition (OPD)
- Organizational Process Focus (OPF)
- Organizational Performance Management (OPM)
- Organizational Process Performance (OPP)
- Organizational Training (OT)
- Product Integration (PI)
- Project Monitoring and Control (PMC)
- Project Planning (PP)
- Process and Product Quality Assurance (PPQA)
- Quantitative Project Management (QPM)
- Requirements Development (RD)
- Requirements Management (REQM)
- Risk Management (RSKM)
- Supplier Agreement Management (SAM)
- Technical Solution (TS)
- Validation (VAL)
- Verification (VER)
CMMI-DEV neither does specify a particular process flow, steps or direction to be followed by a project or organization nor does it target specific performance targets be achieved. CMMI-DEV does not specify a certain number of products be developed per day or per day target. This model defines that an organization or project should have processes that cover practices related to development. And there is no need to develop new processes for CMMI Implementation, a project or organization can map its processes to the CMMI process areas and can fill in the required items based on gap analysis and can leverage the CMMI benefit in process improvement.
What is Specific Goal in CMMI?
A specific goal is part of a Process Area and must be present to satisfy that process area and also describes the unique characteristics about the process area. A specific goal is a required model component which is used in appraisals to determine whether a process area is satisfied or not. A Specific Goal is identified by short form SG.
For example, “SG 1 Establish Estimates” is a specific goal from the Project Planning (PP) process area. Only the statement of the specific goal is a required model component. A Specific Goal is not implemented directly rather sub-components i.e. Specific Practices are implemented to achieve a Specific Goal.
What is Specific Practice in CMMI?
A specific practice is a part or sub-components of the Specific Goals and is considered to be important in achieving the specific goal. A Specific practice is the description of an activity that needs to be performed to achieve a Specific Goal. A Specific Practice is identified by short form SP.
For example, “SP 1.4 Estimate Effort and Cost” is a specific practice in the Project Planning Process Area and under the Specific Goal – SG 1 Establish Estimates.
What is a Sub-practice in CMMI?
A subpractice is an elaborated guidance that provides direction for interpreting and implementing a specific or generic practice.
For example, “Collect models or historical data to be used to transform the attributes of work products and tasks into estimates of labor hours and costs.” is a subpractice of the specific practice “SP 1.4 Estimate Effort and Cost” in the Project Planning process area.
What is a Generic Goal in CMMI?
Generic goals are generic elements because they are applicable to multiple process areas. So, same Generic Goal is applicable to multiple process areas. Generic Goals are the elements which are there to institutionalize processes across the organization. A generic goal is a needed model component which is used in appraisals to regulate whether a process area is satisfied or not.
For example – “GG 2 Institutionalize a Managed Process” is a generic goal.
There are following Generic Goals (GGs) available in CMMI Version 1.3:
- GG 1 Performed process
- GG 2 Managed process
- GG 3 Defined process
What is a Generic Practice in CMMI?
Generic practices are generic elements present in a Generic Goals and apply to multiple process areas. These Generic Practices must be followed to institutionalize processes across the organization.
For example, “GP 2.1 Establish an Organizational Policy” is a generic practice for the generic goal “GG 2 Institutionalize a Managed Process”, which means that there should be an organizational policy to have processes in the organizations for various activities performed by the organization.
What are CMMI Maturity Levels?
There are 5 CMMI Maturity Levels from Level 1 to Level 5. Maturity Levels are like stages that organization achieves when they proceed on their journey of CMMI High Maturity. Levels can also be known as the result of the rating activity in appraisals.
The maturity level presents a way to describe the performance of an organization.
A maturity level is characterized as an evolutionary state for organizational process improvement and shows the maturity of an organization in terms of its activities, decision making and delivery of products and services
The maturity levels are calculated by the accomplishment of the specific and generic goals related to with all predefined set of process areas.
In CMMI models, there are total five maturity levels, designated by the numbers 1 through 5, one for each a layer in the foundation for continuing process improvement:
- Quantitatively Managed
CMMI Maturity Level 1: Initial
CMMI Maturity Level 1 is the most lowest or initial maturity level.
At CMMI Maturity Level 1, organizations have following characteristics:
- Processes are usually in ad hoc and disordered mode
- There is not environment for processes or process improvement
- Projects are generally over budget or have schedule overrun.
- These organizations are people centric and success is dependent on their skills.
- They are specialized in few kind of activities/projects.
- They are not able to repeat success with surety.
There is no Appraisal for CMMI Maturity Level 1. As per SEI all organizations not having Maturity Levels from 2 to 5 are at Maturity Level 1.
CMMI Maturity Level 2: Managed
At maturity level 2, organizations have certain processes and projects are executed according with policy defined.
At CMMI Maturity Level 2, organizations have following characteristics:
- There are no central processes and projects are free to use processes for their projects.
- Project scope, estimations, schedules are more realistic as compared to CMMI Maturity Level 1. Changes to requirements are managed.
- Project Management is done effectively.
- Supplier management is managed at this level.
- Skilled people are engaged with the project who have adequate knowledge and experience to produce desired and controlled outputs
Even after following processes in different projects, results of each project may vary to a large extent, because there is not Process Management focus at CMMI Maturity Level 2, which is a focus area at CMMI Maturity Level 3.
CMMI Maturity Level 3: Defined
At maturity level 3, all processes are well defined and understood at organizational level. , There is a central repository, QMS consisting of standards, tools, procedures, and methods. And over time, the organizational processes and standards are improved. Tailoring guidelines can be applied by projects to establish its defined processes by tailoring the organization’s set of standard processes.
At CMMI Maturity Level 3, organizations have following characteristics:
- There is a central repository of Processes, Standards, Guidelines, Templates and other required artifacts. Projects use same templates across organization.
- Processes are updated regularly. Projects also share learning and other important items like risks database, estimations etc.
- A Process Improvement Group is functional at Org Level.
- Organizational Training Planning and execution is an important aspect.
- Engineering activities are more focused.
- There is more integration between Project Management, Engineering and Support activities.
At maturity level 3, the processes related to the maturity level 2 process areas are further improved by the organization. To achieve maturity level 3, Generic practices related to with generic goal 3 are applied that were not addressed at maturity level 2. CMMI Maturity Level 3 contains maximum number of processes.
CMMI Maturity Level 4: Quantitatively Managed
At maturity level 4, quantitative objectives are established for quality and process performance by the organization and projects used them as criteria in managing projects. Quantitative objectives are generally defined on the basis of the needs of the customer, organization, end users, and process implementers. Quality and process performance is managed throughout the life of projects.
At CMMI Maturity Level 4 i.e. Quantitatively Managed level, the organizational focus is on the Quantitative Management of controlling the project and processes performance through the use of statistical tools.
At CMMI Maturity Level 4, organizations have following characteristics:
- Projects and Processes are managed using Statistical Tools
- Project and Org Data collected at CMMI Maturity Level 3 is utilised to generate Process Capability Baseline and Process Performance Models. All projects follow these models to predict and control their performance.
- Variations in performance are analysed and corrective actions are planned and applied.
- Focus is to improve the processes in terms of quantitative control and narrowing down on variations, leading to improvement in productivity, least cycle time, less defects and issues etc.
CMMI Maturity Level 4 enhances the organization capability to predict and then to control variations in performance.
CMMI Maturity Level 5: Optimizing
An organization frequently develops its processes at maturity level 5. Process development is based on a measurable perceptive of business goals and its presentation requirements. A quantifiable method is used by an organization to recognize the deviation essentials in the process and to the bases of route effects.
At CMMI Maturity Level 5 i.e. the Optimizing level the focus of the organization is to find the causes of variations and then to take corrective action for those variations, leading to the removal of causes of variations and optimizing the output that means continuous improvement. Process Improvements are also enforced through usage of a new tools, technology and technique.
At CMMI Maturity Level 5, organizations have following characteristics:
- Innovations are implemented in tools, technology or techniques for continual improvements throughout the organization.
- Defects are collected from various sources for analysis, root causes are identified and corrective actions are planned and implemented.
This way CMMI Maturity Level 5 led the organization on the way to the continuous improvement through optimization of different activities.