|
Home
Software process improvement Agile software development JAD and RAD System requirements System functional specification |
Software Process Improvement (SPI).
Software process improvement definitionSoftware process improvement (SPI) is a defined framework of processes and procedures that:-
Why is SPI so important?SPI is a pragmatic method that is the value of the processes is determined by the consequences of those processes. By way of example the Agile framework is considered desirable as a means of producing software. What, however, is the basis for this assertion. If we say that by following Agile we are doing the right thing we will be following Agile 100 years from now. Instead of going from first principles, that is assuming one way is the right way, we need an independent way of determining the value of our processes and methods. This is where SPI comes into the picture. SPI can be applied to any software development process and seeks to quantify the value of the process. In this way two processes can be compared or a given process component can be modified for an incremental improvement. How do we measure the software development process?
In order to measure the strength, or weakness, of the process we can measure the software that is produced using the given process.
There are many software quality characteristics that can be measured, independently of the production process:-
This is not a complete list but the idea is to identify software factors that can be measured. How do we trace the software measures to the process?The second, and more difficult, part of SPI is setting up a causal model that traces the presence (or absence) of quality factor to a process. For example if we measure supportability as the length of time it takes to find and correct a defect, we need to determine what influences this time. In the supportability example code complexity could be a factor. In order to reduce code complexity we could introduce coding standards that encourage simpler code. Coding standards, however, may only be one cause of high supportability costs. The overall design structure of the system could influence how easy (or difficult) it is to track down a defect. Tracing defects to their root cause is more of an art than a science and is itself subject to trial and error. SPI and requirements
When we consider SPI we need to look at all the deliverables of the software development process. In this way the intermediate deliverables, such as specifications, become the subject of measurement and evaluation.
When the requirements are produced, using a given notation, then they can be tested or examined for:-
With these measures in place we can look at several requirement notations and independently measure the effectiveness of each of them. SPI is not only concerned with the final software product but with the interim deliverables from which the software is derived. SPI conclusionsRegardless of what methods, processes, standards or guidelines we follow we need an independent way of measuring the value of following them. SPI provides a pragmatic approach via measurement and causal analysis of judging the value of our development process. Software frameworks, such as Agile, will come and go but their relative value needs to be defined in a consistent manner. SPI provides the framework under which the value of a given software development process can be determined. No guarantee (or claim) is made regarding the accuracy of this information. Any questions or comments should be sent to:-
|