As this is my first post on this new Blog (more coming soon), I will deal with one of my favourite subjects :–
Trying to apply Statistical Process Control methods to the process improvement of software production and maintenance.
There are many perspectives and definitions of quailty that speak to the pioneering Statistical Process Control work that W. Edwards Deming and others did in post war Japan to rebuild its depleted manufacturing capability.
A more recent and succinct definition of quality comes from Douglas C. Montgomery – 1996 and is:-
Quality is inversely proportional to variability
This quote is taken from his book entitled:-
Introduction to Statistical Quality Control: Student Resource Manual
Whilst this book is still on my reading list the overall notion that quality improvement can be seen as a reduction of variability in process and products got me thinking about how variability is addressed in the various Project related process areas of CMMi (The Software Engineering Institute’s, Software Process Improvement framework).
General issues with applying Statistical Quality Control methods to Software production:-
The basic idea of any process improvement initative is to characterize the current state of production, together with the value and cost of what is produced, with the intention to alter the given process in such a way that the value increases andor the cost decreases.
The issue with software production (achieved under projects) is that the processes and their outputs are highly variable when compared to their manufactured counterparts. This raises issues of comparing like for like when trying to form hypothesises for potential improvements or verifying that any change has in fact made an improvement.
How project management variation is addressed in CMMi
The CMMi for software development, a software process improvement framework, breaks down the various components of Project Management and recommends a configurable (mix and match) approach to selecting an appropriate project lifecycle.
By making the whole project management process configurable for various predefined lifecycles, what can be achieved with CMMi is an isolation of those processes (procedures) that are consistent over time and therefore more readily subjected to traditional process improvement methods and techniques.
Here is a look at how CMMi splits up the components of project management and how this separation allows for an identification of consistency that will lend itself to Statistical Quality Control.
The Organizational Process Definition (OPD) process area.
Within CMMi the goals (remembering CMMi specifies What is required and not How to do it) of the OPD are concerned with creating a Process Asset Library (PAL).
The PAL documents all the processes that are to be followed and subjected to measurement for improvement. These processes include various project life cycle models e.g.
Waterfall
Spiral
Evolutionary
Iterative
In this way there are multiple lifecycle models defined and the appropriate one is chosen for a given project.
The PAL would also document smaller tasks such as Usability Testing so that during Project Planning the appropriate Project lifecycle would be selected in addition to mixing and matching the various tasks within the selected project lifecycle.
This project lifecycle configurability allows for similar tasks to be compared over the course of multiple projects. For example the Usability testing task would remain stable and be applied equally to an iterative or waterfall project lifecycle.
CMMi has a Quantitative Project Management (QPM) process area that also makes use of this modular structure. By recording metrics for the previous performance of standard (modular) tasks, performance and quality objectives can be established for the given project in order to plan and monitor the project’s progress.
In essence CMMi allows for a project’s structure to be assembled from tasks and processes defined in the PAL. Each individual component in the PAL also has documented performance metrics which can be used for Quantitative Project Management to monitor and react to performance testing services or quality issues.
This modular approach to breaking down project tasks with associated performance metrics will ultimately reduce variability in the process, which in turn will facilitate a process improvement initiative.
Although project management is given as an example the question we should all ask, as quality engineers, is what processes (or parts of processes) will be consistent over multiple projects and how can that consistency be leveraged for process measurement and improvement.
Trying to apply Statistical Process Control methods to the process improvement of software production and maintenance.
There are many perspectives and definitions of quailty that speak to the pioneering Statistical Process Control work that W. Edwards Deming and others did in post war Japan to rebuild its depleted manufacturing capability.
A more recent and succinct definition of quality comes from Douglas C. Montgomery – 1996 and is:-
Quality is inversely proportional to variability
This quote is taken from his book entitled:-
Introduction to Statistical Quality Control: Student Resource Manual
Whilst this book is still on my reading list the overall notion that quality improvement can be seen as a reduction of variability in process and products got me thinking about how variability is addressed in the various Project related process areas of CMMi (The Software Engineering Institute’s, Software Process Improvement framework).
General issues with applying Statistical Quality Control methods to Software production:-
The basic idea of any process improvement initative is to characterize the current state of production, together with the value and cost of what is produced, with the intention to alter the given process in such a way that the value increases andor the cost decreases.
The issue with software production (achieved under projects) is that the processes and their outputs are highly variable when compared to their manufactured counterparts. This raises issues of comparing like for like when trying to form hypothesises for potential improvements or verifying that any change has in fact made an improvement.
How project management variation is addressed in CMMi
The CMMi for software development, a software process improvement framework, breaks down the various components of Project Management and recommends a configurable (mix and match) approach to selecting an appropriate project lifecycle.
By making the whole project management process configurable for various predefined lifecycles, what can be achieved with CMMi is an isolation of those processes (procedures) that are consistent over time and therefore more readily subjected to traditional process improvement methods and techniques.
Here is a look at how CMMi splits up the components of project management and how this separation allows for an identification of consistency that will lend itself to Statistical Quality Control.
The Organizational Process Definition (OPD) process area.
Within CMMi the goals (remembering CMMi specifies What is required and not How to do it) of the OPD are concerned with creating a Process Asset Library (PAL).
The PAL documents all the processes that are to be followed and subjected to measurement for improvement. These processes include various project life cycle models e.g.
Waterfall
Spiral
Evolutionary
Iterative
In this way there are multiple lifecycle models defined and the appropriate one is chosen for a given project.
The PAL would also document smaller tasks such as Usability Testing so that during Project Planning the appropriate Project lifecycle would be selected in addition to mixing and matching the various tasks within the selected project lifecycle.
This project lifecycle configurability allows for similar tasks to be compared over the course of multiple projects. For example the Usability testing task would remain stable and be applied equally to an iterative or waterfall project lifecycle.
CMMi has a Quantitative Project Management (QPM) process area that also makes use of this modular structure. By recording metrics for the previous performance of standard (modular) tasks, performance and quality objectives can be established for the given project in order to plan and monitor the project’s progress.
In essence CMMi allows for a project’s structure to be assembled from tasks and processes defined in the PAL. Each individual component in the PAL also has documented performance metrics which can be used for Quantitative Project Management to monitor and react to performance testing services or quality issues.
This modular approach to breaking down project tasks with associated performance metrics will ultimately reduce variability in the process, which in turn will facilitate a process improvement initiative.
Although project management is given as an example the question we should all ask, as quality engineers, is what processes (or parts of processes) will be consistent over multiple projects and how can that consistency be leveraged for process measurement and improvement.
No comments:
Post a Comment