The Software Engineering Institute (SEI) Capability Maturity Model (CMM) specifies an increasing series of levels of a software development organization. The higher the level, the better the software development process, henceforth arriving at each level is a costly and time-consuming process.

In this tutorial, we will learn,

What is CMM?

Capacity Maturity Model is used as a benchmark to measure the development of an organization’s software process.

CMM was developed at the Software engineering institute in the last part of the 80’s. It was developed because of a result of a financed by the U.S Air Force as an approach to assess crafted by subcontractors. Later dependent on the CMM-SW model created in 1991 to survey the maturity of software development, various different models are coordinated with CMM-I they are

What is Capability Maturity Model (CMM) Levels?

  1. Initial
  2. Repeatable/Managed
  3. Defined
  4. Quantitatively Managed
  5. Optimizing

What happens at different levels of CMM?

LevelsActivitiesBenefits
Level 1 InitialAt level 1, the process is generally turbulent and advertisement hoc
A capacity is described based on the people and not of the organization
Progress not measured
Products developed are often schedule and over budget
Wide varieties in the timetable, cost, usefulness, and quality targets
None. A project is Total Chaos
Level 2 ManagedNecessity Management
Estimate project parameters like expense, timetable, and functionality
Measure genuine progress
Develop plans and process
Software project standards are defined
Identify and control products, issue reports changes, etc.
Processes may vary between projects
Process become simpler to comprehend
Managers and colleagues spend less energy in clarifying how things are done and additional time in executing it
Projects are better assessed, better arranged and more flexible
Quality is coordinated into projects
Costing may be high at first however goes down overtime
Ask more paperwork and documentation
Level-3 DefinedExplain client requirements
Solve design prerequisites,
develop an execution process
Makes sure that product meets the necessities and intended use
Analyze choices
systematically
Rectify and control possible issues
Process Improvement turns into the standard
Solution progress from being
“coded” to being “engineered”
Quality entryways show throughout the project exertion with the whole team associated with the process
Risks are mitigated and don’t take the team by by surprise
Level-4 Quantitatively ManagedDeals with the task’s processes and sub-processes statistically
Understand process performance, quantitatively deal with the organization’s project
Optimizes Process Performance across the organization
Fosters Quantitative Project Management in an organization.
Level-5 OptimizingIdentify and remove the reason of defects early
Identify and deploy new tools and process improvements to meet needs and business objectives
Fosters Organizational Innovation and Deployment
Gives impetus to Causal Analysis and Resolution

How long does it Take to Implement CMM?

Capacity Maturity Model is the best interaction to keep up the quality of the product for any software development organization, but its execution takes little longer than what is generally anticipated.

  • CMM execution doesn’t happen for the time being
  • It’s simply not just a “paperwork.”
  • Normal occasions for execution is

3-6 months – > for readiness

6-12 months- > for execution

90 days – > for appraisal planning

a year – >for each new level

Internal Structure of CMM

Each level in CMM is defined into key process area or KPA, with the exception of level-1. Each KPA defines a bunch of related exercises, which when performed collectively accomplishes a bunch of objectives considered crucial for improving software ability

For various CMM levels, there are set of KPA’s, for example for CMM model-2, KPA are

  • REQM-Requirement Management
  • PP-Project Planning
  • PMC-Project Monitoring and Control
  • SAM-Supplier Agreement Management
  • PPQA-Process and Quality Assurance
  • CM-Configuration Management

Moreover, for other Capacity Maturity Model models, you have explicit KPA’s. To know whether execution of a KPA is effective, lasting and repeatable, it is planned on following basis

  1. Commitment to perform
  2. Ability to perform
  3. Activities perform
  4. Measurement and Analysis
  5. Verifying implementation

Limitations of CMM Models

  • CMM figures out what a process should address rather than how it ought to be executed
  • It doesn’t clarify each chance of software process improvement
  • It focuses on software issues but doesn’t consider key business planning, receiving technologies, setting up product line and managing HR
  • It doesn’t tell on what sort of business an organization ought to be in
  • CMM won’t be valuable in the project having an emergency at the present time

Why Use CMM?

  • Today Capacity Maturity Model act as a “seal of approval” in the software business. It helps in different manners to improve the software quality.
  • It guides towards repeatable standard process and consequently lessen the learning time on how to get things done
  • Rehearsing CMM implies rehearsing standard protocol for development, which implies it’s difficult assists the team with saving time but additionally gives a clear perspective on what to do and what to expect
  • The quality exercises gel well with the project as opposed to considered as a different occasion
  • It acts as a computer between the project and the team
  • CMM endeavors are consistently towards the improvement of the interaction

Summary

CMM was first presented in late 80’s in U.S Air Force to assess crafted by subcontractors. Later on, with improved version, it was implemented to track the quality of the software development system.

The whole CMM level is isolated into five levels.

  • Level 1 (Initial): Where prerequisites for the system are normally dubious, misconstrued and uncontrolled. The process is normally tumultuous and ad-hoc..
  • Level 2 (Managed): Estimate project cost, timetable, and usefulness. software standards are defined
  • Level 3 (Defined): Makes sure that product meets the necessities and expected use
  • Level 4 (Quantitatively Managed): Manages the task’s process and sub-processes statistically
  • Level 5 (Maturity): Identify and deploy new tools and process improvements to address issues and business destinations.

Related:

10 Steps to Become a Software Engineer/Developer

Software Engineer vs Software Developer: What’s The Difference?

SDLC: Phases & Models of Software Development Life Cycle

What is Waterfall Model in SDLC? Advantages and Disadvantages

Incremental Model in SDLC: Use, Advantage & Disadvantage


Thanks for reading! We hope you found this tutorial helpful and we would love to hear your feedback in the Comments section below. And show us what you’ve learned by sharing your projects with us.