Personal Software Process

From Wikipedia, the free encyclopedia

A subset of the Capability Maturity Model (CMM) processes, readily applicable to individual software engineers, the Personal Software Process was first defined in 1994 by Watts Humphrey in his book "A Discipline for Software Engineering", Addison Wesley Professional, Massachusetts, 1994, as part of the Software Process Program of the Software Engineering Institute at Carnegie Mellon. The PSP is a quantified method aimed to the improvement of the quality and productivity of the personal work of individual software engineers. "Personal Software Process" and "PSP" are registered service marks of the Carnegie Mellon University [1].

The PSP philosophy is largely based on reviews at every stage of the development cycle.

Before code is written, an outline of the desired behavior is then written. That description is 'implemented' in pseudocode, and then each line of pseudo code is implemented in the target language.

Only when the entire unit of code is completely written, analyzed and reviewed, is it compiled and run. It is expected to compile and run first time. If it does not, every error, including syntax errors, needs a root cause analysis. The philosophy is that by manually examining the code in such detail to exclude all detectable errors, a better design will be produced than would be produced by a code-compile-fix cycle.

PSP is like applying Six Sigma to Software Development. Mukesh Jain led large scale deployment of PSP/TSP in Microsoft India. Within 6 months, more than 2/3 of the projects shipped were without any defects and 94% of the projects were delivered on time.[citation needed]

Here is the presentation made at SEI's TSP User group conference which talks about how TSP was implemented, challenges faced and benefits realized thru TSP http://www.sei.cmu.edu/tsp/sym2006-presentations/deliver.pdf


[edit] The Personal Software Process consists of seven Competency Areas:
  • Competency Area 1: Foundational Knowledge
  • Competency Area 2: Basic PSP Concepts
  • Competency Area 3: Size Measuring and Estimating
  • Competency Area 4: Making and Tracking Project Plans
  • Competency Area 5: Planning and Tracking Software Quality
  • Competency Area 6: Software Design
  • Competency Area 7: Process Extensions and Customization

[edit] External links and other resources