Using A Defined and Measured Personal Software Process


































- Slides: 34

Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8

Overview • Improved software processes lead to improved product quality. • Individuals and small teams could apply process-improvement through PSP. • Benefits of fewer code defects, better planning and productivity.

The Personal Software Process • A measurement and analysis tool. • Help engineers – Understand their own skills. – Improve personal performance. – Improve organizational performance. • Apply for individuals and small teams. • Beyond Level 3 of CMM.

Why PSP for Software Process Ø Software Process - A sequence of steps required to develop or maintain software. • It is difficult for individuals or small terms apply Capability Maturity Model. • Practice before applying CMM.

PSP Overview • It uses a family of seven steps to develop module-sized programs. • Each step has a set of scripts, forms, and templates. • Each program has 50 to 5, 000 LOC.

Learn from PSP practice • Personal process principles • Make accurate plan • Determinate the steps to improve product quality • Establish benchmarks to measure process improvement • Good performance

PSP process evolution Cyclic process Personal quality Personal planning Personal measurement PSP 3 Cyclic Development PSP 2 Code reviews Design reviews PSP 1 Size estimating Test report PSP 0 Current progress Time and defect recording PSP 2. 1 Design templates PSP 1. 1 Task planning Schedule planning PSP 0. 1 Coding standard Size measurement Process improvement proposal

Personal Measurement (PSP 0) • The first step where PSP starts. • Engineers learn how to apply the PSP forms and scripts to their work. – measuring development time and defects. – gathering data and benchmarks.

Three Phrases Of PSP 0 1) Planning 2) Development § § Design Code Compiler Test 3) Verifying

PSP 0. 1 & PIP form Ø Add three additional strategies to PSP 0. 1) Coding standard 2) Size measurement 3) Process Improvement Proposal form Ø PIP form let engineers record problems, issues, and ideas to use later in improving their processes. Ø PIP form help engineers to gather and use process data.

Personal Planning (PSP 1) • PROBE method (for new program) – Estimate the size and development time – Based on personal data • PROBE uses linear regression to calculate estimating parameters. • PROBE generates prediction intervals to indicate size and time estimate quality.

PSP 1. 1 & Early Planning Ø Add two additional strategies to PSP 1 1) Schedule planning 2) Task planning • • By early planning to gather enough data Experience statistical estimating method

Personal Quality (PSP 2) • Focus on defect management • Implemented with defect data – Use checklists for design and code review – Focus on quality from the start – Efficiently review the defects in programs – Good skill to construct and modify checklists

PSP 2. 1 & Defect Metrics • Add two strategies to PSP 2 1) Design specification 2) Analysis techniques – Along with defect prevention, process analysis, and process benchmarks. – Measuring the time and the number of defects in each phase – Learn to evaluate and improve performance

Scaling Up (PSP 3) • • • The final step of PSP. Couple multiple PSP 2. 1 steps to scale up. Developing modules up to thousands LOC. Design-verification methods. Process-definition methods.

PSP 3 – Cyclic Process Specification Specify Cycle Requirements and Planning Detailed Design & Review High-level Design Test Development& Review High-level Design Review Implementation & Review Cyclic Development Postmortem Compiler Integration System Test Use Product Reassess and Recycle

CMM-Capability Maturity Model • A framework. – Organization-focused – Process-improvement • Facilitate good work. – No guarantee – Use effective personal practices

CMM – Level Diagram Level 5 - Optimizing *Process change management *Technology change management *Defect prevention Level 3 - Defined *Peer reviews Intergroup coordination *Software product engineering *Integrated software management Training program *Organization process definition *Organization process focus Level 1 - Initial Level 4 - Managed *Software quality management *Quantitative process management Level 2 - Repeatable Software configuration management Software quality assurance Software subcontract management *Software project tracking and oversight *Software project planning Requirements management

PSP/CMM Relationship • PSP – Bottom-Up approach – 12 of 18 (marked asterisk in diagram) – Most effective near or above CMM Level 2 – Size and exercise • CMM – Provide support environment – Orderly for superior work

PSP Methods in Practice • • • Data gathering Size and resource estimating Defect management Yield management Cost of quality Productivity analysis

Method - Gathering Data • With Goal-Question-Metric paradigm – Time spent – Defects found and removed – Product size in LOC • Measure above data in each phase – Provide information of process quality – Appraisal and failure cost of quality

Method - Estimating & Planning • PROBE – Proxy-Based Estimating method – Proxies are objects and functions. – Use data to judge a new program’s size and required development time. • The objective is to learn to make fair judges, even with considerable errors. • Estimating measure (%) – final size or develop time differs from the original ones.

Estimating & Planning (cont. ) • Planning is measured by CPI. – CPI ~ Cost-Performance Index – The ratio of planned to actual development cost.

Method - Managing Defects • In PSP, all errors are counted. • In order to understand the errors before adjust processes to find them. • Defect management – find & fix. – Defect type – Fix time (from detected to fixed and verified) – Defect description – Error was injected on what phase

Method - Managing Yield • Yield is the principal PSP quality measure. • Although quality involves more than defects, the PSP focuses on defect detection and prevention. • Total Process Yield – The percentage of defects found and fixed before compile and test the program.

Managing Yield (cont. ) • Main idea – Want fewer errors in test, find errors in code reviews. – If you find errors after test your program, you must review the code and fix them. – If you’re going to review the code anyway, why not review it before compiling? – At least, you save your compiling time. – Compiler serves as a quality check device.

Managing Yield (cont. ) • Why review code before compiling – Some syntax errors are hard to find – Some erroneous keystrokes are valid – Hard to find by compiler nor in test – More expensive to find them later on – Engineers get satisfaction from a quality job Example: while loop, for loop, if then clause.

Method – Controlling COQ PSP introduces three Cost-Of-Quality measures. (1) Appraisal costs Ø time spent in design and code review (2) Failure costs Ø time spent in compiler and test (3) Prevention cost Ø time spent in preventing defects

Controlling COQ (cont. ) • Appraisal-to-failure-ratio = A/FR Appraisal COQ / Failure COQ • A/FR measure the relative effort spent in defect removal. v While the yield objective is to reduce the number of defects found in compile and test, the A/FR objective is to improve yield.

Method – Understanding Productivity • Productivity relates to quality. – Productivity of a program with no test defects – Productivity of a program with many defects – Make no sense to compare those programs • Produce defect-free programs, the project will be more productive. Ø In this article, productivity = LOC / hour

Understanding Productivity (cont. ) q Two conclusions 1. Inexperienced engineers have higher defects rate and lower LOC/hour, the PSP will increase their productivity. 2. Experienced engineers start with low defect rate and higher LOC/hour, the PSP estimating and planning tasks drop their productivity. Get benefits from planning and quality management practice.

Other PSP Issues q Design: PSP’s principal design focus is preventing defects. q Scale-Up: The PSP’s objective is to extend highly productivity to large programs with experiencing small programs. q Process definition: Learn how to define, plan, and work new processes from PSP.

Design Issue • Use design-completion rather than specific design methods. • Poor design is a source of significant errors. • Establish review-able design to reduce errors.

Design Issue (cont. ) Ø Design-completion – Four Templates 1) Internal-static. § contains a static behavior of the object. 2) External-static § dynamic characteristics connecting its behavior. 3) Internal-dynamic § static relationship to other objects. 4) External-dynamic § The interaction with other objects.