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.