Software Engineering Institute Capability Maturity Model (SEICMM): Improving Software Development Processes
Learn about the Software Engineering Institute Capability Maturity Model (SEICMM or CMM), a framework for improving software development processes. This guide explains the five maturity levels, their characteristics, and how the SEICMM helps organizations build more mature and reliable software development practices.
Software Engineering Institute Capability Maturity Model (SEICMM)
Introduction to the SEICMM
The Software Engineering Institute Capability Maturity Model (SEICMM), also known as the Capability Maturity Model (CMM), is a framework for improving a software organization's development processes. Developed by the Software Engineering Institute (SEI), a research and development center sponsored by the U.S. Department of Defense, the SEICMM provides a structured approach to building a more mature and reliable software development process. The model defines five maturity levels, representing an evolutionary path toward increasingly sophisticated and well-defined processes.
SEICMM Methods: Evaluation and Improvement
The SEICMM utilizes two primary methods:
- Capability Evaluation: Assesses the software process capabilities of an organization. This evaluation often involves external assessment and is used for selecting contractors.
- Software Process Assessment: An internal assessment used to identify areas for improvement within the organization's own software development processes.
SEI CMM Maturity Levels
The SEICMM defines five maturity levels, each characterized by increasing process discipline and maturity:
1. Initial
Processes are ad hoc and poorly defined. Development is chaotic and unpredictable.
2. Repeatable
Basic project management processes (tracking cost and schedule) are established. Simple estimation methods are used.
3. Defined
Software development and management processes are documented and standardized across the organization. Roles and responsibilities are clearly defined.
4. Managed
Software metrics are used to monitor and control the software process and product quality. Both product metrics (measuring characteristics of the software itself) and process metrics (measuring the effectiveness of the development process) are collected and analyzed.
5. Optimizing
Continuous process improvement is actively pursued using data from process and product measurements. This level focuses on ongoing refinement and optimization of the software development processes.
Key Process Areas (KPAs)
Each maturity level (except Level 1) has associated Key Process Areas (KPAs)—specific areas the organization should focus on improving to reach the next level. The SEICMM provides a roadmap for gradual quality improvement. (A diagram illustrating the SEICMM levels and their corresponding KPAs would be included here.)