What is SPI?
The term software process improvement (SPI) implies many things. First, it implies that elements of an effective software process can be defined in an effective manner; second, that an existing organizational approach to software development can be assessed against those elements; and third, that a meaningful strategy for improvement can be defined. The SPI strategy transforms the existing approach to software development into something that is more focused, more repeatable, and more reliable (in terms of the quality of the product produced and the timeliness of delivery).
Because SPI is not free, it must deliver a return on investment. The effort and time that is required to implement an SPI strategy must pay for itself in some measurable way. To do this, the results of improved process and practice must lead to a reduction in software “problems” that cost time and money. It must reduce the number of defects that are delivered to end users, reduce the amount of rework due to quality problems, reduce the costs associated with software maintenance and support, and reduce the indirect costs that occur when software is delivered late.
Much of the software crisis is self-inflicted, as when a CIO says, ‘I’d rather have it wrong than have it late. We can always fix itlater.’ Mark Paulk
Approaches to SPI
SPI framework defines
- a set of characteristics that must be present if an effective software process is to be achieved
- a method for assessing whether those characteristics are present
- a mechanism for summarizing the results of any assessment
- a strategy for assisting a software organization in implementing those process characteristics that have been found to be weak or missing.
SPI framework assesses the “maturity” of an organization’s software process and provides a qualitative indication of a maturity level.
Quality certifiers. Process improvement efforts championed by this group focus on the following relationship: Quality certifiers. Process improvement efforts championed by this group focus on the following relationship:
Quality(Process) ⇒ Quality(Product)
Who does it?
The people who champion SPI come from three groups: technical managers, software engineers, and individuals who have quality assurance responsibility.
Why is it important?
Some software organizations have little more than an ad hoc software process. As they work to improve their software engineering practices, they must address weaknesses in their existing process and try to improve their approach to software work.
What are the steps?
The approach to SPI is iterative and continuous, but it can be viewed in five steps: assessment of the current software process education and training of practitioners and managers selection and justification of process elements, software engineering methods, and tools implementation of the SPI plan evaluation and tuning based on the results of the plan.
What is the work product?
Although there are many intermediate SPI work products, the end result is an improved software process that leads to higher-quality software.
How do I ensure that I’ve done it right?
The software your organization produces will be delivered with fewer defects, rework at each stage of the software process will be reduced, and on-time delivery will become much more likely.
Reference: Software Engineering A Practitioner's Approach (7th Ed.) ~ Roger S. Pressman