Understanding SEI-CMM Levels

Posted In Tutorials - By NitiN Kumar Jain On Sunday, March 11th, 2012 With 0 Comments

Pin It

In case you are not aware of different CMM (Capability Maturity Model) levels by SEI (Software Engineering Institute). CMM actually is a development model that relates to the degree of formality and optimization of processes, from ad hoc practices, to formally defined steps, to managed result metrics, to active optimization of the processes. These are specifically measured in IT companies.

Here are different levels of it:

Level 1 – The Initial Level

At the Initial Level, the organization typically does not provide a stable environment for developing and maintaining software.  When an organization lacks sound management practices, the benefits of good software engineering practices are undermined by ineffective planning and reaction-driven commitment systems.

During a crisis, projects typically abandon planned procedures and revert to coding and testing.  Success depends entirely on having an exceptional manager and a seasoned and effective software team.  Occasionally, capable and forceful software managers can withstand the pressures to take shortcuts in the software process; but when they leave the project, their stabilizing influence leaves with them.  Even a strong engineering process cannot overcome the instability created by the absence of sound management practices.

The software process capability of Level 1 organizations is unpredictable because the software process is constantly changed or modified as the work progresses (i.e., the process is ad hoc).  Schedules, budgets, functionality, and product quality are generally unpredictable.  Performance depends on the capabilities of individuals and varies with their innate skills, knowledge, and motivations.  There are few stable software processes in evidence, and performance can be predicted only by individual rather than organizational capability.

Level 2 – The Repeatable Level

At the Repeatable Level, policies for managing a software project and procedures to implement those policies are established.  Planning and managing new projects is based on experience with similar projects.  An objective in achieving Level 2 is to institutionalize effective management processes for software projects, which allow organizations to repeat successful practices developed on earlier projects, although the specific processes implemented by the projects may differ.  An effective process can be characterized as practiced, documented, enforced, trained, measured, and able to improve.

Projects in Level 2 organizations have installed basic software management controls.  Realistic project commitments are based on the results observed on previous projects and on the requirements of the current project.  The software managers for a project track software costs, schedules, and functionality; problems in meeting commitments are identified when they arise.  Software requirements and the work products developed to satisfy them are baselined, and their integrity is controlled.  Software project standards are defined, and the organization ensures they are faithfully followed.  The software project works with its subcontractors, if any, to establish a strong customer-supplier relationship.

The software process capability of Level 2 organizations can be summarized as disciplined because planning and tracking of the software project is stable and earlier successes can be repeated.  The project’s process is under the effective control of a project management system, following realistic plans based on the performance of previous projects.

Level 3 – The Defined Level

At the Defined Level, the standard process for developing and maintaining software across the organization is documented, including both software engineering and management processes, and these processes are integrated into a coherent whole.  This standard process is referred to throughout the CMM as the organization’s standard software process.  Processes established at Level 3 are used (and changed, as appropriate) to help the software managers and technical staff perform more effectively.  The organization exploits effective software engineering practices when standardizing its software processes.  There is a group that is responsible for the organization’s software process activities, e.g., a software engineering process group, or SEPG [Fowler90].  An organization-wide training program is implemented to ensure that the staff and managers have the knowledge and skills required to fulfill their assigned roles.

Projects tailor the organization’s standard software process to develop their own defined software process, which accounts for the unique characteristics of the project.  This tailored process is referred to in the CMM as the project’s defined software process.  A defined software process contains a coherent, integrated set of well-defined software engineering and management processes.   A well-defined process can be characterized as including readiness criteria, inputs, standards and procedures for performing the work, verification mechanisms (such as peer reviews), outputs, and completion criteria.  Because the software process is well defined, management has good insight into technical progress on all projects.

The software process capability of Level 3 organizations can be summarized as standard and consistent because both software engineering and management activities are stable and repeatable.  Within established product lines, cost, schedule, and functionality are under control, and software quality is tracked.  This process capability is based on a common, organization-wide understanding of the activities, roles, and responsibilities in a defined software process.

Level 4 – The Managed Level

At the Managed Level, the organization sets quantitative quality goals for both software products and processes.  Productivity and quality are measured for important software process activities across all projects as part of an organizational measurement program.  An organization-wide software process database is used to collect and analyze the data available from the projects’ defined software processes.  Software processes are instrumented with well-defined and consistent measurements at Level 4.  These measurements establish the quantitative foundation for evaluating the projects’ software processes and products.

Projects achieve control over their products and processes by narrowing the variation in their process performance to fall within acceptable quantitative boundaries.  Meaningful variations in process performance can be distinguished from random variation (noise), particularly within established product lines.  The risks involved in moving up the learning curve of a new application domain are known and carefully managed.

The software process capability of Level 4 organizations can be summarized as predictable because the process is measured and operates within measurable limits.  This level of process capability allows an organization to predict trends in process and product quality within the quantitative bounds of these limits.  When these limits are exceeded, action is taken to correct the situation.  Software products are of predictably high quality.

Level 5 – The Optimizing Level

At the Optimizing Level, the entire organization is focused on continuous process improvement.  The organization has the means to identify weaknesses and strengthen the process proactively, with the goal of preventing the occurrence of defects.  Data on the effectiveness of the software process is used to perform cost benefit analyses of new technologies and proposed changes to the organization’s software process.  Innovations that exploit the best software engineering practices are identified and transferred throughout the organization.

Software project teams in Level 5 organizations analyze defects to determine their causes.   Software processes are evaluated to prevent known types of defects from recurring, and lessons learned are disseminated to other projects.

The software process capability of Level 5 organizations can be characterized as continuously improving because Level 5 organizations are continuously striving to improve the range of their process capability, thereby improving the process performance of their projects.  Improvement occurs both by incremental advancements in the existing process and by innovations using new technologies and methods.