Personal Software Process


Personal Software Process Strategy

Enabling

Personal software process is about providing the user, software developer, with the an understanding of how she works. It should put the individual in control of understanding her performance critically and at the right level of detail to modify her software process. To do so implies an ability to define, measure, and analyze individual processes.

Is not intended to support any single task in a life-cycle. Is language and methodology independent.

Individual in that it promotes the individual as being capable of changing her process, thus the aim is to provide the individual with the necessary understandings through a framework.

The PSP foundation correlates with the CMM framework.

Software Process

Software Process is a sequence of steps required to develop or maintain software. A software process definition is a description of this process.

The software process sets out the technical and management framework for applying methods, tools, and people to the software task, while the process definition identifies roles and specifies tasks. The definition further establishes measures and provides exit and entry criteria for every major step.

Focus

Design defect prevention

Humphrey proposes a process improvement cycle::
  1. Understand the current status of your development process or processes.
  2. Develop a vision of the desired process.
  3. Establish a list of required process improvement actions, in order of priority.
  4. Produce a plan to accomplish the required actions.
  5. Commit the resources to execute the plan.
  6. Start over at step 1.


Expected Outcomes

In Using a Defined and Measured Personal Software Process, Humphrey describes his perspective in developing PSP and experiences in teaching PSP to a variety of audiences. He reports in this article data to support the claims made for process improvement from engaging in the activities described. In particular he claims "When properly taught, the PSP

These outcomes are achieved by first making the participants collect specific data related to process and product forming the baseline that providing the individual with a context to think about process and hence process improvement. This is the "making the process visible step."

PSP Steps

Personal Measurement (PSP0)

The individuals are supplied with forms and process scripts (guides to direct activity) that lets them gather real data regarding the time and defects in the artifact produced. The initial data provides the baseline that allows them to compare results during future activity. The phases of PSP0 include planning, development (design, code, test) and postmortem. During PSP0, referred to as PSP0.1, coding standards, size measurement, and improvement proposals are introduced.

Personal Planning (PSP1)

Using the data collected from previous programs, individuals use the PROBE method to estimate size and time for programs. Schedule and task planning are added in PSP1.1. The goal is to provide ample experience in estimating, hence it is introduced early.

Personal Quality (PSP2)

The individuals are introduced to and practice personal design and code reviews. These reviews are guided by checklists provided.

Scaling Up (PSP3)

PSP Methods

Under an initiative called "Doing Quality Work", Embry-Riddle Aeronautical University is introducing process material into the first two computer science courses. Many of the notions found in PSP are included in their approach.

Sources

Humphrey, Watts S. (1998) Three Dimensions of Process Improvement:

Humphrey, W. (1999) Pathways to Process Maturity: The Personal Software Process and Team Software Process. SEI Interactive 2(2), June 1999.

References

Disney, A. (1998) Data Quality Problems in the Personal Software Process. M.S. Thesis, University of Hawaii, August, 1998. (Abstract)

Disney, A. & Johnson, P. (1998) Investigating Data Quality Problems in the PSP. Sixth International Symposium on the Foundations of Software Engineering (SIGSOFT'98), Orlando, FL., November, 1998. (Abstract)

Ferguson, P., W. S. Humphrey, S. Khajenoori, S. Macke, A. Matvya (May 1997) Results of Apply the Personal Software Process. IEEE Computer, p. 24-31.

Green, G. & Hevner, A. (2000) The Successful Diffusion of Innovations: Guidance for Software Development Organizations. IEEE Software, 17(6), p. 96-103.

Hayes, W. & J. W. Over (1997) The Personal Software Process (PSP): An Empirical Study of the Impact of PSP on Individual Engineers. CMU/SEI-97-TR-001.

Hilburn, T. B. & M. Towhidnejad (1997) Doing Quality Work: The Role of Software Process Definition in the Computer Science Curriculum. Proceedings of the Twenty-eighth SIGCSE Symposium on Computer Science Education. San Jose, CA, February 27-March 1, 1997. (Abstract)

Hirmanpour, I. (2000) Personal Software Process: An Awareness Workshop. Embry-Riddle Aeronautical University.

Hou, L. & Tomayko, J. (1998) Applying the Personal Software Process in CS1: An Experiment. twenty-ninth SIGCSE technical symposium on Computer science education February 26 - March 1, 1998, Atlanta, GA.

Humphrey, W. S. (2000) The Personal Software Process: Status and Trends. IEEE Software, 17(6), p. 71-75.

Humphrey, W. S. (1997) Introduction to the Personal Software Process. Addison-Wesley: Reading, MA.

Humphrey, W. S. (May 1996) Using a Defined and Measured Personal Software Process. IEEE Software. p. 77-88.

Humphrey, W. S. (1995) A Discipline of Software Engineering. Reading, MA: Addison-Wesley.

Humphrey, W. S. (July 1995) Why Should You Use A Personal Software Process? Software Engineering Notes 20(3), p 33-36.

Humphrey, W. S. (May 1998) Why don't they practice what we preach? Software Engineering Institute, Carnegie Mellon University. Also appears in Annals of Software Engineering 6, 1998, p. 201-222.

Johnson, P. & Disney, A. (1998) The Personal Software Process: A Cautionary Case Study. IEEE Software, 15(6), November, 1998.

Johnson, P. & Disney, A. (1999) A Critical Analysis of PSP Data Quality: Results from a Case Study. Journal of Empirical Software Engineering. February, 1999. (Abstract)

Kamatar, J. & Hayes, W. (2000) An Experience Report on the Personal Software Process. IEEE Software, 17(6), p. 85-89.

Khajenoori, Soheil (1995) Personal Correspondence.

Morisio, M. (2000) Applying the PSP in Industry. IEEE Software, 17(6), p. 90-95.

Prechelt, L. & Unger, B. (2001) An Experiment Measuring the Effects of Personal Software Process (PSP) Training. IEEE Transactions on Software Engineering, Vol. 27, No. 5, May 2001, pp. 465-472.

Sherdil, K. & N. H. Madhavji (1996) Human-Oriented Improvement in the Software Process. In Proceedings of the 5th European Workshop on Software Process Technology, Nancy, France, October 1996.

Yourdon, E. (1996) Rise & Resurrection of the American Programmer Upper Saddle River: Prentice Hall, Inc. Chapter 5, Personal Software Practices.

Zhong, X., Madhavji, N. & El Emam, K. (2000) Critical Factors Affecting Personal Software Processes. IEEE Software, 17(6), p. 76-83.


[Software Process Collection]
[Process Education] [Bibliographies] [Standards] [Research] [Resources]


To CIS Department at UMass Dartmouth
To UMass Dartmouth

Comments should be sent to

Richard Upchurch (rupchurch@umassd.edu)
or
ciswebster@cismail.cis.umassd.edu
Computer and Information Science Department
University of Massachusetts Dartmouth
285 Old Westport Rd.
N. Dartmouth, MA 02747-2300
RUpchurch@umassd.edu

This document
Created: April 10, 1996
by RLU

Modified: September 21, 2001