© Springer International Publishing AG 2017
Gerard O'ReganConcise Guide to Software EngineeringUndergraduate Topics in Computer Science10.1007/978-3-319-57750-0_16

16. Capability Maturity Model Integration

Gerard O’Regan 
(1)
SQC Consulting, Cork, Ireland
 
 
Gerard O’Regan
Abstract
This chapter gives an overview of the CMMI model and discusses its five maturity levels and their constituent process areas. We discuss both the staged and continuous representations of the CMMI, and SCAMPI appraisals that indicate the extent to which the CMMI has been implemented in the organization, as well as identifying opportunities for improvement.
Keywords
CMMI maturity levelsCMMI capability levelsCMMI staged representationCMMI continuous representationCMMI process areasAppraisals

16.1 Introduction

The Software Engineering Institute1 developed the Capability Maturity Model (CMM) in the early 1990s as a framework to help software organizations improve their software process maturity. The CMMI is the successor to the older CMM, and its implementation brings best practice in software and systems engineering into the organization. The SEI and many other quality experts believe that there is a close relationship between the maturity of software processes and the quality of the delivered software product.
The CMM built upon the work of quality gurus such as Deming [1], Juran [2] and Crosby [3]. These quality gurus were effective in transforming struggling manufacturing companies with quality problem to companies that could consistently produce high-quality products. Their success was due to the focus on improving the manufacturing process and in reducing variability in the process. The work of these quality experts is discussed in [4].
Similarly, software companies need to have quality software processes to deliver high-quality software to their customers. The SEI has collected empirical data to suggest that there is a close relationship between software process maturity and the quality of the delivered software. Therefore, there is a need to focus on the software process as well as on the product.
The CMM was released in 1991 and its successor, the CMMI® model, was released in 2002 [5]. The CMMI is a framework to assist an organization in the implementation of best practice in software and systems engineering. It is an internationally recognized model for process improvement and is used worldwide by thousands of organizations.
The focus of the CMMI is on improvements to the software process to ensure that they meet business needs more effectively. A process is a set of practices or tasks performed to achieve a given purpose. It may include tools, methods, materials and people. An organization will typically have many processes in place for doing its work, and the object of process improvement is to improve these to meet business goals more effectively.
The process is an abstraction of the way in which work is done in the organization, and is seen as the glue (Fig. 16.1) that ties people, procedures and tools together.
A447511_1_En_16_Fig1_HTML.gif
Fig. 16.1
Process as glue for people, procedures and tools
It may be described by a process map which details the flow of activities and tasks. The process map will include the input to each activity and the output from each activity. Often, the output from one activity will become the input to the next activity. A simple example of a process map for creating the system requirements specification was described in Chap. 15 (Fig. 15.​2).
The ISO/IEC 12207 standard for software processes distinguishes between several categories of software processes, including the primary lifecycle processes for developing and maintaining software; supporting processes to support the software development lifecycle, and organization lifecycle processes. These are summarized in Fig. 16.2.
A447511_1_En_16_Fig2_HTML.gif
Fig. 16.2
ISO/IEC 12207 standard for software engineering processes
Watts Humphrey began applying the ideas of Deming, Juran and Crosby to software development, and he published the book “Managing the Software Process” [6]. He moved to the SEI to work on software process maturity models with the other SEI experts, and the SEI released the Capability Maturity Model in the early 1990s. This process model has proved to be effective in assisting companies in improving their software engineering practices and in achieving consistent results and high-quality software.
The CMM is a process model and it defines the characteristics or best practices of good processes. It does not prescribe how the processes should be defined, and it allows the organization the freedom to interpret the model to suit its particular context and business needs. It also provides a roadmap for an organization to get from where it is today to a higher level of maturity. The advantage of model-based improvement is that it provides a place to start process improvement, as well as a common language and a shared vision.
The CMM consists of five maturity levels with the higher maturity levels representing advanced software engineering capability. The lowest maturity level is level one and the highest is level five. The SEI developed an assessment methodology (CBA IPI) to determine the maturity of software organizations, and initially most organizations were assessed at level one maturity. However, over time companies embarked on improvement initiatives and matured their software processes, and today, many companies are performing at the higher maturity levels.
The first company to be assessed at CMM level 52 was the Motorola plant in Bangalore in India. The success of the software CMM led to the development of other process maturity models such as the systems engineering capability maturity model (CMM/SE) which is concerned with maturing systems engineering practices, and the people Capability Maturity Model (P-CMM) which is concerned with improving the ability of the software organizations to attract, develop and retain talented software engineering professionals.
The SEI commenced work on the CMMI® [5] in the late 1990s. This is a replacement for the older CMM model, and its development involved merging the software CMM and the systems CMM, and ensuring that the new model was compatible with ISO 15504 standard.3 The CMMI is described in the next section.

16.2 The CMMI

The CMMI consists of five maturity levels (Fig. 16.4) with each maturity level (except level one) consisting of a number of process areas. Each process area consists of a set of goals, and these must be implemented by a set of related practices in order for the process area to be satisfied. The practices specify what is to be done rather than how it should be done. Processes are activities associated with carrying out certain tasks, and they need to be defined and documented. The users of the process need to receive appropriate training to enable them to carry out the process, and process discipline need to be enforced by independent audits. Process performance needs to be monitored and improvements made to ineffective processes.
The emphasis on level two of the CMMI is on maturing management practices such as project management, requirements management and configuration management. The emphasis on level three of the CMMI is on maturing engineering and organization practices. Maturity level three is concerned with defining standard organization processes, and it also includes process areas for the various engineering activities needed to design and develop the software. Level four is concerned with ensuring that key processes are performing within strict quantitative limits, and adjusting processes, where necessary, to perform within these limits. Level five is concerned with continuous process improvement. Maturity levels may not be skipped in the staged implementation of the CMMI, as each maturity level is the foundation for work on the next level.
There is also a continuous representation4 of the CMMI (similar to ISO 15504) that allows the organization to focus its improvements on the key processes that are closely related to its business goals. This allows it the freedom to choose an approach that should result in the greatest business benefit rather than proceeding with the standard improvement roadmap of the staged approach. However, in practice, it is often necessary to implement several of the level two process areas before serious work can be done on maturing a process to a higher capability level. Table 16.1 presents motivations for the implementation of the CMMI.
Table 16.1
Motivation for CMMI implementation
Motivation for CMMI implementation
Enhances the credibility of the company
Marketing benefit of CMMI maturity level
Implementation of best practice in software and systems engineering
Clearly defined roadmap for improvement
It increases the capability and maturity of an organization
It improves the management of subcontractors
It provides improved technical and management practices
It leads to higher quality of software
It leads to increased timeliness of projects
It reduces the cost of maintenance and incidence of defects
It allows the measurement of processes and products
It allows projects/products to be quantitatively managed
It allows innovative technologies to be rigorously evaluated to enhance process performance
It improves customer satisfaction
It changes the culture from firefighting to fire prevention
It leads to a culture of improvement
It leads to higher morale in company
The CMMI model covers both the software engineering and systems engineering disciplines. Systems engineering is concerned with the development of systems that may or may not include software, whereas software engineering is concerned with the development of software systems. The model contains extra information relevant to a particular discipline, and this is done by discipline amplification.5 The CMMI has been updated in recent years to provide support for the Agile methodology.
The CMMI allows organizations to benchmark themselves against similar organizations (Fig. 16.3). This is generally done by a formal SEI SCAMPI Class A appraisal6 conducted by an authorized SCAMPI lead appraiser. The results will generally be reported back to the SEI, and there is a strict qualification process to become an authorized lead appraiser. The qualification process helps to ensure that the appraisals are conducted fairly and objectively and that the results are consistent. An appraisal verifies that an organization has improved, and it enables the organization to prioritize improvements for the next improvement cycle. Small organizations will often prefer a SCAMPI Class B or C appraisal, as these are less expensive and time consuming.7
A447511_1_En_16_Fig3_HTML.gif
Fig. 16.3
CMMI worldwide maturity 2013
The time required to implement the CMMI in an organization depends on its size and current maturity. It generally takes one to two years to implement maturity level two, and a further one to two years to implement level 3. The implementation of the CMMI needs to be balanced against the day-to-day needs of the organization in delivering products and services to its customers.
The SEI has gathered empirical data (Table 16.2) on the benefits gained from the implementation of the CMMI [7]. The table shows the median results reported to the SEI.
Table 16.2
Benefits of CMMI implementation
Benefit
Actual saving
Cost
34%
Schedule
50%
Productivity
61%
Quality
48%
Customer satisfaction
14%
Return on investment
4:1
The processes implemented during a CMMI initiative will generally include:
  • Developing and Managing Requirements
  • Design and Development
  • Project Management
  • Selecting and managing Subcontractors
  • Managing change and Configurations
  • Peer reviews
  • Risk Management and Decision Analysis
  • Testing
  • Audits

16.3 CMMI Maturity Levels

The CMMI is divided into five maturity levels (Table 16.3) with each maturity level (except level one) consisting of several process areas. The maturity level is a predictor of the results that will be obtained from following the software process, and the higher the maturity level of the organization, the more capable it is and the more predictable its results. The current maturity level acts as the foundation for the improvements to be made in the move to the next maturity level.
Table 16.3
CMMI maturity levels
Maturity level
Description
Initial
Processes are often ad hoc or chaotic with performance often unpredictable. Success is often due to the heroics of people rather than having high-quality processes in place. The defined process is often abandoned in times of crisis, and there are no audits to enforce the process
It is difficult to repeat previous success since success is due to heroic efforts of its people rather than processes. These organizations often over-commit, as they often lack an appropriate estimation process on which to base project commitments
Firefighting is a way of life in these organizations. High-quality software might be produced, but at a cost including long hours, high level of rework, over budget and schedule and unhappy staff and customers. Projects do not perform consistently as their success is dependent on the people involved
They may have few processes defined and poor change control, poor estimation and project planning and weak enforcement of standards
Managed
A level two organization has good project management practices in place, and planning and managing new projects is based on experience with similar previous projects
The process is planned, performed and controlled. A level two organization is disciplined in following processes, and the process is enforced with independent audits
The status of the work products produced by the process is visible to management at major milestones, and changes to work products are controlled. The work products are placed under appropriate configuration management control
The requirements for a project are managed and changes to the requirements are controlled. Project management practices are in place to manage the project, and a set of measures are defined for the budget, schedule and effort variance. Subcontractors are managed
Independent audits are conducted to enforce the process. The processes in a level two organization are defined at the project level
Defined
A maturity level three organization has standard processes defined that support the whole organization
These standard processes ensure consistency in the way that projects are conducted across the organization. There are guidelines defined that allow the organization process to be tailored and applied to each project
There are standards in place for design and development and procedures defined for effective risk management and decision analysis
Level 3 processes are generally defined more rigorously than level 2 processes, and the definition includes the purpose of the process, inputs, entry criteria, activities, roles, measures, verification steps, exit criteria and output. There is also an organization-wide training program and improvement data is collected
Quantitatively managed
A level 4 organization sets quantitative goals for the performance of key processes, and these processes are controlled using statistical techniques
Processes are stable and perform within narrowly defined limits. Software process and product quality goals are set and managed
A level 4 organization has predictable process performance, with variation in process performance identified and the causes of variation corrected
Optimizing
A level 5 organization has a continuous process improvement culture in place, and processes are improved based on a quantitative understanding of variation
Defect prevention activities are an integral part of the development lifecycle. New technologies are evaluated and introduced (where appropriate) into the organization. Processes may be improved incrementally or through innovative process and technology improvements
The maturity levels provide a roadmap for improvements in the organization, and maturity levels are not skipped in the staged implementation. A particular maturity level is achieved only when all process areas belonging to that maturity level (and all process areas belonging to lower maturity levels) have been successfully implemented and institutionalized8 in the organization.
The implementation of the CMMI generally starts with improvements to processes at the project level. The focus at level two is on improvements to managing projects and suppliers and improving project management, supplier selection, management practices and so on.
The improvements at level 3 involve a shift from the focus on projects to the organization. It involves defining standard processes for the organization, and projects may then tailor the standard process (using tailoring guidelines) to produce the project’s software process. Projects are not required to do everything in the same way as the tailoring of the process allows the project’s defined software process to reflect the unique characteristics of the project: i.e., a degree of variation is allowed as per the tailoring guidelines to reflect the unique characteristics of the project.
The implementation of level three involves defining procedures and standards for engineering activities such as design, coding and testing. Procedures are defined for peer reviews, testing, risk management and decision analysis.
The implementation of level four involves achieving process performance within defined quantitative limits. This involves the use of metrics and setting quantitative goals for project and process performance and managing process performance. The implementation of level 5 is concerned with achieving a culture of continuous improvement in the company. The causes of defects are identified and resolution actions implemented to prevent a reoccurrence.

16.3.1 CMMI Representations

The CMMI is available in the staged and continuous representations. Both representations use the same process areas as well as the same specific and generic goals and practices.
The staged representation was described in Fig. 16.4, and it follows the well-known improvement roadmap from maturity level one through improvement cycles until the organization has achieved its desired level of maturity. The staged approach is concerned with organization maturity, and it allows statements of organization maturity to be made, whereas the continuous representation is concerned with individual process capability.
A447511_1_En_16_Fig4_HTML.gif
Fig. 16.4
CMMI maturity levels
The continuous representation is illustrated in Fig. 16.5, and it has been influenced by ISO 15504 (the standard for software process assessment). It is concerned with improving the capability of those selected processes, and it gives the organization the freedom to choose the order of improvements that best meet its business needs (Fig. 16.6). The continuous representation allows statements of individual process capability to be made. It employs six capability levels and a process is rated at a particular capability level.
A447511_1_En_16_Fig5_HTML.gif
Fig. 16.5
CMMI capability levels
A447511_1_En_16_Fig6_HTML.gif
Fig. 16.6
CMMI—continuous representation
Each capability level consists of a set of specific and generic goals and practices, and the capability levels provide a path for process improvement within the process area. Process improvement is achieved by the evolution of a process from its current capability level to a higher capability level. For example, a company may wish to mature its project planning process from its current process rating of capability level 2 to a rating of capability level 3. This requires the implementation of practices to define a standard project planning process as well as collecting improvement data. The capability levels are shown in Table 16.4.
Table 16.4
CMMI capability levels for continuous representation
Capability level
Description
Incomplete (0)
The process does not implement all of the capability level one generic and specific practices. The process is either not performed or partially performed
Performed (1)
A process that performs all of the specific practices and satisfies its specific goals. Performance may not be stable
Managed (2)
A process at this level has the infrastructure to support the process. It is managed: i.e., planned and executed in accordance with policy, its users are trained; it is monitored and controlled and audited for adherence to its process description
Defined (3)
A process at this level has a defined process: i.e., a managed process that is tailored from the organization’s set of standard processes. It contributes work products, measures and other process improvement information to the organization’s process assets
Quantitatively managed (4)
A process at this level is a quantitatively managed process: i.e., a defined process that is controlled by statistical techniques. Quantitative objectives for quality and process performance are established and used to control the process
Optimizing (5)
A process at this level is an optimizing process: i.e., a quantitatively managed process that is continually improved through incremental and innovative improvements
An incomplete process is a process that is either partially performed or not performed at all. A performed process carries out the expected practices and work products. However, such a process may not be adequately planned or enforced. A managed process is planned and executed with appropriately skilled and trained personnel. The process is monitored and controlled and periodically enforced via audits.
A defined process is a managed process that is tailored from the standard process in the organization using tailoring guidelines. A quantitatively managed process is a defined process that is controlled using quantitative techniques. An optimizing process is a quantitatively managed process that is continuously improved through incremental and innovative improvements.
The process is rated at a particular capability level provided it satisfies all of the specific and generic goals of that capability level, and it also satisfies the specific and generic goals of all lower capability levels.
We shall be concerned with the implementation of the staged representation of the CMMI rather than the continuous representation. The reader is referred to [5] for more information on both representations.

16.4 Categories of CMMI Processes

The process areas on the CMMI can be divided into four categories. These are shown in Table 16.5.
Table 16.5
CMMI process categories
Maturity level
Description
Process management
The process areas in this category are concerned with activities to define, plan, implement, deploy, monitor, control, appraise, measure and improve the processes in the organization: They include:
   • Organization process focus
   • Organization process definition
   • Organization training
   • Organization process performance
   • Organization innovation and deployment
Project management
These process areas are concerned with activities to create and maintain a project plan, tailoring the standard process to produce the project’s defined process, monitoring progress with respect to the plan, taking corrective action, the selection and management of suppliers, and the management of risk. They include:
   • Project planning
   • Project monitoring and control
   • Risk management
   • Integrated project management
   • Supplier agreement management
   • Quantitative project management
Engineering
These process areas are concerned with engineering activities such as determining and managing requirements, design and development, testing and maintenance of the product. They include:
   • Requirements development
   • Requirements management
   • Technical solution
   • Product integration
   • Verification
   • Validation
Support
This includes activities that support product development and maintenance
   • Configuration management
   • Process and product quality assurance
   • Measurement and analysis
   • Decision analysis and resolution

16.5 CMMI Process Areas

This section provides a brief overview of the process areas of the CMMI model. All maturity levels (with the exception of level one) contain several process areas. The process areas are described in more detail in [5] (Table 16.6).
Table 16.6
CMMI Process Areas
Maturity level
Process area
Description of process area
Level 2
REQM
Requirements management
This process area is concerned with managing the requirements for the project and ensuring that the work products are kept consistent with the requirements
PP
Project planning
This process area is concerned with estimation for the project, developing and obtaining commitment to the project plan and maintaining the plan
PMC
Project monitoring and control
This process area is concerned with monitoring progress against the plan and taking corrective action when project performance deviates from the plan
SAM
Supplier agreement management
This process area is concerned with the selection of suppliers, documenting the (legal) agreement/statement of work with the supplier and managing the supplier during the execution of the agreement
MA
Measurement and analysis
This process area is concerned with determining management information needs and measurement objectives. Measures are then specified to meet these objectives, and data collection and analysis procedures defined
PPQA
Process and product quality assurance
This process area is concerned with providing visibility to management on process compliance. Non-compliance issues are documented and resolved by the project team
CM
Configuration management
This process area is concerned with setting up a configuration management system; identifying the items that will be subject to change control, and controlling changes to them
Level 3
RD
Requirements development
This process area is concerned with specifying the user and system requirements, and analyzing and validating them
TS
Technical solution
This process area is concerned with the design, development and implementation of an appropriate solution to the customer requirements
PI
Product integration
This process area is concerned with the assembly of the product components to deliver the product and verifying that the assembled components function correctly together
VER
Verification
This process area is concerned with ensuring that selected work products satisfy their specified requirements. This is achieved by peer reviews and testing
VAL
Validation
This process area is concerned with demonstrating that the product or product component is fit for purpose and satisfies its intended use
OPF
Organization process focus
This process area is concerned with planning and implementing process improvements based on a clear understanding of the current strengths and weakness of the organization’s processes
OPD
Organization process definition
This process area is concerned with creating and maintaining a usable set of organization processes. This allows consistent process performance across the organization
OT
Organization training
This process area is concerned with developing the skills and knowledge of people to enable them to perform their roles effectively
IPM
Integrated project management
This process area is concerned with tailoring the organization set of standard processes to define the project’s defined process. The project is managed according to the project’s defined process
RSKM
Risk management
This process area is concerned with identifying risks and determining their probability of occurrence and impact should they occur. Risks are identified and managed throughout the project
DAR
Decision analysis and resolution
This process area is concerned with formal decision making. It involves identifying options, specifying evaluation criteria and method, performing the evaluation, and recommending a solution
Level 4
OPP
Organization process performance
This process area is concerned with obtaining a quantitative understanding of the performance of selected organization processes in order to quantitatively manage projects in the organization
QPM
Quantitative project management
This process area is concerned with quantitatively managing the project’s defined process to achieve the project’s quality and performance objectives
Level 5
OID
Organization innovation and deployment
This process area is concerned with incremental and innovative process improvements
CAR
Causal analysis and resolution
This process area is concerned with identifying causes of defects and taking corrective action to prevent a reoccurrence in the future

16.6 Components of CMMI Process Areas

The maturity level of an organization indicates the expected results that its projects will achieve and is a predictor of future project performance. Each maturity level consists of a number of process areas, and each process area consists of specific and generic goals, and specific and generic practices. Each maturity level is the foundation for improvements for the next level (Fig. 16.7).
A447511_1_En_16_Fig7_HTML.gif
Fig. 16.7
CMMI-staged model
The specific goals and practices are listed first and then followed by the generic goals and practices. The specific goals and practices are unique to the process area being implemented and are concerned with what needs to be done to perform the process. The specific practices are linked to a particular specific goal, and they describe activities that when performed achieve the associated specific goal for the process area.
The generic goals and practices are common to all process areas for that maturity level and are concerned with process institutionalization at that level. The generic practices are organized by four common features:
  • Commitment to perform
  • Ability to perform
  • Directing implementation
  • Verifying implementation
They describe activities that when implemented achieve the associated generic goal(s) for the process area. The commitment to perform practices relate to the creation of policies and sponsorship of process improvement; the ability to perform practices are related to the provision of appropriate resources and training to perform the process; the directing implementation practices relate to activities to control and manage the process; and verifying practices relate to activities to verify adherence to the process.
The implementation of the generic practices institutionalizes the process and makes it ingrained in the way that work is done. Institutionalization means that the process is defined, documented and understood. Process users are appropriately trained and the process is enforced by independent audits. Institutionalization helps to ensure that the process is performed consistently and is more likely to be retained during times of stress. The degree of institutionalization is reflected in the extent to which the generic goals and practices are satisfied. The generic practices ensure the sustainability of the specific practices over time.
There is one specific goal associated with the Requirements Management process area (Fig. 16.8), and it has five associated specific practices:
A447511_1_En_16_Fig8_HTML.gif
Fig. 16.8
Specific practices for SG1—manage requirements
SG 1—Manage Requirements
Requirements are managed and inconsistencies with project plans and work products are identified.
The components of the CMMI model are grouped into three categories, namely required, expected and informative components. The required category is essential to achieving goals in a particular area and includes the specific and generic goals that must be implemented and institutionalized for the process area to be satisfied. The expected category includes the specific and generic practices that an organization will typically implement to perform the process effectively. These are intended to guide individuals or groups who are implementing improvements, or who are performing appraisals to determine the current maturity of the organization. They state what needs to be done rather than how it should be done, thereby giving the organization freedom on the most appropriate implementation.
The informative category includes information to guide the implementer on how best to approach the implementation of the specific and generic goals and practices. These include subpractices, typical work products and discipline amplifications. This information assists with the implementation of the process area.
The implementation and institutionalization of a process area involves the implementation of the specific and generic practices. The specific practices are concerned with process implementation and are described in detail in [8]. The generic practices are concerned with process institutionalization and are summarized in Table 16.7.
Table 16.7
CMMI generic practices
Generic goal
Generic practice
Description of generic practice
GG 1 Performed process
GP 1.1
Perform base practices
The purpose of this generic practice is to produce the work products and services associated with the process (i.e., as detailed in the specific practices). These practices may be done informally without following a documented process description and success may be dependent on the individuals performing the work. That is, the basic process is performed but it may be immature
GG 2 Managed process
GP 2.1
Organization policy
The organization policy is established by senior management and defines the management expectations of the organization
GP 2.2
Plan the process
A plan is prepared to perform the process and it will assign responsibilities and document the resources needed to perform the process as well as any training requirements. The plan is revised as appropriate
GP 2.3
Provide resources
This is concerned with ensuring that the resources required to perform the process (as specified in the plan) are available when required
GP 2.4
Assign responsibility
The purpose of this generic practice is to assign responsibility for performing the process
GP 2.5
Train people
This generic practice is concerned with ensuring that people receive the appropriate training to enable them to perform and support the process
GP 2.6
Manage configurations
This generic practice is concerned with identifying the work products created by the process that will be subject to configuration management control
GP 2.7
Identify and involve relevant stakeholders
This is concerned with ensuring that the stakeholders are identified (as described in the plan), and involved appropriately during the execution of the process
GP 2.8
Monitor and control the process
This generic practice is concerned with monitoring process performance and taking corrective action
GP 2.9
Objectively evaluate adherence
This is concerned with conducting audits to verify that process execution adheres to the process description
GP 2.10
Review status with higher level management
This is concerned with providing higher level management with appropriate visibility into the process
GG 3 Defined process
GP 3.1
Establish a defined process
This is concerned with tailoring the organization set of standard processes to produce the project’s defined process
GP 3.2
Collect improvement information
This generic practice is concerned with collecting improvement information and work products to support future improvement of the processes
GG 4 Quantitatively managed process
GP 4.1
Establish quantitative objectives
This is concerned with agreeing on quantitative objectives (e.g., quality/performance) for the process with the stakeholders
GP 4.2
Stabilize subprocess performance
This generic practice is concerned with stabilizing the performance of one or more key subprocesses of the process using statistical techniques. This enables the process to achieve its objectives
GG 5 Optimizing process
GP 5.1
Ensure continuous process improvement
This generic practice is concerned with systematically improving selected processes to meet quality and process performance targets
GP 5.2
Correct root cause of problems
This generic practice is concerned with analyzing defects encountered to correct the root cause of these problems and to prevent reoccurrence
The generic goals support an evolution of process maturity, and the implementation of each generic goal provides a foundation for further process improvements. That is, a process rated at a particular maturity level has all of the maturity of a process at the lower levels and the additional maturity of its rated level. In other words, a defined process is a managed process; a quantitatively managed process is a defined process, and so on.
Several of the CMMI process areas support the implementation of the generic goals and practices. These process areas contain one or more specific practices that when implemented may either fully implement a generic practice or generate a work product that is used in the implementation of the generic practice. The implementation of the generic practices is supported by the following process areas (Table 16.8).
Table 16.8
Implementation of generic practices
Generic goal
Generic practice
Process area supporting implementation of generic practice
GG 2 Managed process
GP 2.2
Plan the process
Project planning
GP 2.5
Train the people
Organization training
Project planning
GP 2.6
Manage configurations
Configuration management
GP 2.7
Identify/involve relevant stakeholders
Project planning
GP 2.8
Monitor and control the process
Project monitoring and control
GP 2.9
Objectively evaluate adherence
Process and product quality assurance
GG 3 Defined process
GP 3.1
Establish defined process
Integrated project management
Organization process definition
GP 3.2
Improvement information
Integrated project management
Organization process focus
Organization process definition
GG 4 Quantitatively managed process
GP4.1
Establish quantitative objectives for process
Quantitative project management
Organization process performance
GP 4.2
Stabilize subprocess performance
Quantitative project management
Organization process performance
GG 5 Optimizing process
GP5.1
Ensure continuous process improvement
Organization innovation and deployment
GP 5.2
Correct root cause of problems
Causal analysis and resolution

16.7 SCAMPI Appraisals

SCAMPI appraisals are conducted to enable an organization to understand its current software process maturity, and to prioritize future improvements [9]. The appraisal is an independent examination of the processes used in the organization against the CMMI model, and its objective is to identify strengths and weaknesses in the processes, which are then used to prioritize improvements in the next improvement cycle.
The SCAMPI methodology is the appraisal methodology used with the CMMI, and there are three distinct classes of appraisal (SCAMPI Class A, B and C) [10]. These classes vary in formality, the cost, effort and timescales involved, the rating of the processes and the reporting of results.
The scope of the appraisal includes the process areas to be examined, and the projects and organization unit to be examined. It may be limited to the level 2 process areas, or the level 2 and level 3 process areas, and so on. The scope depends on how active the organization has been in process improvement.
The appraisal will identify any gaps that exist with respect to the implementation of the CMMI practices for each process area within the scope of the appraisal. The appraisal team will conduct interviews and review project documentation, and they will examine the extent to which the practices are implemented.
The appraisal findings are presented and are used to plan and prioritize the next improvement cycle. SCAMPI appraisals are discussed in more detail in [4].

16.8 Review Questions

  1. 1.
    Describe the CMMI Model.
     
  2. 2.
    Describe the staged and continuous representations of the CMMI.
     
  3. 3.
    What are the advantages and disadvantages of each CMMI representation?
     
  4. 4.
    Describe the CMMI maturity levels and the process areas in each level.
     
  5. 5.
    What is the purpose of the CMMI specific and generic practices?
     
  6. 6.
    Describe how the generic practices are implemented?
     
  7. 7.
    What is the difference between implementation and institutionalization?
     
  8. 8.
    What is the purpose of SCAMPI appraisals?
     
  9. 9.
    How do appraisals fit into the software process improvement cycle?
     

16.9 Summary

The Capability Maturity Model Integration is a framework to assist an organization in the implementation of best practice in software and systems engineering. It was developed at the Software Engineering Institute and is used by many organizations around the world.
The SEI and other quality experts believe that there is a close relationship between the quality of the delivered software and the maturity of the processes used to create the software. Therefore, there needs to be a focus on the process as well as on the product, and the CMMI contains best practice in software and systems engineering to assist in the creation of high-quality processes.
The process is seen as the glue that ties people, technology and procedures coherently together. Processes are activities associated with carrying out certain tasks, and they need to be defined and documented. The users of the process need to receive appropriate training on their use, and process discipline needs to be enforced with independent audits. Process performance needs to be monitored and improvements made to ineffective processes.
The CMMI consists of five maturity levels with each maturity level (except level one) consisting of several process areas. Each maturity level acts as a foundation for improvement for the next improvement level, and each increase in maturity level represents more advanced software engineering capability. The higher the maturity level of the organization, the more capable it is, and the more predictable its results. The lowest level of maturity is maturity level 1 and the highest level is maturity level 5.
Each process area consists of a set of specific and generic goals, and these must be implemented by an associated set of specific and generic practices. The practices specify what is to be done rather than how it should be done, and the organization is given freedom in choosing the most appropriate implementation to meet its needs.
The SCAMPI appraisal methodology is used to determine the maturity of software organizations. It is a systematic examination of the processes used in the organization against the CMMI model, and it includes interviews and reviews of documentation. A successful SCAMPI Class A appraisal allows the organization to report its maturity rating to the SEI and to benchmark itself against other companies. Appraisals are a part of the improvement cycle, and improvement plans are prepared after the appraisal to address the findings and to prioritize improvements.
References
1.
W. Edwards Deming, Out of Crisis (MIT Press, Cambridge, 1986)
2.
J. Juran, Juran’s Quality Handbook (McGraw Hill, New York, 1951)
3.
P. Crosby, Quality is Free. The Art of Making Quality Certain (McGraw Hill, New York, 1979)
4.
G. O’Regan, Introduction to Software Quality (Springer, Switzerland, 2014)
5.
M.D. Chrissis, M. Conrad, S. Shrum, CMMI for Development. Guidelines for Process Integration and Product Improvement, 3rd edn. SEI Series in Software Engineering (Addison Wesley, New York, 2011)
6.
W. Humphry, Managing the Software Process. (Addison Wesley, New York, 1989)
7.
Software Engineering Institute. August 2009 CMMI Impact. Presentation by Anita Carleton
8.
G. O’Regan, Introduction to Software Process Improvement (Springer, London, 2010)
9.
Standard CMMI Appraisal Method for Process Improvement. CMU/SEI-2006-HB-002. V1.2. August 2006
10.
Appraisal Requirements for CMMI V1.2. (ARC V1.2). SCAMPI Upgrade Team. TR CMU/SEI-2006-TR-011. August 2006
Footnotes
1
The SEI was founded by the US Congress in 1984 and has worked successfully in advancing software engineering practices in the US and worldwide. It performs research to find solutions to key software engineering problems, and its proposed solutions are validated through pilots. These solutions are then disseminated to the wider software engineering community through its training programme. The SEI’s research and maturity models have played an important role in helping companies to deliver high-quality software consistently on time and on budget.
 
2
Of course, the fact that a company has been appraised at a certain CMM or CMMI rating is no guarantee that it is performing effectively as a commercial organization. For example, the Motorola plant in India was appraised at CMM level 5 in the late 1990s while Motorola lost business opportunities in the GSM market.
 
3
ISO 15504 (popularly known as SPICE) is an international standard for software process assessment.
 
4
Our focus is on the implementation of the staged representation of the CMMI rather than the continuous representation. This provides a clearly defined roadmap to improvement, and it also allows benchmarking of organizations. Appraisals against the staged representation are useful since a CMMI maturity level rating is awarded to the organization, and the company may use this to publicize its software engineering capability.
 
5
Discipline amplification is a specialized piece of information that is relevant to a particular discipline. It is introduced in the model by text such as “For Systems Engineering”.
 
6
A SCAMPI Class An appraisal is a systematic examination of the processes in an organization to determine the maturity of the organization with respect to the CMMI. An appraisal team consists of a SCAMPI lead appraiser, one or more external appraisers, and usually one internal appraiser. It consists of interviews with senior and middle management and reviews with project managers and project teams. The appraisers will review documentation and determine the extent to which the processes defined are effective, as well as the extent to which they are institutionalized in the organization. Data will be gathered and reviewed by the appraisers, ratings produced and the findings presented.
 
7
Small organizations may not have the budget for a formal SCAMPI Class A appraisal. They may be more interested in an independent SCAMPI Class B or C appraisal, which is used to provide feedback on their strengths and opportunities for improvement. Feedback allows the organization to focus its improvement efforts for the next improvement cycle.
 
8
Institutionalization is a technical term and means that the process is ingrained in the way in which work is performed in the organization. An institutionalized process is defined, documented and followed in the organization. All employees have been appropriately trained in its use and process discipline is enforced via audits. It is illustrated by the phrase “That’s the way we do things around here”.