Title: Using A Defined and Measured Personal Software Process
1Using A Defined and Measured Personal Software
Process
- Watts S. Humphrey
- CS 5391
- Article 8
2Overview
- 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.
3The 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.
4Why 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.
5PSP 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.
6Learn from PSP practice
- Personal process principles
- Make accurate plan
- Determinate the steps to improve product quality
- Establish benchmarks to measure process
improvement - Good performance
7PSP process evolution
Cyclic process
PSP2.1 Design templates
PSP2 Code reviews Design reviews
Personal quality
PSP1.1 Task planning Schedule planning
PSP1 Size estimating Test report
Personal planning
PSP0.1 Coding standard Size measurement Process
improvement proposal
PSP0 Current progress Time and defect recording
Personal measurement
8Personal Measurement (PSP0)
- 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.
9Three Phrases Of PSP0
- Planning
- Development
- Design
- Code
- Compiler
- Test
- Verifying
10PSP0.1 PIP form
- Add three additional strategies to PSP0.
- Coding standard
- Size measurement
- 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.
11Personal Planning (PSP1)
- 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.
12PSP1.1 Early Planning
- Add two additional strategies to PSP1
- Schedule planning
- Task planning
- By early planning to gather enough data
- Experience statistical estimating method
13Personal Quality (PSP2)
- 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
14PSP2.1 Defect Metrics
- Add two strategies to PSP2
- Design specification
- 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
15Scaling Up (PSP3)
- The final step of PSP.
- Couple multiple PSP2.1 steps to scale up.
- Developing modules up to thousands LOC.
- Design-verification methods.
- Process-definition methods.
16PSP3 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
Compiler
Postmortem
Test
Integration System Test
Use Product
Reassess and Recycle
17CMM-Capability Maturity Model
- A framework.
- Organization-focused
- Process-improvement
- Facilitate good work.
- No guarantee
- Use effective personal practices
18CMM Level Diagram
- Level 5 - Optimizing
- Process change management
- Technology change management
- Defect prevention
Level 4 - Managed Software quality
management Quantitative process management
Level 3 - Defined Peer reviews Intergroup
coordination Software product engineering Integr
ated software management Training
program Organization process definition Organiza
tion process focus
Level 2 - Repeatable Software configuration
management Software quality assurance Software
subcontract management Software project tracking
and oversight Software project
planning Requirements management
Level 1 - Initial
19PSP/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
20PSP Methods in Practice
- Data gathering
- Size and resource estimating
- Defect management
- Yield management
- Cost of quality
- Productivity analysis
21Method - 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
22Method - Estimating Planning
- PROBE Proxy-Based Estimating method
- Proxies are objects and functions.
- Use data to judge a new programs 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.
23Estimating Planning (cont.)
- Planning is measured by CPI.
- CPI Cost-Performance Index
- The ratio of planned to actual development cost.
24Method - 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
25Method - 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.
26Managing 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 youre 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.
27Managing 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.
28Method Controlling COQ
- PSP introduces three Cost-Of-Quality measures.
- Appraisal costs
- time spent in design and code review
- Failure costs
- time spent in compiler and test
- Prevention cost
- time spent in preventing defects
29Controlling COQ (cont.)
- Appraisal-to-failure-ratio A/FR
- Appraisal COQ / Failure COQ
- A/FR measure the relative effort spent in defect
removal. - While the yield objective is to reduce the number
of defects found in compile and test, the A/FR
objective is to improve yield.
30Method 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
31Understanding Productivity (cont.)
- Two conclusions
- Inexperienced engineers have higher defects rate
and lower LOC/hour, the PSP will increase their
productivity. - 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.
32Other PSP Issues
- Design PSPs principal design focus is
preventing defects. - Scale-Up The PSPs objective is to extend highly
productivity to large programs with experiencing
small programs. - Process definition Learn how to define, plan,
and work new processes from PSP.
33Design Issue
- Use design-completion rather than specific design
methods. - Poor design is a source of significant errors.
- Establish review-able design to reduce errors.
34Design Issue (cont.)
- Design-completion Four Templates
- Internal-static.
- contains a static behavior of the object.
- External-static
- dynamic characteristics connecting its behavior.
- Internal-dynamic
- static relationship to other objects.
- External-dynamic
- The interaction with other objects.