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.