The Capability Maturity Model Integration (CMMI) Development model is a collection of practices aimed at organizations that develop products, systems and IT solutions. The model is organized into five levels, each level defining more advanced practices to improve schedule, budget, risk and quality performance. The levels provide a road map for sustained incremental improvement. Example development organizations that use CMMI-DEV are:
- Software application / embedded
- IT solutions
- Hardware (electrical, mechanical, optical, electronic)
- Systems engineering (large software or hardware system or a software/hardware combination)
The purpose of using any framework is to improve the performance of an organization. For a group that develops products, this can include: improving schedule and budget accuracy, managing risks, eliciting requirements, defining designs, implementation, finding defects early, reducing rework and sharing best practices across the organization.
CMMI practices can be implemented within any life cycle or methodology (such as Scrum, Waterfall, Spiral or Incremental).
The benefits from using CMMI Level 2 and 3 practices are to:
- Clarify customer requirements early
- Scope, plan, estimate and negotiate work to manage expectations and achieve commitments
- Track progress to know project status at any time
- Maintain defined quality standards throughout the organization and report strengths and problems to management
- Manage versions of documents and code so that time is not wasted using incorrect versions or recreating lost versions
- Manage and coordinate multiple teams that have cross dependencies
- Employ engineering practices for design, implementation, verification and testing to reduce defects
- Use defect data to understand and manage work quality throughout the project
- Collect lessons learned and project data to systematically improve future organizational performance
A summary of the CMMI-DEV model is provided below. The items marked “(dev)” in red are the Process Areas that are unique to the Development model.
CMMI® for Development, Version 1.3
The Maturity Level 2 Process Areas are summarized below.
Configuration Management: Establish and maintain the integrity of work products using configuration identification (labeling), configuration control (known modifications and permission to modify), configuration status accounting (final status of work products), and configuration audits (checks to verify changes).
Measurement and Analysis: Develop and sustain a measurement capability that is used to support management information needs.
Project Planning: Establish and maintain plans (major tasks, estimates, stakeholders, risks and resources) for project work.
Project Monitoring and Control: Understanding the group’s progress so that appropriate corrective actions can be taken when performance deviates significantly from the plan.
Process and Product Quality Assurance: Provide staff and management with objective insight into processes and associated work products.
Requirements Management: a) Define requirements baselines for a project, b) manage changes so that technical and resource impact is assessed, c) trace requirements to related downstream work products so that test coverage of requirements can be performed and the impact of requirements changes assessed with more accuracy.
Supplier Agreement Management: Manage the acquisition of products and services from suppliers. This Process Area can be declared Not Applicable (after discussion with the appraiser) if there are no custom, risky, or integrated suppliers.
The Level 3 Process Areas are summarized below.
Requirements Development: Elicit requirements, develop requirements from the information gathered, and analyze requirements for ambiguities and errors.
Technical Solution: Select among design alternatives, perform design activities and implement the design.
Product Integration: Plan and execute integration testing of components as they are completed, or when all components are complete. Check that interfaces are correct before spending time in system testing. Communicate interface changes to impacted areas.
Verification: Perform peer-reviews on selected documents and code to find errors early and quickly. Plan and execute component level testing and analyze the results (e.g., defect density, defect pass rate, defect escape rate and root cause).
Validation: Plan and execute testing focused on the end-user’s environment and needs. Analyze the results (e.g., defect density, pass rate, escape rate and root cause).
Organizational Process Focus: Coordinate all improvements. Take what is learned at the team level and organize and deploy this information across the organization. The result is that all teams improve faster from the positive and negative lessons of others.
Organizational Process Definition: Organize best practices and historical data into a useful and usable library.
Organizational Training: Assess, prioritize and deploy training across the organization, including domain-specific, technology and process skills needed to reduce errors and improve team efficiency.
Integrated Project Management: Perform project planning using company defined best practices and tailoring guidelines. Use organizational historical data for estimation. Identify dependencies and stakeholders for coordination, and comprehend this information into a master schedule or overall project plan. As project work progresses, coordinate all key stakeholders. Use thresholds to trigger corrective action (such as schedule and effort deviation metrics).
Risk Management: Assess and prioritize all types of risks in a project and develop mitigation actions for the highest priority ones. Start by considering a predefined list of common risks and use a method for setting priorities.
Decision Analysis and Resolution: Systematically select from alternative options using criteria, prioritization and an evaluation method.
* Information source = CMMI® for Development, Version 1.3
Condensed list of Level 2 and 3 practices: http://www.processgroup.com/condensed-cmmi1p3-dev-v1.pdf
Full model text: PDF
The Process Group is a CMMI Partner