Using A Defined and Measured Personal Software Process

Author(s): Watts S. Humphrey
Venue: IEEE Software
Date: 1996

Type of Experiement: Controlled Experiment
Sample Size: 88
Class/Experience Level: Graduate Student
Participant Selection: Participation in PSP course
Data Collection Method: Project Artifact(s)



This paper is both an introduction to PSP and a report on a study of the PSP process. The PSP is introduced as a method by which a structured improvement process can be applied to the software development practice. The structured improvement process is based on measurement of performance. The PSP is specifically targeted to a single engineer or a small group. The PSP is structured as seven discreet steps. The separation of the process into steps facilitates learning and later usage. One of the learning vehicles used in the PSP course is the creation of 10 specific programs. Each student generates the 10 programs using the PSP measurement techniques to gauge and improve their performance. Yield is measured as the percentage of defects found and fixed before the engineer starts to compile and test. The introduction of qualitative measures to the software development process is compelling as it provides evidence of a path resulting in concrete improvements. The author admits that while the data looks very promising, more research studies need to be completed before claiming that PSP is a success.

The study consisted of teaching the PSP process to 88 students across 8 courses, and analyzing the data collected during the courses. The analyses showed that as the students progressed through the course, their performance improved as seen through reduced defect count, and increased yield. Yield increased dramatically when the PSP step covering design and code review was introduced. Another analysis that was performed was the ratio of “appraisal costs” to “failure costs”. Appraisal costs are costs related to time spent in development and design. Failure cost is the time spent in compile and testing. This ratio increased throughout the course showing improvement. One more interesting result was that experienced programmers actually showed a decrease in productivity (measured as lines of code per hour) as the course progressed. The author speculates that the overhead introduced by the collection of data may actually slow down and experienced programmer during the course, however he argues that the other benefits of the PSP outweigh these small declines in productivity.