Building Mature Software Processes
Description
The “Building Mature Software Processes” course addresses
the software engineering and management practices of high maturity
organizations as rated against the Capability Maturity ModelÒ
for Software (CMMÒ)
or CMM Integration (CMMIÒ). High maturity is addressed from three perspectives:
1) recommended best practices for a variety of environments; 2) empirical data
on what high maturity organizations do; and 3) interpreting the practices in
models such as the Software CMM and CMMI.
In studying the concepts and practices underlying mature
processes, the course addresses the application of measurement and statistical
insight to software development and maintenance. This includes issues
associated with effectively implementing statistical process control (SPC) to
manage and improve software processes. Specific
engineering and management tools and techniques are discussed at a fairly high
level of abstraction; detailed implementation knowledge is not provided.
Who should attend this
course?
This course is primarily intended for software professionals
responsible for assessing and/or improving software engineering processes. Secondary audiences include executives and
managers sponsoring software process improvement and software professionals
involved with software process management and improvement.
Benefits
Participants will learn about:
the systematic principles for
organizational transformation underlying the CMM work
practical tips for effective
process definition and improvement
integrating effective project
management techniques and process improvement priorities
a variety of approaches, e.g.,
agile methods, consistent with process discipline
tips for establishing a measurement
program
adopting a measurement-driven
approach to daily work
cultural shifts intrinsic to true
high maturity
Course Materials
The primary textbook for this course is Measuring
the Software Process: Statistical Process Control for Software Process
Improvement by William A. Florac and Anita D.
Carleton. Understanding Variation: The Key to Managing Chaos by Donald J.
Wheeler and The Memory Jogger II by Michael Brassard and Diane Ritter are also
provided.
Course schedule
This is a five-day course, running from 8:30 AM until 4:30
PM. The lecture and exercises part of the course finishes around lunchtime on
Friday, and Friday afternoon is available for questions and discussions of high
maturity issues.
Sessions
Introduction
Who is participating in this course? What are their expectations? What is a mature process?
Software Process Improvement in Context
What is the Software CMM?
Total Quality Management and standards such as ISO
9000? How do concepts such as
“adequacy” and “goodness” affect process improvement? What is a “best practice?” What are some
useful sources of best practices?
Culture, Organizational Psychology, and Change
How do national and ethnic cultures affect the software
process? Organizational
cultures? How do different
cultures deal with change?
The Foundation for Quality work: People
Do we treat people as our greatest asset in software
engineering? What differences between
people should we be aware of? What
systematic biases and fallacies should be addressed? How can we build high performance teams?
Customer-Supplier Relationships
Can mature software processes function effectively with
immature customers? What enables
suppliers to manage immature customers?
How can more mature customer-supplier relationships be built?
Software Project Management
Can software projects be managed in a dynamic business
environment? What management strategies
are most appropriate for software projects?
Software Engineering Processes
Can software development and maintenance incorporate engineering
discipline? What are some effective
engineering processes? Can agile
methodologies such as Extreme Programming satisfy the requirements for mature
processes?
Support Processes
What support processes are necessary for mature processes to
function? What are the implications of
maturity for configuration management? Quality assurance?
Peer reviews? Decision
making?
Organizational Learning and Institutionalization
What is institutionalization? Does software engineering exist as a
profession? How do standardization and
organizational learning interact? Process discipline and process improvement?
Measurement
Should measurement be intrinsic to mature processes? What are operational definitions, and why
should I care? What factors underlie
successful measurement programs?
Basic Statistics for Software Engineers
What are the seven basic SPC tools? What is regression analysis? A test of hypotheses?
Analysis of variance?
Analyzing Process Behavior
What is a control chart (or process behavior chart)? How are they useful in a software
environment? What do terms like rational
sample and homogenous subgroup imply?
What are some of the challenges to using SPC appropriately?
High Maturity in the Software CMM and CMMI
What is the relationship between Level 4 in the Software CMM
and CMMI and SPC? What topics should be
in those models – but aren’t? What is
the relationship between Level 5 and innovation? Incremental change? How does organizational culture change at
Level 5?
Conclusions and Beginnings
How do I get started on building mature processes?
Faculty
Mark C. Paulk
Mark is best known for his work on the Capability Maturity
Model for Software and software process improvement. He is currently working on the eSourcing Capability Model for Service Providers (eSCM-SP) and related sourcing topics. His current research interests center on high
maturity practices, statistical control for software processes, and agile
methods. Mark is a Senior Member of ASQ
and IEEE.
Ò Capability Maturity Model, CMM, and CMMI are registered with the U.S. Patent and Trademark Office by Carnegie Mellon University.