The Personal Software Process as a Context for Empirical Studies

Author(s): Claes Wohlin
Venue: IEEE TCSE Software Process Newsletter
Date: 1998


While the focus of this paper is on why PSP should be used for collecting data for experiments and case studies investigating other areas of software engineering the results presented as an example of such usage are interesting in terms of evaluating PSP.
The study first investigates whether the number of faults per one thousand lines of code will decrease as developers have more experience with a required C programming language. Based on the study of four classes, a mean Faults/KLOC for each class was between 63.0 and 72.7. When the ANOVA test was used to determine a relationship between experience and fault density the results were insignificant and the experiment is unable to show that there is significant difference in number of faults/KLOC based on experience with C.

The second area investigated looks at the co-linearity between several recorded or computed values in PSP (faults, faults/KLOC, development time, program size, productivity, size predictability, and time predictability). The results of the case study indicate through use of principal components analysis that these seven measurements actually represent three factors (quality, productivity, and predictability). Quality of the program is represented by high correlation between faults, faults/KLOC, and development time. Productivity is represented by high correlation between program size and productivity. Finally, predictability is represented with a high correlation between size predictability and time predictability.

This study is interesting not only because it proposes that PSP be used as a process for collecting data for empirical studies in other areas of software engineering but also because it seems to suggest some interesting characteristics about PSP. First, either software engineers continue to make the same percentage of errors regardless of their experience with a language or PSP is able to equalize the difference that exists between developers with differing experience levels. Also, the study shows that there are strong connections between several of the measurements collected by the Personal Software Process and these relationships should be considered when designing experiments and determining which values should be recorded.