Capapbility Maturity Model (SEI-CMM) and Quality
D eveloping reliable and usable software that is delivered on time and within budget is a difficult endeavor for many organizations. Products that are late, over budget, or that dont work as expected also cause problems for the organization's customers. As software projects continue to increase in size and importance, these problems become magnified. These problems can be overcome through a focused and sustained effort at building a process infrastructure of effective software engineering and management practices.
To build this process infrastructure, organizations producing software need ways to appraise their ability to perform their software process successfully. They also need guidance to improve their process capability. Customers, such as the Department of Defense (DoD), needed ways to evaluate more effectively an organization's capability to perform successfully on software engineering contracts. Prime contractors need ways to evaluate the capability of potential subcontractors.
To help organizations and customers like the DoD and prime contractors, the Software Engineering Institute (SEl) has developed the Capability Maturity Model for Software (CMM), that delineates the characteristics of a mature, capable software process. The progression from an immature, unrepeatable software process to a mature, well-managed software process also is described in terms of maturity levels in the model.
The CMM can be used for:
Software process improvement, in which an organization plans, develops, and
implements changes to its software process;
The Capability Maturity Model for Software (CMM) is a framework that describes the key elements of an effective software process. The CMM describes an evolutionary improvement path from an ad hoc, immature process to a mature, disciplined process.
The CMM covers practices for planning, engineering, and managing software development and maintenance. When followed, these key practices improve the ability of organizations to meet goals for cost, schedule, functionality, and product quality.
The CMM establishes a yardstick against which it is possible to judge, in a repeatable way, the maturity of an organization's software process and compare it to the state of the practice of the industry. The CMM can also be used by an organization to plan improvements to its software process.
The Software Engineering Institute (SEl) developed an initial version of a maturity model and maturity questionnaire at the request of the government and with the assistance of the MITRE Corporation. Throughout the development of the model and the questionnaire, the SEl has paid attention to advice from practitioners who are involved in developing and improving software processes. The model is based on actual practices; reflects the best of the state of the practice; reflects the needs of individuals performing software process improvement, software process assessments, or software capability evaluations; is documented and is publicly available.
The CMM is composed of five maturity levels. With the exception of Level 1, each maturity level is composed of several key process areas. Each key process area is organized into five sections called common features. The common features specify the key practices that, when collectively addressed, accomplish the goals of the key process area.
The components of the CMM include:
Key process areas
An example of a goal from the Software Project Planning key process area is "Software estimates are documented for use in planning and tracking the software project."
The Activities Performed common feature describes implementation activities. The other four common features describe the institutionalization factors, which make a process part of the organizational culture.
For example, one of the practices from the Software Project Planning key process area is "The projects software development plan is developed according to a documented procedure."
Each maturity level provides a layer in the foundation for continuous process improvement. Each key process area comprises a set of goals that, when satisfied, stabilize an important component of the software process. Achieving each level of the maturity model institutionalizes a different component in the software process, resulting in an overall increase in the process capability of the organization.
Level 1: At the Initial Level, the organization typically does not provide a stable environment for developing and maintaining software.
At the Repeatable Level, polices 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.
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.
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
At the Optimizing Level, the entire organization is focused on continuous process
improvement. The organization has the means to identify weakness and strenghten the
process proactively, with the goal of preventing the occurrence and defects.
The step from one level to another is not easy and there are few companies around the world that has reached the Level 5 (about 30!).
Our solutions are the most efficient, flexible, quality-based and cheaper of the market, due to our fully innovative and customer-driven approach. Discover them and compare them to the solutions provided you by our competitors.
|Copyright © 2002 Atlantis Technologies. All rights reserved.|