摘自《The Capability Maturity Model Guidelines for Improving the Software Process》
The search for solutions to these challenges has continued for many years. After two decades
of unfulfilled promises about productivity and quality gains from applying new software methodologies
and technologies, organizations are now realizing that their fundamental problem is the inability
to manage the 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 for software organizations
from an ad hoc, immature process to a mature,disciplined one.
Immature Software Organizations:
1,Software processes are generally improvised by practitioners and their managers during the
course of the project. Even if a software process has been specified, it is not rigorously followed or
enforced.
2,The immature software organization is reactionary, and its managers are usually focused on
solving immediate crises.
3,These organizations routinely exceed schedules and budgets because they are not based on realistic
estimates. When hard deadlines are imposed, they may compromise product functionality and quality
to meet the schedule.
4,There is no objective basis for judging product quality or for solving product or process problems.
There is little understanding of how the steps of the software process affect quality,and product quality
is difficult to predict.
5,The customer has little insight into the product until delivery.
Mature Software Organization :
1,They possesses an organization-wide ability for managing software development and maintenance
process.
2,It accurately communicates the software process to both existing staff and new employees, and
carries out work activities according to the planned process.
3,The process mandated are documented,usable,and consistent with the way the work actually gets done.
4,The process are updated when necessary,and improvements are developed through controlled
pilot-tests and/or cost benefit analyses.
5,There is boad-scale,active involvement across the organiztion in improvement activities.
6,Roles and responsibilities within the process are clear throughout the project and across
the organization.
7,Managers monitor the quality of the software products and the process that produces them.
8,There is an objective,quanititative basis for judging product quality and analyzing problems with
the product and process.
9,Schedules and budgets are based on historical performance and are realistic; the expected results
for cost,schedule,functionality,and quality of the product are usually achieved.
10,In general, the mature organization follows a disciplined process consistently because all of
the participants understand the value of doing so, and the necessary infrastructure exists to support
the process.
To use one of Humphrey's metaphors:
1, An organization with an immature software process resembles a Little League baseball team.
When the ball is hit, some players run toward the ball, while others stand around and watch,
perhaps not even thinking about the game.
2,In the contrast, a mature organization is like a professional baseball team. When the ball is hit,
every players reacts in a disciplined manner.