The Five Levels of CMM
What is it? - It is a framework for software process
maturity proposed by the Software Engineering Institute.
The SW-CMM guidelines prescribe a number of ways a
company can achieve higher levels of process maturity. While each of these
measures is easy enough to conceptualize in isolation, the problem comes
when you want to bring it all together. Defining organizational processes
and policies is the easy part, rolling them out is trickier.
Level One
Company has no standard process for software development. Nor does it have a
project-tracking system that enables developers to predict costs or finish
dates with any accuracy.
Level Two
Company has installed basic software management processes and controls. But
there is no consistency or coordination among different groups.
Level Three
Company has pulled together a standard set of processes and controls for the
entire organization so that developers can move between projects more easily
and customers can begin to get consistency from different groups.
Level Four
In addition to implementing standard processes, company has installed
systems to measure the quality of those processes across all projects.
Level Five
Company has accomplished all of the above and can now begin to see patterns
in performance over time, so it can tweak its processes in order to improve
productivity and reduce defects in software development across the entire
organization.
Here it is put another way
Initial:
The software process is characterized as ad hoc, and occasionally even
chaotic. Few processes are defined, and success depends on individual
effort.
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.
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.
Managed:
Detailed measures of the software process and product quality are collected.
Both the software process and products are quantitatively understood and
controlled.
Optimizing:
Continuous process improvement is enabled by quantitative feedback from the
process and from piloting innovative ideas and technologies.