Practical Business Process Management Articles, Research and Advice for BPM  
Click To Learn More About PremiumLinks

Return To Previous Page


Business Process Management for Software Development

By Gary A. Gack

The term business process management (BPM) typically refers to identification of core business processes, assignment of process ownership and definition of measures (and perhaps benchmarks) that indicate the health of a particular process.

Ideally, processes are defined in a way that is independent of the specific organization structure used to execute those processes. Hence, they are best described in terms of what is being done – without regard to who or how – in a solution-free, action-verb form. Though BPM is less frequently encountered in software development organizations, it can be equally powerful as a guide to identification and prioritization of improvement opportunities in software companies.

Core Process in Software Development

Software development processes may be grouped into two process areas – lifecycle processes (analogous to core business processes) and cross-lifecycle processes (analogous to supporting business processes).

Primary lifecycle processes in software organizations can be described as follows:

  • Discovering requirements
  • Designing solutions
  • Constructing solutions
  • Validating solutions
  • Implementing (or deploying) solutions
  • Supporting deployed solutions (including defect repairs, minor enhancements, changes dictated by evolution of underlying technologies)

Primary cross-lifecycle processes typically include:

  • Planning projects
  • Estimating (or forecasting) effort, duration, delivered quality
  • Tracking and reporting status
  • Defining processes and standards
  • Measuring and monitoring process performance
  • Training
  • Controlling versions and releases of software work products (configuration management)

Process Measures in Software Development

Performance of all software processes can be appropriately characterized by some combination of the following metrics:

  • Cycle time (calendar duration)
  • Defect rate
  • Effort (person-days or hours)
  • Size (e.g., function points, lines of code or any other suitable proxy measure)
  • Capability – a measure of the efficiency of a software process, e.g., Putnam's "Productivity Index"
  • Schedule pressure – the schedule itself has been shown to be a significant X when estimating effort and the schedule required to process a given size through a process with a given capability.

Essentially, the software development dashboard or scorecard boils down to a set of measures that answers three questions for each process:

  1. How long does it take (in relation to size)? i.e., cycle time, throughput
  2. What does it cost (in relation to size)? i.e., effort required, efficiency
  3. How good are the products it produces?

Answering these questions in a meaningful way requires the use of compound measures that qualify conclusions in relation to factors known to be influential. The following table illustrates contents of a dashboard that succinctly provides answers to the above questions.

 Table 1: Illustration of Contents of Dashboard
Process

Cycle Time

Defect Rate Effort
Discovering
Designing
Constructing
Validating
Implementing
Supporting
Planning


Estimating


Tracking

Defining

Measuring

Training

Controlling






Duration/size












Not applicable





Duration/size




Defect containment rate adjusted for schedule pressure






Internal change rate (not driven by requirements changes)

Actual versus estimate, adjusted for changes in size

Not applicable

Post-deployment change rate


?


Defect rate







Effort/size, adjusted for schedule pressure; total rework; appraisal cost total and per defect









Not applicable


Effort/size

?

Effort /size

While there are potentially additional measures that may be of interest, any organization that has all of these is certainly far ahead of the pack.

This article was previously published on iSixSigma.com.

About the Author:

Gary A. Gack is a founding partner of Six Sigma Advantage, based in Rockland, Mass. He has an MBA from the Wharton School, and is an ASQ-certified software quality engineer and a Six Sigma Black Belt. During his 40-year career in the software and IT industry, he has managed a variety of large-scale software projects and has consulted with dozens of Fortune 1000 firms. Mr. Gack co-authored Six Sigma Advantage's Black Belt, Green Belt and foundation curriculum. Contact Gary A. Gack at ggack (at) 6siga.com.


Terms of Service. Copyright © 2003-2010 – www.bpmenterprise.com, CTQ Media. All rights reserved. Visit us at http://www.bpmenterprise.com.


Return To Previous Page