The Personal Software Process (PSP) is a process for software development that aims to reduce defects in software and increase the accuracy of estimations of development duration.
The following process is applied to all software development tasks. A task is here defined as a single iteration through this process; the development of most software will comprise a large number of tasks. If a problem description is very small or trivial, a number of different problems can be worked on together as one task.
The input to a task is the problem description.
- Develop a Requirements Statement based on the problem description
- Write a Task Summary
- Estimate time for each of the phases (including this one), based if possible on previous tasks
- Produce and document a design that solves the problem
- Review the design
- Code the design
- Review the code
- Run the program
- Test the program
- Write a Task Report
- Compare estimated times with actual
- Record and review new duration and defect rates
At every stage apart from the first, any defects discovered must be recorded in the Defect Log, and then fixed.
|↓ Phase||Document →||Requirements Statement||Task Summary||Time Log||Defect Log||Design||Task Report|
The following artifacts (or documents, records, etc.) are produced during a PSP process. The images link to PDF versions of the forms.
The design documentation should take whatever form is appropriate, be it text, diagrams, and/or technical drawings.