Levels of the CMM |
|
|
There are five levels of the CMM. According to the SEI Level 1 - Initial
Processes are usually ad hoc and the organization usually does not provide a stable environment. Success in these organizations depends on the competence and heroics of the people in the organization and not on the use of proven processes. In spite of this ad hoc, chaotic environment, maturity level 1 organizations often produce products and services that work; however, they frequently exceed the budget and schedule of their projects. Organizations are characterized by a tendency to over commit, abandon processes in the time of crisis, and not be able to repeat their past successes again. Software project success depends on having quality people.
Level 2 - Repeatable
Software development successes are repeatable. The processes may not repeat for all the projects in the
organization. The organization may use some basic project management to track cost and schedule.
Process discipline helps ensure that existing practices are retained during times of stress. When these
practices are in place, projects are performed and managed according to their documented plans.
Project status and the delivery of services are visible to management at defined points (for example, at
major milestones and at the completion of major tasks).
Basic project management processes are established to track cost, schedule, and functionality. The
minimum process discipline is in place to repeat earlier successes on projects with similar applications
and scope. There is still a significant risk of exceeding cost and time estimate.
Level 3 - Defined
The organization’s set of standard processes, which is the basis for level 3, is established and improved over time. These standard processes are used to establish consistency across the organization. Projects establish their defined processes by the organization’s set of standard processes according to tailoring guidelines. The organization’s management establishes process objectives based on the organization’s set of standard processes and ensures that these objectives are appropriately addressed. A critical distinction between level 2 and level 3 is the scope of standards, process descriptions, and procedures. At level 2, the standards, process descriptions, and procedures may be quite different in each specific instance of the process (for example, on a particular project). At level 3, the standards, process descriptions, and procedures for a project are tailored from the organization’s set of standard processes to suit a particular project or organizational unit. Level 4 - Managed
Using process metrics, management can effectively control the process (e.g., for software development ). In particular, management can identify ways to adjust and adapt the process to particular projects without measurable losses of quality or deviations from specifications. Organizations at this level set quantitative quality goals for both software process and software maintenance. Subprocesses are selected that significantly contribute to overall process performance. These selected subprocesses are controlled using statistical and other quantitative techniques. A critical distinction between maturity level 3 and maturity level 4 is the predictability of process performance. At maturity level 4, the performance of processes is controlled using statistical and other quantitative techniques, and may be quantitatively predictable. At maturity level 3, processes are only qualitatively predictable. Level 5 - Optimizing
Focusing on continually improving process performance through both incremental and innovative
technological improvements. Quantitative process-improvement objectives for the organization are
established, continually revised to reflect changing business objectives, and used as criteria in managing
process improvement. The effects of deployed process improvements are measured and evaluated
against the quantitative process-improvement objectives. Both the defined processes and the
organization’s set of standard processes are targets of measurable improvement activities.
Process improvements to address common causes of process variation and measurably improve the
organization’s processes are identified, evaluated, and deployed.
Optimizing processes that are nimble, adaptable and innovative depends on the participation of an
empowered workforce aligned with the business values and objectives of the organization. The
organization’s ability to rapidly respond to changes and opportunities is enhanced by finding ways to
accelerate and share learning.
A critical distinction between maturity level 4 and maturity level 5 is the type of process variation
addressed. At maturity level 4, processes are concerned with addressing special causes of process
variation and providing statistical predictability of the results. Though processes may produce
predictable results, the results may be insufficient to achieve the established objectives. At maturity level
5, processes are concerned with addressing common causes of process variation and changing the
process (that is, shifting the mean of the process performance) to improve process performance (while
maintaining statistical probability) to achieve the established quantitative process-improvement
objectives.
The most beneficial elements of CMM Level 2 and 3: Creation of Software Specifications, stating what is going to be developed, combined with formal sign off, an executive sponsor and approval mechanism. This is NOT a living document, but additions are placed in a deferred or out of scope section for later incorporation into the next cycle of software development. A Technical Specification, stating how precisely the thing specified in the Software Specifications is to be developed will be used. This is a living document. Peer Review of Code (Code Review) with metrics that allow developers to walk through an implementation, and to suggest improvements or changes. Note - This is problematic because the code has already been developed and a bad design can not be fixed by "tweaking", the Code Review gives complete code a formal approval mechanism. Version Control - a very large number of organizations have no formal revision control mechanism or release mechanism in place. The idea that there is a "right way" to build software, that it is a scientific process involving engineering design and that groups of developers are not there to simply work on the problem du jour. |
