Wednesday, December 3, 2014

What is the Capability Maturity Model? (CMM)

Capability Maturity Model (CMM) broadly refers to a process improvement approach that is based on a process model. CMM also refers specifically to the first such model, developed by the Software Engineering Institute (SEI) in the mid-1980s, as well as the family of process models that followed. A process model is a structured collection of practices that describe the characteristics of effective processes; the practices included are those proven by experience to be effective.

CMM can be used to assess an organization against a scale of five process maturity levels. Each level ranks the organization according to its standardization of processes in the subject area being assessed. The subject areas can be as diverse as software engineering, systems engineering, project management, risk management, system acquisition, information technology (IT) services and personnel management.

CMM was developed by the SEI at Carnegie Mellon University in Pittsburgh. It has been used extensively for avionics software and government projects, in North America, Europe, Asia, Australia, South America, and Africa.Currently, some government departments require software development contract organization to achieve and operate at a level 3 standard.

History
The Capability Maturity Model was initially funded by military research. The United States Air Force funded a study at the Carnegie-Mellon Software Engineering Institute to create a model (abstract) for the military to use as an objective evaluation of software subcontractors. The result was the Capability Maturity Model, published as Managing the Software Process in 1989. The CMM is no longer supported by the SEI and has been superseded by the more comprehensive Capability Maturity Model Integration (CMMI).
Maturity Model
The Capability Maturity Model (CMM) is a way to develop and refine an organization's processes. The first CMM was for the purpose of developing and refining software development processes. A maturity model is a structured collection of elements that describe characteristics of effective processes. A maturity model provides:
                       
•          a place to start
•          the benefit of a community’s prior experiences
•          a common language and a shared vision
•          a framework for prioritizing actions
•          a way to define what improvement means for your organization  
                       
A maturity model can be used as a benchmark for assessing different organizations for equivalent comparison. It describes the maturity of the company based upon the project the company is dealing with and the clients.

Context

In the 1970s, technological improvements made computers more widespread, flexible, and inexpensive. Organizations began to adopt more and more computerized information systems and the field of software development grew significantly. This led to an increased demand for developers—and managers—which was satisfied with less experienced professionals.
Unfortunately, the influx of growth caused growing pains; project failure became more commonplace not only because the field of computer science was still in its infancy, but also because projects became more ambitious in scale and complexity. In response, individuals such as Edward Yourdon, Larry Constantine, Gerald Weinberg, Tom DeMarco, and David Parnas published articles and books with research results in an attempt to professionalize the software development process.
Watts Humphrey's Capability Maturity Model (CMM) was described in the book Managing the Software Process (1989). The CMM as conceived by Watts Humphrey was based on the earlier work of Phil Crosby. Active development of the model by the SEI began in 1986.
The CMM was originally intended as a tool to evaluate the ability of government contractors to perform a contracted software project. Though it comes from the area of software development, it can be, has been, and continues to be widely applied as a general model of the maturity of processes in IS/IT (and other) organizations.
The model identifies five levels of process maturity for an organisation. Within each of these maturity levels are KPAs (Key Process Areas) which characterise that level, and for each KPA there are five definitions identified:
                       
•          1. Goals
•          2. Commitment
•          3. Ability
•          4. Measurement
•          5. Verification         
                       
The KPAs are not necessarily unique to CMM, representing - as they do - the stages that organizations must go through on the way to becoming mature.
The assessment is supposed to be led by an authorised lead assessor. One way in which companies are supposed to use the model is first to assess their maturity level and then form a specific plan to get to the next level. Skipping levels is not allowed.

Timeline

                       
 •          1987 SEI-87-TR-24 (SW-CMM questionnaire), released.
•          1989 Managing the Software Process, published.
•          1991 SW-CMM v1.0, released.
•          1993 SW-CMM v1.1, released.
•          1997 SW-CMM revisions halted in support for CMMI.
•          2000 CMMI v1.02, released.
•          2002 CMMI v1.1, released.
•          2006 CMMI v1.2, released.          
                       
Current state
Although these models have proved useful to many organizations, the use of multiple models has been problematic. Further, applying multiple models that are not integrated within and across an organization is costly in terms of training, appraisals, and improvement activities. The CMM Integration project was formed to sort out the problem of using multiple CMMs. The CMMI Product Team's mission was to combine three source models:
1.         The Capability Maturity Model for Software (SW-CMM) v2.0 draft C
2.         The Systems Engineering Capability Model (SECM)
3.         The Integrated Product Development Capability Maturity Model (IPD-CMM) v0.98
4.         Supplier sourcing
CMMI is the designated successor of the three source models. The SEI has released a policy to sunset the Software CMM and previous versions of the CMMI. The same can be said for the SECM and the IPD-CMM; these models were superseded by CMMI.
Future direction
With the release of the CMMI Version 1.2 Product Suite, the existing CMMI has been renamed the CMMI for Development (CMMI-DEV), V1.2. Two other versions are being developed, one for Services, and the other for Acquisitions.
In some cases, CMM can be combined with other methodologies. It is commonly used in conjunction with the ISO 9001 standard, as well as with the computer programming methodologies of Extreme Programming (XP), and Six Sigma.
Levels of the CMM
There are five levels of the CMM:
                       
            •          Level 1 - Initial
o          Processes are usually ad hoc and the organization usually does not provide a stable environment. Success in these organizations depends on the competence and heroics of the people in the organization and not on the use of proven processes. In spite of this ad hoc, chaotic environment, maturity level 1 organizations often produce products and services that work; however, they frequently exceed the budget and schedule of their projects.
o          Organizations are characterized by a tendency to over commit, abandon processes in the time of crisis, and not be able to repeat their past successes again.
o          Software project success depends on having quality people.
•          Level 2 - Repeatable
o          Software development successes are repeatable. The processes may not repeat for all the projects in the organization. The organization may use some basic project management to track cost and schedule.
o          Process discipline helps ensure that existing practices are retained during times of stress. When these practices are in place, projects are performed and managed according to their documented plans.
o          Project status and the delivery of services are visible to management at defined points (for example, at major milestones and at the completion of major tasks).
o          Basic project management processes are established to track cost, schedule, and functionality. The minimum process discipline is in place to repeat earlier successes on projects with similar applications and scope. There is still a significant risk of exceeding cost and time estimate.
•          Level 3 - Defined
o          The organization’s set of standard processes, which is the basis for level 3, is established and improved over time. These standard processes are used to establish consistency across the organization. Projects establish their defined processes by the organization’s set of standard processes according to tailoring guidelines.
o          The organization’s management establishes process objectives based on the organization’s set of standard processes and ensures that these objectives are appropriately addressed.
o          A critical distinction between level 2 and level 3 is the scope of standards, process descriptions, and procedures. At level 2, the standards, process descriptions, and procedures may be quite different in each specific instance of the process (for example, on a particular project). At level 3, the standards, process descriptions, and procedures for a project are tailored from the organization’s set of standard processes to suit a particular project or organizational unit.
•          Level 4 - Managed
o          Using precise measurements, management can effectively control the software development effort. In particular, management can identify ways to adjust and adapt the process to particular projects without measurable losses of quality or deviations from specifications. At this level organization set a quantitative quality goal for both software process and software maintenance.
o          Subprocesses are selected that significantly contribute to overall process performance. These selected subprocesses are controlled using statistical and other quantitative techniques.
o          A critical distinction between maturity level 3 and maturity level 4 is the predictability of process performance. At maturity level 4, the performance of processes is controlled using statistical and other quantitative techniques, and is quantitatively predictable. At maturity level 3, processes are only qualitatively predictable.
•          Level 5 - Optimizing
o          Focusing on continually improving process performance through both incremental and innovative technological improvements. Quantitative process-improvement objectives for the organization are established, continually revised to reflect changing business objectives, and used as criteria in managing process improvement. The effects of deployed process improvements are measured and evaluated against the quantitative process-improvement objectives. Both the defined processes and the organization’s set of standard processes are targets of measurable improvement activities.
o          Process improvements to address common causes of process variation and measurably improve the organization’s processes are identified, evaluated, and deployed.
o          Optimizing processes that are nimble, adaptable and innovative depends on the participation of an empowered workforce aligned with the business values and objectives of the organization. The organization’s ability to rapidly respond to changes and opportunities is enhanced by finding ways to accelerate and share learning.
o          A critical distinction between maturity level 4 and maturity level 5 is the type of process variation addressed. At maturity level 4, processes are concerned with addressing special causes of process variation and providing statistical predictability of the results. Though processes may produce predictable results, the results may be insufficient to achieve the established objectives. At maturity level 5, processes are concerned with addressing common causes of process variation and changing the process (that is, shifting the mean of the process performance) to improve process performance (while maintaining statistical probability) to achieve the established quantitative process-improvement objectives.   
                       
The most beneficial elements of CMM Level 2 and 3:
                       
            •          Creation of Software Specifications, stating what is going to be developed, combined with formal sign off, an executive sponsor and approval mechanism. This is NOT a living document, but additions are placed in a deferred or out of scope section for later incorporation into the next cycle of software development.
•          A Technical Specification, stating how precisely the thing specified in the Software Specifications is to be developed will be used. This is a living document.
•          Peer Review of Code (Code Review) with metrics that allow developers to walk through an implementation, and to suggest improvements or changes. Note - This is problematic because the code has already been developed and a bad design can not be fixed by "tweaking", the Code Review gives complete code a formal approval mechanism.
•          Version Control - a very large number of organizations have no formal revision control mechanism or release mechanism in place.
•          The idea that there is a "right way" to build software, that it is a scientific process involving engineering design and that groups of developers are not there to simply work on the problem du jour.           




What is Capability Maturity Model (CMM)? What are CMM Levels?


Capability Maturity Model is a bench-mark for measuring the maturity of anorganization’s software process. It is a methodology used to develop and refine an organization’s software development process. CMM can be used to assess an organization against a scale of five process maturity levels based on certain Key Process Areas (KPA). It describes the maturity of the company based upon the project the company is dealing with and the clients. Each level ranks the organization according to its standardization of processes in the subject area being assessed.
A maturity model provides:
§  A place to start
§  The benefit of a community’s prior experiences
§  A common language and a shared vision
§  A framework for prioritizing actions
§  A way to define what improvement means for your organization
In CMMI models with a staged representation, there are five maturity levels designated by the numbers 1 through 5 as shown below:
1.    Initial
2.    Managed
3.    Defined
4.    Quantitatively Managed
5.    Optimizing


Maturity levels consist of a predefined set of process areas. The maturity levels are measured by the achievement of the specific and generic goals that apply to each predefined set of process areas. The following sections describe the characteristics of each maturity level in detail.
Maturity Level 1 – Initial: Company has no standard process for software development. Nor does it have a project-tracking system that enables developers to predict costs or finish dates with any accuracy.
In detail we can describe it as given below:
§  At maturity level 1, processes are usually ad hoc and chaotic.
§  The organization usually does not provide a stable environment. Success in these organizations depends on the competence and heroics of the people in the organization and not on the use of proven processes.
§  Maturity level 1 organizations often produce products and services that work but company has no standard process for software development. Nor does it have a project-tracking system that enables developers to predict costs or finish dates with any accuracy.
§  Maturity level 1 organizations are characterized by a tendency to over commit, abandon processes in the time of crisis, and not be able to repeat their past successes.
Maturity Level 2 – Managed: Company has installed basic software management processes and controls. But there is no consistency or coordination among different groups.
In detail we can describe it as given below:
§  At maturity level 2, an organization has achieved all the specific and generic goalsof the maturity level 2 process areas. In other words, the projects of the organization have ensured that requirements are managed and that processes are planned, performed, measured, and controlled.
§  The process discipline reflected by maturity level 2 helps to ensure that existing practices are retained during times of stress. When these practices are in place, projects are performed and managed according to their documented plans.
§  At maturity level 2, requirements, processes, work products, and services are managed. The status of the work products and the delivery of services are visible to management at defined points.
§  Commitments are established among relevant stakeholders and are revised as needed. Work products are reviewed with stakeholders and are controlled.
§  The work products and services satisfy their specified requirements, standards, and objectives.
Maturity Level 3 – Defined: Company has pulled together a standard set of processes and controls for the entire organization so that developers can move between projects more easily and customers can begin to get consistency from different groups.
In detail we can describe it as given below:
§  At maturity level 3, an organization has achieved all the specific and generic goals.
§  At maturity level 3, processes are well characterized and understood, and are described in standards, procedures, tools, and methods.
§  A critical distinction between maturity level 2 and maturity level 3 is the scope of standards, process descriptions, and procedures. At maturity level 2, the standards, process descriptions, and procedures may be quite different in each specific instance of the process (for example, on a particular project). At maturity level 3, the standards, process descriptions, and procedures for a project are tailored from the organization’s set of standard processes to suit a particular project or organizational unit.
§  The organization’s set of standard processes includes the processes addressed at maturity level 2 and maturity level 3. As a result, the processes that are performed across the organization are consistent except for the differences allowed by the tailoring guidelines.
§  Another critical distinction is that at maturity level 3, processes are typically described in more detail and more rigorously than at maturity level 2.
§  At maturity level 3, processes are managed more proactively using an understanding of the interrelationships of the process activities and detailed measures of the process, its work products, and its services.
Maturity Level 4 – Quantitatively Managed: In addition to implementing standard processes, company has installed systems to measure the quality of those processes across all projects.
In detail we can describe it as given below:
§  At maturity level 4, an organization has achieved all the specific goals of the process areas assigned to maturity levels 2, 3, and 4 and the generic goalsassigned to maturity levels 2 and 3.
§  At maturity level 4 Sub-processes are selected that significantly contribute to overall process performance. These selected sub-processes are controlled using statistical and other quantitative techniques.
§  Quantitative objectives for quality and process performance are established and used as criteria in managing processes. Quantitative objectives are based on the needs of the customer, end users, organization, and process implementers. Quality and process performance are understood in statistical terms and are managed throughout the life of the processes.
§  For these processes, detailed measures of process performance are collected and statistically analyzed. Special causes of process variation are identified and, where appropriate, the sources of special causes are corrected to prevent future occurrences.
§  Quality and process performance measures are incorporated into the organizations measurement repository to support fact-based decision making in the future.
§  A critical distinction between maturity level 3 and maturity level 4 is the predictability of process performance. At maturity level 4, the performance of processes is controlled using statistical and other quantitative techniques, and is quantitatively predictable. At maturity level 3, processes are only qualitatively predictable.
Maturity Level 5 – Optimizing: Company has accomplished all of the above and can now begin to see patterns in performance over time, so it can tweak its processes in order to improve productivity and reduce defects in software development across the entire organization.
In detail we can describe it as given below:
§  At maturity level 5, an organization has achieved all the specific goals of the process areas assigned to maturity levels 2, 3, 4, and 5 and the generic goalsassigned to maturity levels 2 and 3.
§  Processes are continually improved based on a quantitative understanding of the common causes of variation inherent in processes.
§  Maturity level 5 focuses on continually improving process performance through both incremental and innovative technological improvements.
§  Quantitative process-improvement objectives for the organization are established, continually revised to reflect changing business objectives, and used as criteria in managing process improvement.
§  The effects of deployed process improvements are measured and evaluated against the quantitative process-improvement objectives. Both the defined processes and the organization’s set of standard processes are targets of measurable improvement activities.
§  Optimizing processes that are agile and innovative depends on the participation of an empowered workforce aligned with the business values and objectives of the organization.
§  The organization’s ability to rapidly respond to changes and opportunities is enhanced by finding ways to accelerate and share learning. Improvement of the processes is inherently part of everybody’s role, resulting in a cycle of continual improvement.

§  A critical distinction between maturity level 4 and maturity level 5 is the type of process variation addressed. At maturity level 4, processes are concerned with addressing special causes of process variation and providing statistical predictability of the results. Though processes may produce predictable results, the results may be insufficient to achieve the established objectives. At maturity level 5, processes are concerned with addressing common causes of process variation and changing the process (that is, shifting the mean of the process performance) to improve process performance (while maintaining statistical predictability) to achieve the established quantitative process-improvement objectives.

PMP Training Programs: Classroom vs. Online

PMP Training


To become eligible for the PMP Certification exam, you have to earn 35 contact hours of formal Project Management Training. This is one of the few conditions that PMI (Project Management Institute, USA) has mandated to apply for the exam. There are many ways to earn these contact hours; however, the recommended way is to get it from any R.E.P. (Registered Education Provider) by PMI.
Based on their type of delivery, a training program can be broadly divided into two categories: Classroom or Online training.

Classroom vs. Online: Which is Better?

In a classroom training program, you will first have to make sure that you can spare four to five days for their scheduled training dates, providing seats are available.

If things go well, you can register and join the training program. After completion of the training you will get the certificate of attending 35 contact hours program.
Online Training Program
The only requirement for an Online Training Program is a computer with Internet access. Once you make the payment, you get instant access to the complete training program. These providers supply 30 to 90 days to complete the training program. You login into the system, watch the video and submit a questionnaire, if any. You are free to complete this training around your schedule.
Some providers give you an option to download their video based lectures on your computer’s hard drive. Watch it, fill out their questionnaire and send to them. After reviewing your questionnaire, they will send you the certification of completion.
Which one is better?
So now the Big Question—which one is better?
In many PM groups and forums PMP aspirants regularly ask which option they should go for. What’s the answer? It depends…
Cost: Classroom training programs are generally very expensive. Their cost varies from $1,000 to $4,000, or sometimes even more.
The upside to this is some classroom training programs provide a 100% guarantee to pass the exam. If you failed in first attempt, they will pay your test fee and if you fail again, they provide you further assistance to pass the exam. However, they are still costly.
On the other hand, the cost of online training program is much less. Programs start from as low as $50.
Convenience: Classroom training programs are not always readily available. They are usually held in big cities where training providers can get a sufficient number of students. You may have to commute a long distance to attend it (I travelled 600 km for this purpose!). This alone may be a big enough inconvenience to not make it worth your while.
Online training programs allow you to earn contact hours from within your own home.
Schedule: Classroom training programs are conducted several times a year. You have to check if you’re free or you can spare four to five days to accommodate their fixed schedule dates.
Online training programs have no such schedule and can be joined anytime.
Limited Space: Classroom training programs have limited seats availability. You must be sure to register early to ensure a seat.
There is no such limitation with an online training program.
Value of Training: If the trainer is well experienced, knowledgeable and charismatic then you can learn a lot from his or her experience and knowledge.
Content for online training program is the same for all and usually does not change.
Active Participation: In classroom training discussions are very interactive. By participating in these you can learn a lot from your classmates and make connections with others.
Online training programs lack social interaction and learning from other students. For some, this may be a serious deterrent to learning.
My View:
If...
  • Cost does not matter to you
  • Training is available at your place, or you don’t mind travelling
  • You can spare four to five days
  • Trainer is exceptionally good and charismatic
then you can consider class-room training program.

CMMI vs CMM: Which is Better?

Carnegie Mellon developed CMM as a process maturity model. Implementation of CMM raised many challenges that led to development of CMMI as an improvement. CMMI however does not replace CMM and the effectiveness depends on the specific area of application.
  • Origins of CMM

    The capability maturity model (CMM) is an assessment model developed by the Software Engineering Institute at Carnegie Mellon University in 1990, to ascertain the process maturity levels in the software.
    The model describes five levels of best engineering and management practices based on data collected from various industries. Organizations looking for solutions to manage projects aim to attain CMM certification by compliance with the CMM level closest to their level of process maturity.

Challenged Faced During CMM Implementation

CMM became popular as it allowed software companies attain process consistency, predictability, and reliability. However, the implementation of CMM led to many hurdles.

    1. Lack of Integration: CMM has separate models for each function. Such models often overlap, contradict, and display different levels of maturity. This lack of standardization leads to confusion and conflict during the implementation phase and increase training and appraisal costs.
    2. Limitations of KPA: The “Key Performance Areas (KPA),” that define CMM levels focus on “policing” activities such as specifications, documentation, audits, and inspections, and do not reveal architecturally significant flaws.
    3. Activity-based Approach: CMM is an activity-based approach that considers only the completion of a specific activity, and not whether the completed activity achieved the desired results.
    4. Paperwork: CMM places great importance on paperwork and meetings that take management’s time and effort away from actual work processes. CMM traps the organization in recording and complying with processes, often at the cost of strategic goals.
  • CMMI: An Integrated Approach

    The Software Engineering Institute at Carnegie Mellon University developed Capability Maturity Model Integration(CMMI) in 2006 to integrate and standardize the separate models of CMM, and to eradicate other drawbacks of CMM.
    CMMI documents industry best practices categorized on separate areas of interests rather than separate functions. Organizations choose from any of the 22 available models depending on the business objectives, and each model covers all the functional areas.
  • CMMI vs CMM KPA

    Both CMM and CMMI define five distinct levels of process maturity based on Key Performance Areas (KPA’s). The KPA's of CMMI levels overcome the inefficiency of CMM levels to unearth significant architectural flaws.
    • Level 1 (Initial): The first level of both CMM and CMMI describes an immature organization without any defined processes, run in an ad hoc, uncontrolled, and reactive manner.
    • Level 2 (Repeat): Organizations that repeat some processes attain Level 2 CMM. Level 2 of CMMI however requires management of organizational requirements through planned, performed, measured, and controlled processes.
    • Level 3 (Defined): CMM Level 3 mandates a set of documented standard processes to establish consistency across the organization. CMMI Level 3 is an improvement of CMMI Level 2 and describes the organizational processes in standards, procedures, tools, and methods.
    • Level 4 (Manage): CMM Level 4 requires organizations to attain control over processes by using quantitative statistical techniques. CMMI Level 4 demands likewise, but also identifies sub processes that significantly contribute to overall process efficiency.
    • Level 5 (Optimized): CMM Level 5 mandates use of quantitative tools and objectives to manage process improvement. CMMI Level 5 on the other hand focuses on continuously improving process performance through incremental and innovative technological improvements.
    While CMM is a certification tool, CMMI is not. An organization is appraised and awarded a CMMI Rating from 1 to 5 depending on the extent to which the organization adopts the selected CMMI model.
  • Differences in Approach

    CMM measures the maturity level of an organization by determining if an organization completes the specific activities listed in the Key Performance Areas (KPA), oblivious to whether the completion of such activity leads to the desired result. CMMI is also an activity based approach but the major difference is that CMMI takes a more result-oriented approach when defining and measuring Key Performance Areas.
    CMM KPA concentrates on the completion of specific tasks or processes and does not motivate the organization to focus on process architecture. CMMI, on the other hand has an iterative lifecycle that integrates the latest best practices from the industry and attacks risks in process architecture at an early stage.
    CMMI supersedes CMM in software development processes, but CMM is still relevant and appropriate for sequential, activity-based management paradigm.
  • Paperwork

    Both CMM and CMMI give importance to paperwork and meetings that distract management’s time and effort from actual work process. CMM is however concerned at recording processes whereas CMMI documentation and meetings focus on strategic goals of the organizations.
    CMM has focused attention on processes, but the new CMMI goes a step further and focus attention on result-oriented processes.

Capability Maturity Model Integration (CMMI)



Capability Maturity Model Integration (CMMI) is a process improvement training and appraisal program and service administered and marketed by Carnegie Mellon Universityand required by many DOD and U.S. Government contracts, especially in software development. Carnegie Mellon University claims CMMI can be used to guide process improvement across a project, division, or an entire organization. Under the CMMI methodology, processes are rated according to their maturity levels, which are defined as: Initial, Managed, Defined, Quantitatively Managed, Optimizing. Currently supported is CMMI Version 1.3. CMMI is registered in the U.S. Patent and Trademark Office by Carnegie Mellon University.

Overview



CMMI currently addresses three areas of interest:
  1. Product and service development — CMMI for Development (CMMI-DEV),
  2. Service establishment, management, — CMMI for Services (CMMI-SVC), and
  3. Product and service acquisition — CMMI for Acquisition (CMMI-ACQ).
CMMI was developed by a group of experts from industry, government, and the Software Engineering Institute (SEI) at Carnegie Mellon University. CMMI models provide guidance for developing or improving processes that meet the business goals of an organization. A CMMI model may also be used as a framework for appraising the process maturity of the organization.[1] By January of 2013, the entire CMMI product suite was transferred from the SEI to the CMMI Institute, a newly created organization at Carnegie Mellon.[2]
CMMI originated in software engineering but has been highly generalized over the years to embrace other areas of interest, such as the development of hardware products, the delivery of all kinds of services, and the acquisition of products and services. The word "software" does not appear in definitions of CMMI. This generalization of improvement concepts makes CMMI extremely abstract. It is not as specific to software engineering as its predecessor, the Software CMM (CMM, see below).

History

CMMI was developed by the CMMI project, which aimed to improve the usability of maturity models by integrating many different models into one framework. The project consisted of members of industry, government and the Carnegie Mellon Software Engineering Institute (SEI). The main sponsors included the Office of the Secretary of Defense (OSD) and the National Defense Industrial Association.
CMMI is the successor of the capability maturity model (CMM) or Software CMM. The CMM was developed from 1987 until 1997. In 2002, CMMI Version 1.1 was released, Version 1.2 followed in August 2006, and CMMI Version 1.3 in November 2010. Some of the major changes in CMMI V1.3 [3] are the support of Agile Software Development,[4]improvements to high maturity practices [5] and alignment of the representation (staged and continuous).[6]
According to the Software Engineering Institute (SEI, 2008), CMMI helps "integrate traditionally separate organizational functions, set process improvement goals and priorities, provide guidance for quality processes, and provide a point of reference for appraising current processes."[7]

CMMI topics

CMMI representation

CMMI exists in two representations: continuous and staged.[1] The continuous representation is designed to allow the user to focus on the specific processes that are considered important for the organization's immediate business objectives, or those to which the organization assigns a high degree of risks. The staged representation is designed to provide a standard sequence of improvements, and can serve as a basis for comparing the maturity of different projects and organizations. The staged representation also provides for an easy migration from the SW-CMM to CMMI.[1]

CMMI model framework

For more details on this topic, see Process area (CMMI).
Depending on the CMMI areas of interest (acquisition, services, development) used, the process areas it contains will vary.[8] Process areas are the areas that will be covered by the organization's processes. The table below lists the collection of sixteen CMMI core process areas that are present for all CMMI areas of interest in CMMI Version 1.3.

Capability Maturity Model Integration (CMMI) Core Process Areas
AbbreviationNameAreaMaturity Level
CARCausal Analysis and ResolutionSupport5
CMConfiguration ManagementSupport2
DARDecision Analysis and ResolutionSupport3
IPMIntegrated Project ManagementProject Management3
MAMeasurement and AnalysisSupport2
OPDOrganizational Process DefinitionProcess Management3
OPFOrganizational Process FocusProcess Management3
OPMOrganizational Performance ManagementProcess Management5
OPPOrganizational Process PerformanceProcess Management4
OTOrganizational TrainingProcess Management3
PMCProject Monitoring and ControlProject Management2
PPProject PlanningProject Management2
PPQAProcess and Product Quality AssuranceSupport2
QPMQuantitative Project ManagementProject Management4
REQMRequirements ManagementProject Management2
RSKMRisk ManagementProject Management3
SAMSupplier Agreement ManagementSupport2

Maturity levels in CMMI for development

There are five maturity levels. Maturity level ratings are awarded for levels 2 through 5. The process areas below and their maturity levels are listed for the CMMI for Development model:
Maturity Level 2 - Managed
  • CM - Configuration Management
  • MA - Measurement and Analysis
  • PMC - Project Monitoring and Control
  • PP - Project Planning
  • PPQA - Process and Product Quality Assurance
  • REQM - Requirements Management
  • SAM - Supplier Agreement Management
Maturity Level 3 - Defined
  • DAR - Decision Analysis and Resolution
  • IPM - Integrated Project Management
  • OPD - Organizational Process Definition
  • OPF - Organizational Process Focus
  • OT - Organizational Training
  • PI - Product Integration
  • RD - Requirements Development
  • RSKM - Risk Management
  • TS - Technical Solution
  • VAL - Validation
  • VER - Verification
Maturity Level 4 - Quantitatively Managed
  • OPP - Organizational Process Performance
  • QPM - Quantitative Project Management
Maturity Level 5 - Optimizing
  • CAR - Causal Analysis and Resolution
  • OPM - Organizational Performance Management

Maturity levels in CMMI for services

The process areas below and their maturity levels are listed for the CMMI for Services model:
Maturity Level 2 - Managed
  • CM - Configuration Management
  • MA - Measurement and Analysis
  • PPQA - Process and Product Quality Assurance
  • REQM - Requirements Management
  • SAM - Supplier Agreement Management
  • SD - Service Delivery
  • WMC - Work Monitoring and Control
  • WP - Work Planning
Maturity Level 3 - Defined
  • CAM - Capacity and Availability Management
  • DAR - Decision Analysis and Resolution
  • IRP - Incident Resolution and Prevention
  • IWM - Integrated Work Managements
  • OPD - Organizational Process Definition
  • OPF - Organizational Process Focus
  • OT - Organizational Training
  • RSKM - Risk Management
  • SCON - Service Continuity
  • SSD - Service System Development
  • SST - Service System Transition
  • STSM - Strategic Service Management
Maturity Level 4 - Quantitatively Managed
  • OPP - Organizational Process Performance
  • QWM - Quantitative Work Management
Maturity Level 5 - Optimizing
  • CAR - Causal Analysis and Resolution
  • OPM - Organizational Performance Management

Maturity levels in CMMI for acquisition

The process areas below and their maturity levels are listed for the CMMI for Acquisition model:
Maturity Level 2 - Managed
  • AM - Agreement Management
  • ARD - Acquisition Requirements Development
  • CM - Configuration Management
  • MA - Measurement and Analysis
  • PMC - Project Monitoring and Control
  • PP - Project Planning
  • PPQA - Process and Product Quality Assurance
  • REQM - Requirements Management
  • SSAD - Solicitation and Supplier Agreement Development
Maturity Level 3 - Defined
  • ATM - Acquisition Technical Management
  • AVAL - Acquisition Validation
  • AVER - Acquisition Verification
  • DAR - Decision Analysis and Resolution
  • IPM - Integrated Project Management
  • OPD - Organizational Process Definition
  • OPF - Organizational Process Focus
  • OT - Organizational Training
  • RSKM - Risk Management
Maturity Level 4 - Quantitatively Managed
  • OPP - Organizational Process Performance
  • QPM - Quantitative Project Management
Maturity Level 5 - Optimizing
  • CAR - Causal Analysis and Resolution
  • OPM - Organizational Performance Management

CMMI models[edit]

CMMI best practices are published in documents called models, each of which addresses a different area of interest. The current release, CMMI Version 1.3, provides models for three areas of interest: development, acquisition, and services.
  • CMMI for Development (CMMI-DEV), v1.3 was released in November 2010. It addresses product and service development processes.
  • CMMI for Acquisition (CMMI-ACQ), v1.3 was released in November 2010. It addresses supply chain management, acquisition, and outsourcing processes in government and industry.
  • CMMI for Services (CMMI-SVC), v1.3 was released in November 2010. It addresses guidance for delivering services within an organization and to external customers.

Appraisal

An organization cannot be certified in CMMI; instead, an organization is appraised. Depending on the type of appraisal, the organization can be awarded a maturity level rating (1-5) or a capability level achievement profile.
Many organizations find value in measuring their progress by conducting an appraisal. Appraisals are typically conducted for one or more of the following reasons:
  1. To determine how well the organization’s processes compare to CMMI best practices, and to identify areas where improvement can be made
  2. To inform external customers and suppliers of how well the organization’s processes compare to CMMI best practices
  3. To meet the contractual requirements of one or more customers
Appraisals of organizations using a CMMI model[9] must conform to the requirements defined in the Appraisal Requirements for CMMI (ARC) document. There are three classes of appraisals, A, B and C, which focus on identifying improvement opportunities and comparing the organization’s processes to CMMI best practices. Of these, class A appraisal is the most formal and is the only one that can result in a level rating. Appraisal teams use a CMMI model and ARC-conformant appraisal method to guide their evaluation of the organization and their reporting of conclusions. The appraisal results can then be used (e.g., by a process group) to plan improvements for the organization.
The Standard CMMI Appraisal Method for Process Improvement (SCAMPI) is an appraisal method that meets all of the ARC requirements.[10] Results of an SCAMPI appraisal may be published (if the appraised organization approves) on the CMMI Web site of the SEI: Published SCAMPI Appraisal Results. SCAMPI also supports the conduct ofISO/IEC 15504, also known as SPICE (Software Process Improvement and Capability Determination), assessments etc.
This approach promotes that members of the EPG and PATs be trained in the CMMI, that an informal (SCAMPI C) appraisal be performed, and that process areas be prioritized for improvement. More modern approaches, that involve the deployment of commercially available, CMMI-compliant processes, can significantly reduce the time to achieve compliance. SEI has maintained statistics on the "time to move up" for organizations adopting the earlier Software CMM as well as CMMI.[11] These statistics indicate that, since 1987, the median times to move from Level 1 to Level 2 is 23 months, and from Level 2 to Level 3 is an additional 20 months. Since the release of the CMMI, the median times to move from Level 1 to Level 2 is 5 months, with median movement to Level 3 another 21 months. These statistics are updated and published every six months in a maturity profile.[citation needed]
The Software Engineering Institute’s (SEI) Team Software Process methodology and the use of CMMI models can be used to raise the maturity level. A new product called Accelerated Improvement Method[12] (AIM) combines the use of CMMI and the TSP.[13]

CMMI Security Guides[edit]

To address user security concerns, two unofficial security guides are available. Considering the Case for Security Content in CMMI for Services has one process area, Security Management.[14] Security by Design with CMMI for Development, Version 1.3 has the following process areas:
  • OPSD - Organizational Preparedness for Secure Development
  • SMP - Secure Management in Projects
  • SRTS - Security Requirements and Technical Solution
  • SVV - Security Verification and Validation
While they do not affect maturity or capability levels, these process areas can be reported in appraisal results.[15]

Applications

The SEI published that 60 organizations measured increases of performance in the categories of cost, schedule, productivity, quality and customer satisfaction.[16] The median increase in performance varied between 14% (customer satisfaction) and 62% (productivity). However, the CMMI model mostly deals with what processes should be implemented, and not so much with how they can be implemented. These results do not guarantee that applying CMMI will increase performance in every organization. A small company with few resources may be less likely to benefit from CMMI; this view is supported by the process maturity profile (page 10). Of the small organizations (<25 employees), 70.5% are assessed at level 2: Managed, while 52.8% of the organizations with 1001–2000 employees are rated at the highest level (5: Optimizing).
Interestingly, Turner & Jain (2002) argue that although it is obvious there are large differences between CMMI and agile methods, both approaches have much in common. They believe neither way is the 'right' way to develop software, but that there are phases in a project where one of the two is better suited. They suggest one should combine the different fragments of the methods into a new hybrid method. Sutherland et al. (2007) assert that a combination of Scrum and CMMI brings more adaptability and predictability than either one alone. David J. Anderson (2005) gives hints on how to interpret CMMI in an agile manner.
CMMI Roadmaps,[17] which are a goal-driven approach to selecting and deploying relevant process areas from the CMMI-DEV model, can provide guidance and focus for effective CMMI adoption. There are several CMMI roadmaps for the continuous representation, each with a specific set of improvement goals. Examples are the CMMI Project Roadmap,[18] CMMI Product and Product Integration Roadmaps [19] and the CMMI Process and Measurements Roadmaps.[20] These roadmaps combine the strengths of both the staged and the continuous representations.
The combination of the project management technique earned value management (EVM) with CMMI has been described (Solomon, 2002). To conclude with a similar use of CMMI, Extreme Programming (XP), a software engineering method, has been evaluated with CMM/CMMI (Nawrocki et al., 2002). For example, the XP requirements management approach, which relies on oral communication, was evaluated as not compliant with CMMI.
CMMI can be appraised using two different approaches: staged and continuous. The staged approach yields appraisal results as one of five maturity levels. The continuous approach yields one of four capability levels. The differences in these approaches are felt only in the appraisal; the best practices are equivalent and result in equivalent process improvement results.

See also