What is CMMI?
CMMI is a collection of best practices used by software, hardware, IT development, and service organizations to improve their cost, schedule and quality results. It is organized into a roadmap that can be implemented incrementally over time.
Useful links
- CMMI for Development Summary
- CMMI for Services Summary
- Changes from CMMI V1.3 to V2.0
- Formal and informal CMMI appraisals
- Custom appraisals using your criteria
- CMMI for Development resource page
- CMMI for Services resource page
- Integration with Agile/PMBOK
Introduction
In a previous blog, I summarized the CMMI (Capability Maturity Model Integration) and explained why people use it.
Over the past few years, I have appraised many hardware organizations that have also used the practices to improve their mechanical, electrical, and system engineering activities.
Below is a diagram showing the Process Areas that have different implementations for hardware engineering compared to software engineering (see red arrows in Figure 1). The other Process Areas (e.g., Project Planning and Risk Management) can be applied to all of the work of the project.
Figure 1 — Example practice implementations and outputs in hardware organizations
(Click on image to expand)
Since the model does not dictate any particular lifecycle, each organization can use the practices to improve the lifecycle that suits them the best. This might be an iterative lifecycle for small software teams and a sequential lifecycle for large hardware organizations.
Below is a summary of each Process Area.
If you would like to just chat or learn more, contact us.
Also read a short description of a CMMI Level 3 organization.
[Forward this email to your boss! Subject: Here’s a cool tip for you] Quick Link.
Summary of Maturity Level 2 Process Areas
Configuration Management: Establish and maintain the integrity of work products using configuration identification (labeling), configuration control (e.g., permission to modify), configuration status accounting (final status of work products), and configuration audits (checks to verify changes and integrity).
Measurement and Analysis: Develop and sustain a measurement capability (defined goals and measures) used to support management information needs.
Project Planning: Establish and maintain plans (tasks, estimates, stakeholders, risks and resources) for project work.
Project Monitoring and Control: Understanding each project’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 process execution and associated work products to find mistakes early.
Requirements Management: Define requirement baselines for a project. Manage changes so that technical and resource impacts are assessed. Trace requirements to related downstream work products so that test coverage of requirements can be performed and the impact of requirements changes is 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.
Summary of Maturity Level 3 Process Areas
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 or 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 or 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 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 project risks 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: For key decisions, systematically select from alternative options using criteria, prioritization and an evaluation method.
*CMMI and the CMMI logo are registered marks of CMMI Institute LLC