process. PSP1, PSP1.1 (Introduces estimating and planning) Based upon the baseline data collected in PSP0 and PSP0.1, the engineer estimates how large a new program will be and prepares a test report (PSP1). Accumulated data from previous projects is used to estimate the total time. Each new project will record the actual time spent. This information is used for task and schedule planning and estimation (PSP1.1). PSP2, PSP2.1 (Introduces quality management and design) PSP2 adds two new phases: design review and code review. Defect prevention and removal of them are the focus at the PSP2. Engineers learn to evaluate and improve their process by measuring how long tasks take and the number of defects they inject and remove in each phase of development. Engineers construct and use checklists for design and code reviews. PSP2.1 introduces design specification and analysis techniques (PSP3 is a legacy level that has been superseded by TSP.) The importance of data One of the core aspects of the PSP is using historical data to analyze and improve process performance. PSP data collection is supported by four main elements: Scripts Measures Standards Forms The PSP scripts provide expert-level guidance to following the process steps and they provide a framework for applying the PSP measures. The PSP has four core measures: Size – the size measure for a product part, such as lines of code (LOC). Effort – the time required to complete a task, usually recorded in minutes. Quality – the number of defects in the product. Schedule – a measure of project progression, tracked against planned and actual completion dates. Applying standards to the process can ensure the data is precise and consistent. Data is logged in forms, normally using a PSP software tool. The SEI has developed a PSP tool and there are also open source options available, such as Process Dashboard. The key data collected in the PSP tool are time, defect, and size data – the time spent in each phase; when and where defects were injected, found, and fixed; and the size of the product parts. Software developers use many other measures that are derived from these three basic measures to understand and improve their performance. Derived measures include: estimation accuracy (size/time) prediction intervals (size/time) time in phase distribution defect injection distribution defect removal distribution productivity reuse percentage cost performance index planned value earned value predicted earned value defect density defect density