47
Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Object-Oriented Analysis and Design

Lecture 9

The Capability Maturity Model

Page 2: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Background Above all, this is about management,

not technology. Technology promises productivity

gains, but they will likely be unfulfilled in a “maelstrom of an undisciplined, chaotic project.”

1986, the SEI and Mitre decide to do something: a process maturity framework to help organizations improve their software process.

Page 3: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Background (cont.)

The methods are “software process assessment'' and “software capability evaluation.''

Note the ideas, methods and the language are DoD-centric.

Once again, “guidance.”

Page 4: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Background (cont.)

The result of the SEI effort is the Capability Maturity Model (CMM), which is

“...sets of recommended practices in a number of key process areas that have been shown to enhance software process capability.”

A better mousetrap will come from a better mousetrap process.

Page 5: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

The Immature Organization Software processes are generally

improvised during the course of a project. Managers are reactionary, solving

immediate crises. Functionality and quality are compromised

when hard deadlines approach. “The death march to Egghead.”

No objective basis for judging product quality; thus quality is difficult to predict.

Page 6: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

The Mature Organization The software process is accurately

communicated to existing and new staff.

Work activities are actually carried out according to the planned process.

The mandated processes are usable and consistent with the way work actually gets done.

Roles and responsibilities are clear, schedules and budgets are based on historical performance.

Page 7: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Fundamental Concepts

Software process: methods, activities, practices used to develop and maintain software

Software process capability: the range of expected results achieved by following a software process.

Software process performance: the actual results achieved by following a software process.

Page 8: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

More Concepts

Software process maturity: the extent to which a specific process is explicitly defined, managed, measured, controlled, and effective.

As an organization gains in process maturity, it institutionalizes its process by policies, standards and organizational structures.

Page 9: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

The Five Levels

The key idea is to identify an evolutionary path from immature to mature.

There are a number of well-defined plateaus along the way.

Each plateau (level) is a set of process goals which, when satisfied, stabilize some component of the software process.

The process goals are prioritized, so organizations understand what to do next.

Page 10: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

The CMM Levels

Page 11: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Level 1: The Initial Level

Unstable environment Makes commitments that can't be

meet with an orderly process. Plans are scrapped during crises,

jumping to coding and testing. Can success happen? Yes, but only

through heroic efforts.

Page 12: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Level 1 (cont.)

Such efforts will not likely be repeatable.

Capability is a characteristic of individuals, not the organization.

Would you buy from such an organization?

Page 13: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Level 2: The Repeatable Level Management policies are in place. Planning and managing are based

on experience. Policies are enhanced on a project

by project basis. Commitments are realistic.

Page 14: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Level 2 (cont.)

Managers track software costs, schedules, functionality.

Project standards are defined and followed.

The process is disciplined because planning and tracking are stable.

Earlier successes can be repeated.

Page 15: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Level 3: The Defined Level

A standard process for software engineering and management across the organization is documented.

There is a group responsible for this standard software process.

There are organization-wide training programs.

Page 16: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Level 3 (cont.)

Projects tailor the standard process to account for their unique features.

Such a tailored process contains readiness criteria, inputs, verification mechanisms, outputs and completion criteria.

This process capability is based on a common, organization-wide understanding of activities, roles and responsibilities.

Page 17: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Level 4: The Managed Level The organization sets quantitative quality

goals for software products and processes.

A process database is used to collect and analyze data from projects' processes.

Variation in process performance is narrowed to acceptable levels.

Software processes are instrumented.

Page 18: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Level 4 (cont.)

Risks in new product development are well understood.

The process capability is quantifiable and predictable.

Software products are of predictably high quality.

Page 19: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Level 5: The Optimizing Level

The entire organization is focused on continuous process improvement.

Weaknesses can be identified and remedies found.

Data on software process allows cost-benefit analyses on new technologies.

Page 20: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Management View of “Visibility” Into a Project Moving through the levels,

managers are better informed, and have greater control to do good…

Page 21: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model
Page 22: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Management View of “Visibility” Into a Project Level 1:

The project is a black box Requirements flow into the project

haphazardly The staging of activities is hidden Managers can’t establish project

status

Page 23: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Management View of “Visibility” Into a Project Level 2:

Requirements are controlled Visibility at defined occasions The project is a sequence of black

boxes Management reacts to problems as

they occur

Page 24: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Management View of “Visibility” Into a Project Level 3:

Tasks inside each black box are known

Management and engineers understand their “roles and responsibilities” within each box

Management is proactive in dealing with problems, because of rapid status updates

Page 25: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Management View of “Visibility” Into a Project Level 4:

Processes are “instrumented” (details of estimates and outcomes are recorded)

Decisions are based on hard facts Outcomes can be predicted more

accurately Variability in outcomes gets smaller

Page 26: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Management View of “Visibility” Into a Project Level 5:

Improved methods of software development are regularly tried

Defect-prone activities are replaced Managers can predict the impact of

process changes

Page 27: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Process Capability and Prediction of Performance Three improvements are expected

as the software process matures: The difference between targeted

results and actual results decreases. The variability of actual results

around targeted results decreases. Targeted results improve as maturity

increases.

Page 28: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model
Page 29: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Operational Definitions

These are supposed to be specific recommendations for an organization to increase its maturity.

There are at least four uses for them:

Page 30: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Operational Definitions (cont.) Assessment teams use CMM to identify

strengths and weaknesses. Evaluation teams use CMM to identify

risks in selecting contractors. Upper management will use CMM to

figure out how to launch a process improvement program.

Staff and process improvement groups will be guided by CMM.

Page 31: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Key Process Areas: Level 2

Requirements management Software project planning Software project tracking and

oversight Software subcontract management Software quality assurance Software configuration management

Page 32: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Key Process Areas: Level 3

Organization process focus Organization process definition Training program Integrated software management Software product engineering Intergroup coordination Peer reviews

Page 33: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Key Process Areas: Level 4

Quantitative process management Software quality management

Page 34: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Key Process Areas: Level 5

Process change management Technology change management Defect prevention

Page 35: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Evaluation

Process maturity is evaluated by SEI teams (and those trained by them).

For each Key Process Area, an organization is rated according to: Commitment to perform Ability to perform Activities performed Measurement and analysis Verifying implementation

Page 36: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Comments From Ed Yourdon This is not the only model (cf.

Software Productivity Research, the Capers Jones outfit)

What about small, innovative firms? According to the CMM, “Apple Computer should not exist.”

Small organizations probably cannot afford the overhead required by CMM.

Page 37: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Other Implications

You can't skip levels (these are cultural changes).

It takes time to go from one level to the next (10 years total? What about regression?).

New technology should be avoided at lower levels (these are management issues).

New software organizations won't start at level 3 (the all-star team).

Evaluations important for winning contracts.

Page 38: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

A Serious Rebuttal

From James Bach: “The CMM is a broad and increasingly

deep set of assertions about good software development practice.”

Where do these assertions come from? Are they complete and correct?

Page 39: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Bach (cont.)

“My thesis...is that the CMM is a particular mythology about software process evolution that cannot legitimately claim to be a natural or essential representation of software processes.”

Page 40: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

More Bach

The CMM is “at best a consensus among a particular

group of software theorists and practitioners”

“at worst a whitewash that obscures the true dynamics of software engineering [and] suppresses alternative models”

“If an organization follows it for its own sake, it may lead to the collapse of that company's competitive potential.”

Page 41: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Other Comments

The CMM was originally designed to evaluate the ability of government contractors to develop a software project. Will/does it work?

Is it useful outside of this context? The biggest (popularly-known) names

in software (Borland, Symantec, Apple, Microsoft) are likely Level 1. (Note in Jim McCarthy's book, CMM isn't even mentioned.)

Page 42: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Shrink-Wrap Perspective

No theoretical basis; fashioned by “very knowledgeable people,” so the de facto principle is that experts know what they're doing.

Any other model from “very knowledgeable people” has equal veracity.

Vague empirical support; this support doesn't exclude other models; there is no comparison of methods.

Page 43: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Shrink-Wrap (cont.)

It doesn't account for the success of shrink-wrap companies.

CMM reveres process but ignores people; process makes up for mediocrity; where is the justification for this?

Page 44: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Shrink-Wrap (cont.)

Imagine a process definition for playing chess.

Institutionalization of process guarantees nothing; such efforts lead to a simplified public process and an undercover private process.

Process dynamics are lost; why isn't training at level 1, for example? Level 1 is nothing; just get to level 2!

Page 45: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Shrink-Wrap (cont.)

Most of the Key Practices could be introduced at level 1, depending on the organization.

The CMM replaces the true mission of better process to the artificial mission of higher maturity level; “level envy.”

Page 46: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Other Arguments

The most powerful argument against CMM is the many successful companies that should not exist. Microsoft is level 1, IBM is mature.

Process should support innovation; systematic problem-solving leadership to enable innovation rather than cookie-cutter solutions.

Page 47: Object-Oriented Analysis and Design Lecture 9 The Capability Maturity Model

Still More

CMM is profoundly ignorant of the dynamics of innovation. CMM pushes authority up in the organization.

For CMM, heroism is an unsustainable sacrifice on the part of individuals. Personal mastery is left out of the equation.

An alternative: well, Bach obviously has his own story...