Aug 6, 2007

CMM Levels

Capability Maturity Model (CMM) broadly refers to process improvement approach.
It was developed by Software Engineering Institute (SEI) in mid 1980s.

What is a process?
The IEEE defines a process as "a sequence of steps performed for a given purpose"
A software process can be defined as a set of activities, methods, practices, and transformations that people use to develop and maintain software and the associated products
(e.g., project plans, design documents, code, test cases, and user manuals).
Software process capability describes the range of expected results that can be achieved by following a software process.
Software process maturity is the extent to which a specific process is explicitly defined, managed, measured, controlled, and effective.

Overview of the Capability Maturity Model
The Capability Maturity Model for Software provides software organizations with guidance on how to gain control of their processes for developing and maintaining software and how to evolve toward a culture of software engineering and management excellence.

The Five Levels of Software Process Maturity Continuous process improvement is based on many small, evolutionary steps.

The CMM provides a framework for organizing these evolutionary steps into five maturity levels.

These five maturity levels define an ordinal scale for measuring the maturity of an organization's software process



The following are the characterizations of the five maturity levels:
1)Initial: The software process is characterized as occasionally even chaotic. Few processes success depends on individual effort.

Behavioral Characterization

•Does not provide a stable environment for developing and maintaining software.
•Organization lacks sound management practices.
•It is undermined by lack of good software engineering practices, ineffective planning and reaction-driven commitment systems.
•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.
•Product quality is 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.

2)Repeatable: Basic project management processes are established to track cost, schedule, and functionality. The necessary process discipline is in place to repeat earlier successes on projects with similar applications.

Behavioral Characterization

•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 effective process can be characterized as practiced, documented, enforced, trained, measured, and able to improve.
•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 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.

3)Defined: The software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization. All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software.

Behavioral Characterization

•At the Defined Level, the standard process for developing and maintaining software across the organization is documented, including both software engineering and management processes.
•Processes established at Level 3 are used (and changed, as appropriate) to help the software managers and technical staff perform more effectively.
•There is a group that is responsible for the organization's software process activities, e.g., a software engineering process group, or SEPG.
•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.
•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.
•Within established product lines, cost, schedule, and functionality are under control, and software quality is tracked.

4)Managed: Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled.

Behavioral Characterization

•Productivity and quality are measured for important software process activities across all projects as part of an organizational measurement program.
•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.
•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.

5) Optimizing: Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies.

Behavioral Characterization

•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.
•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.
•Level 5 organizations are continuously striving to improve the range of their process capability, thereby improving the process performance of their projects.

Process Capability as Indicated by Maturity Level


The Key Process Areas by Maturity Level







No comments: