To frame our discussion, consider:
What are the pros and cons over a top-down versus bottom-up process improvement strategy?
What are the perceived benefits of the personal software process as it relates to an organizations improvement program?
What are the claimed advantages/disadvantages to adopting the personal software process over CMM?
"We believe that organization is most important and that methodology is more important than technology in determining overall process maturity (a fool with a tool is still a fool)." Ref
"software community pays too much attention to the technological aspects of software development at the expense of these other contexts." (organization and social) Ref
People are a cost to be minimized and must be managed, impersonally, through the imposition of systems and routines.
People are a source of noise. Reduce the noise by regimenting people making them behave similarly.
Activity is at this level therefore the people understand their world intimately and are in a better position to institute change.
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 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.
Design defect prevention
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."
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.
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.
The individuals are introduced to and practice personal design and code reviews. These reviews are guided by checklists provided.
Go To Lecture [Outline] [Overview]
Go To [Course Outline]
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.
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.
Haase, V., R. Messnarz, G. Koch, H. Kugler, & P. Decrinis (July 1994) Bootstrap: Fine-Tuning Process Assessment. IEEE Software. p. 25-35
Thomas, M. & F. McGarry (July 1994) Top-Down vs. Bottom-up Process Improvement. IEEE Software. p. 12-13
Perry, D. E, N. A. Staudenmayer, & L. G. Votta (July 1994) People, Organizations, and Process Improvement. IEEE Software. p. 36-45