CSC 508 Lecture Notes Week 10
CSC 508 Lecture Notes Week 10
Final Customer Interviews
CMM -- The Capability Maturity Model
-
Proposed meetings for Nov 30, Dec 1:
-
Infra
-
Process Nav, Browsing + Artifact Nav: Tue 5PM
-
Process Nav, Enactment: Wed 5PM
-
Top Level: Tue 8AM
-
Main Line
-
Requirements: Tue 2
-
Prototyping: Tue 1
-
Design: Wed 6:40 - 7:40PM
-
Implementation: Wed 9AM
-
Pervasive
-
Testing: Wed 4PM
-
Config: Wed 5:40 - 6:40PM
-
Admin : Wed 11AM
-
Leftovers from Week 9 lecture notes.
-
Software process assessment using the Capability Maturity Model (CMM)
-
CMM has been developed at Carnegie Mellon since around 1987; it is still
undergoing refinement.
-
The five CMM levels (in order of increasing maturity) are:
-
Initial -- ad hoc
-
Repeatable -- basic project management techniques are used
-
Defined -- a software engineering process is used
-
Managed -- quantitative Q/A process is used
-
Optimizing -- the process itself can be refined to improve efficiency
-
Improvements claimed for more mature processes:
-
More reliable software
-
Better visibility into process, particularly from top-level management
perspective
-
Less risk in contracting with firms that have a mature process in place.
-
Details of the five CMM levels
-
Level 1: completely ad hoc
-
Level 2:
-
Requirements management
-
Goal 1: System requirements allocated to software are controlled to establish a
baseline for software engineering and management use.
-
Goal 2: Software plans, products, and activities are kept consistent with the
system requirements allocated to the software.
-
Project planning
-
Goal 1: Software estimates are documented for use in planning and tracking the
software project.
-
Software project activities and commitments are planned and documented.
-
Goal 3: Affected groups and individuals agree to their commitments related to
the software project.
-
Project tracking and oversight
-
Goal 1: Actual results and performances are tracked against toe software plans.
-
Goal 2: Corrective actions are taken and managed to closure when actual results
and performance deviate significantly from the software plans.
-
Goal 3: Changes to software commitments are agreed to by the affected groups
and individuals.
-
Subcontract management
-
Goal 1: The prime contractor selects qualified software subcontractors.
-
Goal 2: The prime contractor and the software subcontractor agree to their
commitments to each other.
-
Goal 3: The prime contractor and the software subcontractor maintain ongoing
communications.
-
Goal 4: The prime contractor tracks the software subcontractor's actual results
and performance against its commitments.
-
Software quality assurance
-
Goal 1: Software quality assurance activities are planned.
-
Goal 2: Adherence of software products and activities to the applicable
standards, procedures, and requirements is verified objectively.
-
Goal 3: Affected groups and individuals are informed of software quality
assurance activities and results.
-
Goal 4: Noncompliance issues that cannot e resolved within the software project
are addressed by senior management.
-
Configuration management
-
Goal 1: Software configuration management activities are planned.
-
Goal 2: Selected software work products are identified, controlled, and
available.
-
Goal 3: Changes to identified software work products are controlled.
-
Goal 4: Affected groups and individuals are informed of the status and content
of software baselines
-
Level 3
-
Organization process focus
-
Goal 1: Software process development and improvement activities are coordinated
across the organization.
-
Goal 2: The strengths and weaknesses of the software processes used are
identified relative to a process standard.
-
Goal 3: Organization-level process development and improvement activities are
planned.
-
Organization process definition
-
Goal 1: A standard software process for the organization is developed and
maintained.
-
Goal 2: Information related to the use of the organization's standard software
process by the software projects is collected, reviewed, and made available.
-
Training program
-
Goal 1: Training activities are planned.
-
Goal 2: Training for developing the skills and knowledge needed to perform
software management and technical roles is provided.
-
Goal 3: Individuals in the software engineering group and software-related
groups receive the training necessary to perform their roles.
-
Integrated software management
-
Goal 1: The project's defined software process is a tailored version of the
organization's standard software process.
-
Goal 2: The project is planned and managed according to the project's defined
software process.
-
Software product engineering
-
Goal 1: The software engineering tasks are defined, integrated, and
consistently performed to produce the software.
-
Goal 2: Software work products are kept consistent with each other.
-
Intergroup coordination
-
Goal 1: The customer's requirements are agreed to by all affected groups.
-
Goal 2: The commitments between the engineering groups are agreed to by the
affected groups.
-
Goal 3: The engineering groups identify, track, and resolve intergroup issues.
-
Peer reviews
-
Goal 1: Peer review activities are planned.
-
Goal 2: Defects in the software work products are identified and removed.
-
Level 4
-
Quantitative process management
-
Goal 1: The quantitative process management activities are planned.
-
Goal 2: The process performance of the project's defined software process is
controlled quantitatively.
-
Goal 3: The process capability of the organization's standard software process
is known in quantitative terms.
-
Software quality management
-
Goal 1: The project's software quality management activities are planned.
-
Goal 2: Measurable goals for software product quality and their priorities are
defined.
-
Goal 3: Actual progress toward achieving the quality goals for the software
products is quantified and managed.
-
Level 5
-
Defect prevention
-
Goal 1: Defect prevention activities are planned.
-
Goal 2: Common causes of defects are sought out and identified.
-
Goal 3: Common causes of defects are prioritized and systematically eliminated.
-
Technology change management
-
Goal 1: Incorporation of technology changes are planned.
-
Goal 2: New technologies are evaluated to determine their effect on quality and
productivity.
-
Goal 3: Appropriate new technologies are transferred into normal practice
across the organization.
-
Process change management
-
Goal 1: Continuous process improvement is planned.
-
Goal 2: Participants in the organization's software process improvement
activities is organization wide.
-
Goal 3: The organization's standard software process and the projects' defined
software processes are improved continuously.
-
A technologist's view of how to build quality software
-
The developers of CMM focus almost exclusively on the management aspects of the
software process, not the technical aspects.
-
From their perspective, proper management is far more important to achieving
quality software than is proper software engineering technology.
-
Technologists tend to believe the opposite (but this belief is probably
mistaken).
-
For example, when technologists read that
"CMM does not currently address expertise in particular application domains,
advocate specific software technologies, or suggest how to select, hire,
motivate, and retain competent people."
technologists view CMM of limited utility when it comes to assessing what it
really takes to build quality software.
-
So, if we assume that a mature software process is in place, here is one
technologist's view of the the top ten things that really count for
achieving quality software:
-
A good requirements specification, produced with copious end-user feedback.
-
Thorough and formal test procedures at all levels of development.
-
The 7+/-2 hierarchy rule, 25-public-operation rule, and 25-line rule,
-
A document-as-you-go policy, where document commentary is written with the
following question in mind: "What will I need to know when I come back here in
six months and want to understand what's going on?"
-
Thoughtfully written version control log messages and/or explicit log files.
-
One set of conventions per project, and one extremely nasty manager to enforce
them.
-
Thorough and formal revision control procedures, including readily accessible
access to at least the last three working versions of the system.
-
Teamwork, including frequent critical reviews.
-
Good specification and design roadmaps, in whatever diagraming style(s) you
like.
-
Real deadlines.
Honorable Mentions
-
Emacs
-
Top-of-the-line Sparc workstation
-
Sleep deprivation when necessary
-
High-quality junk food
Noteworthy Omissions
-
Any particular methodology, object-oriented or otherwise; just choose one and
stick with it.
-
Any particular programming language; just choose one (except for Visual
Basic) and stick with it.
-
These are among the things we will attempt to put into practice next
quarter.