Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

114
Portugal Quality Management and Process Improvement with the Team Software Process João Pascoal Faria Assistant Professor FEUP 2012-07-06

description

Tutorial: Quality Management and Process Improvement with the Team Software Process - João Pascoal Faria (FEUP)

Transcript of Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

Page 1: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

Portugal

Quality Management and Process Improvement with

the Team Software Process

João Pascoal FariaAssistant Professor

FEUP

2012-07-06

Page 2: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

22

Questions

1. Do you have problems/concerns with software quality?

2. Do you have problems/concerns with cost of quality?

3. Do you know your current quality and cost of quality levels?

4. How do they compare with industry benchmarks?

5. How can you improve quality and reduce the cost of quality?

Page 3: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

33

Agenda

Motivation

TSP Performance Results

Factor I – Bottom-Up Performance Improvement

Factor II - Personal Responsibility

Factor III – Feedback Loops for Continual Improvement

Factor IV – Cost-Effective Defect Removal Methods

Factor V - Measurement and Quantitative Methods

Conclusions

Page 4: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

44

Motivation

Page 5: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

55

Top 10 software engineering trends

1. Increasing emphasis on rapid development and adaptability;

2. Increasing software criticality and need for assurance;

Barry Boehm 2011

Page 6: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

66

Increasing software criticality and need for assurance

“Although people’s, systems’, and organizations’ dependency on software is becoming increasingly critical, dependability is generally not the top priority for software producers.”

 

 

Barry Boehm 2011

Page 7: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

77

Increasing software criticality and need for assurance

“Although people’s, systems’, and organizations’ dependency on software is becoming increasingly critical, dependability is generally not the top priority for software producers.”

“(In fact) the IT industry spends the bulk of its resources, both financial and human, on rapidly bringing products to market.”

 

Barry Boehm 2011

Page 8: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

88

Increasing software criticality and need for assurance

“Although people’s, systems’, and organizations’ dependency on software is becoming increasingly critical, dependability is generally not the top priority for software producers.”

“(In fact) the IT industry spends the bulk of its resources, both financial and human, on rapidly bringing products to market.”

“This situation will likely continue until a major software-induced systems catastrophe similar in impact on world consciousness to the 9/11 World Trade Center catastrophe stimulates action toward establishing accountability for software dependability.”

Barry Boehm 2011

Page 9: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

99

Why should quality be the top priority?

 

 

 

 

 

 

 

 

 

 

Page 10: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

1010

Why should quality be the top priority?

Increasing dependency on software systems

 

 

 

 

 

 

 

 

 

Page 11: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

1111

Why should quality be the top priority?

Increasing dependency on software systems

– 80%+ of functionality of modern aircrafts provided by sw [Humphrey, 2002]

 

 

 

 

 

 

 

 

Page 12: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

1212

Why should quality be the top priority?

Increasing dependency on software systems

– 80%+ of functionality of modern aircrafts provided by sw [Humphrey, 2002]

Increasing criticality of functions provided by software

 

 

 

 

 

 

 

Page 13: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

1313

Why should quality be the top priority?

Increasing dependency on software systems

– 80%+ of functionality of modern aircrafts provided by sw [Humphrey, 2002]

Increasing criticality of functions provided by software

– e-banking, aircraft control software, medical device software, …

 

 

 

 

 

 

Page 14: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

1414

Why should quality be the top priority?

Increasing dependency on software systems

– 80%+ of functionality of modern aircrafts provided by sw [Humphrey, 2002]

Increasing criticality of functions provided by software

– e-banking, aircraft control software, medical device software, …

Software defects are a primary cause of security vulnerabilities

 

 

 

 

 

Page 15: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

1515

Why should quality be the top priority?

Increasing dependency on software systems

– 80%+ of functionality of modern aircrafts provided by sw [Humphrey, 2002]

Increasing criticality of functions provided by software

– e-banking, aircraft control software, medical device software, …

Software defects are a primary cause of security vulnerabilities

– Buffer overflow, SQL injection, etc.

 

 

 

 

Page 16: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

1616

Why should quality be the top priority?

Increasing dependency on software systems

– 80%+ of functionality of modern aircrafts provided by sw [Humphrey, 2002]

Increasing criticality of functions provided by software

– e-banking, aircraft control software, medical device software, …

Software defects are a primary cause of security vulnerabilities

– Buffer overflow, SQL injection, etc.

Huge economic impact of software errors

 

 

 

Page 17: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

1717

Why should quality be the top priority?

Increasing dependency on software systems

– 80%+ of functionality of modern aircrafts provided by sw [Humphrey, 2002]

Increasing criticality of functions provided by software

– e-banking, aircraft control software, medical device software, …

Software defects are a primary cause of security vulnerabilities

– Buffer overflow, SQL injection, etc.

Huge economic impact of software errors

– Direct costs of sw errors represent 0,6% of USA’s GNP [NIST, 2002]

 

 

Page 18: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

1818

Why should quality be the top priority?

Increasing dependency on software systems

– 80%+ of functionality of modern aircrafts provided by sw [Humphrey, 2002]

Increasing criticality of functions provided by software

– e-banking, aircraft control software, medical device software, …

Software defects are a primary cause of security vulnerabilities

– Buffer overflow, SQL injection, etc.

Huge economic impact of software errors

– Direct costs of sw errors represent 0,6% of USA’s GNP [NIST, 2002]

Quality work saves time and money

 

Page 19: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

1919

Why should quality be the top priority?

Increasing dependency on software systems

– 80%+ of functionality of modern aircrafts provided by sw [Humphrey, 2002]

Increasing criticality of functions provided by software

– e-banking, aircraft control software, medical device software, …

Software defects are a primary cause of security vulnerabilities

– Buffer overflow, SQL injection, etc.

Huge economic impact of software errors

– Direct costs of sw errors represent 0,6% of USA’s GNP [NIST, 2002]

Quality work saves time and money

– Defect prevention and early defect removal reduce rework costs

Page 20: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

2020

Quality economics: Cost of Quality (COQ)

 

       

     

   

     

Page 21: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

2121

Quality economics: Cost of Quality (COQ)

For producers, the goal is to reduce the cost of quality (COQ)

       

     

   

     

Page 22: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

2222

Quality economics: Cost of Quality (COQ)

For producers, the goal is to reduce the cost of quality (COQ)

– Prevention costs      

     

   

     

Page 23: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

2323

Quality economics: Cost of Quality (COQ)

For producers, the goal is to reduce the cost of quality (COQ)

– Prevention costs • identifying and resolving defect causes • formal spec, prototyping, and design work• process analysis and improvement

     

   

     

Page 24: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

2424

Quality economics: Cost of Quality (COQ)

For producers, the goal is to reduce the cost of quality (COQ)

– Prevention costs • identifying and resolving defect causes • formal spec, prototyping, and design work• process analysis and improvement

– Appraisal (defect detection) costs   

   

     

Page 25: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

2525

Quality economics: Cost of Quality (COQ)

For producers, the goal is to reduce the cost of quality (COQ)

– Prevention costs • identifying and resolving defect causes • formal spec, prototyping, and design work• process analysis and improvement

– Appraisal (defect detection) costs• reviews and inspections• test development and execution (once)

   

     

Page 26: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

2626

Quality economics: Cost of Quality (COQ)

For producers, the goal is to reduce the cost of quality (COQ)

– Prevention costs • identifying and resolving defect causes • formal spec, prototyping, and design work• process analysis and improvement

– Appraisal (defect detection) costs• reviews and inspections• test development and execution (once)

– Internal failure costs 

     

Page 27: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

2727

Quality economics: Cost of Quality (COQ)

For producers, the goal is to reduce the cost of quality (COQ)

– Prevention costs • identifying and resolving defect causes • formal spec, prototyping, and design work• process analysis and improvement

– Appraisal (defect detection) costs• reviews and inspections• test development and execution (once)

– Internal failure costs• repair & rework before delivery

– External failure costs• repair & rework plus any scrap after delivery• law suites, loss of customers

Page 28: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

2828

Example: Security vulnerabilities

Page 29: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

2929

Example: Security vulnerabilities

Page 30: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

3030

Example: Security vulnerabilities

What happened

?

Page 31: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

3131

Example: Security vulnerabilities

What happened

?What is the

cause?

Page 32: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

3232

Example: Security vulnerabilities

What happened

?What is the

cause?

5 min

Page 33: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

3333

TSP Performance Results

Page 34: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

3434

Better product quality (industrial results)

7,5

6,24

4,73

2,28

1,05

0,06

0

1

2

3

4

5

6

7

8

Def

ecst

/KL

OC

CMM L1 CMM L2 CMM L3 CMM L4 CMM L5 TSP

Average Defect Density of Delivered Software

TSP impact study 2003, 20 projects in 13 organizations, several maturity levels

Capers Jones, 2000

Page 35: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

3535

Mea

n N

umbe

r of

Com

pile

and

Tes

t D

efec

ts P

er K

LOC

111098765432100

10

20

30

40

50

60

70

80

90

100

110

120

Program Number

PSP0 PSP1 PSP2

Defects

Better product quality (training results)

PSP Training results, SEI, 298 developers

1/3 with 0 defects

Page 36: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

3636

Reduced security vulnerabilities (Microsoft)

TSP + secure coding standards, security design patterns, static analysis tools, secure code inspections and reviews

8-person software development team

Created 30 thousand lines of new and modified code in 7 months

Source: TSP Secure, Noopur Davis et all, TSP Symposium 2009, New Orleans

Page 37: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

3737

Better, faster, cheaper (Microsoft IT)

Source: The TSP Story @ Microsoft IT, TSP Symposium, Phoenix, 2008

4 releases with TSP

compared to previous

releases without

TSP

TSP versus non-TSP

projects

Page 38: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

3838

Reduced cost of quality (Adobe)

J.Sartain, Senior Director, Quality,

Adobe 2009

Page 39: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

3939

Factor I – Bottom-Up Performance Improvement

Page 40: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

4040

Build high-performance teams from the bottom-up

TeamMemberSkills

TeamBuilding

TeamManagement

Personal Software Process

Team Software Process

Instance of high-maturity practices for teams

Instance of high-maturity practices for individuals

http://www.sei.cmu.edu/tsp/

Page 41: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

4141

Build high-performance teams from the bottom-up

TeamMemberSkills

TeamBuilding

TeamManagement

Process disciplinePerformance measuresEstimating & planning skillsQuality management skills

Personal Software Process

Team Software Process

Instance of high-maturity practices for teams

Instance of high-maturity practices for individuals

http://www.sei.cmu.edu/tsp/

Page 42: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

4242

Build high-performance teams from the bottom-up

TeamMemberSkills

TeamBuilding

TeamManagement

Process disciplinePerformance measuresEstimating & planning skillsQuality management skills

Goal settingRole assignmentTailored team processDetailed balanced plans

Personal Software Process

Team Software Process

Instance of high-maturity practices for teams

Instance of high-maturity practices for individuals

http://www.sei.cmu.edu/tsp/

Page 43: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

4343

Build high-performance teams from the bottom-up

TeamMemberSkills

TeamBuilding

TeamManagement

Process disciplinePerformance measuresEstimating & planning skillsQuality management skills

Goal settingRole assignmentTailored team processDetailed balanced plans

Team communicationTeam coordinationProject trackingRisk analysis

Personal Software Process

Team Software Process

Instance of high-maturity practices for teams

Instance of high-maturity practices for individuals

http://www.sei.cmu.edu/tsp/

Page 44: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

4444

Build personal performance from the bottom-up

Personal practices are introduced stepwise, through a sequence of small projects in a training environment

– The objective is to convince people by seeing their own performance improving as they practice

Team practices are introduced in real projects with the help of a coach

Establish a measured performance baseline

Size and effort estimation

Defect & yield management; design practices

Page 45: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

4545

Example: Personal PSP training experience

 

 

 

 

       

Page 46: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

4646

Example: Personal PSP training experience

Goal: achieve 0 defects in unit testing and near 0% time estimation error, with the same productivity as before

 

 

 

       

Page 47: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

4747

Example: Personal PSP training experience

Goal: achieve 0 defects in unit testing and near 0% time estimation error, with the same productivity as before

PSP Fundamentals: Steady reduction of time estimation error, from 70% to 1% in 4 projects/days

 

 

       

Page 48: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

4848

Example: Personal PSP training experience

Goal: achieve 0 defects in unit testing and near 0% time estimation error, with the same productivity as before

PSP Fundamentals: Steady reduction of time estimation error, from 70% to 1% in 4 projects/days

PSP Advanced: Initial decrease of productivity because of the introduction of design documentation templates

 

       

Page 49: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

4949

Example: Personal PSP training experience

Goal: achieve 0 defects in unit testing and near 0% time estimation error, with the same productivity as before

PSP Fundamentals: Steady reduction of time estimation error, from 70% to 1% in 4 projects/days

PSP Advanced: Initial decrease of productivity because of the introduction of design documentation templates

8th project: compute the minimum difference between two Java source files, in lines added, delete and modified, ignoring comments and blank lines (considering that deletions have null cost)

       

Page 50: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

5050

Example: Personal PSP training experience

Goal: achieve 0 defects in unit testing and near 0% time estimation error, with the same productivity as before

PSP Fundamentals: Steady reduction of time estimation error, from 70% to 1% in 4 projects/days

PSP Advanced: Initial decrease of productivity because of the introduction of design documentation templates

8th project: compute the minimum difference between two Java source files, in lines added, delete and modified, ignoring comments and blank lines (considering that deletions have null cost)

– Almost recovered the initial productivity     

Page 51: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

5151

Example: Personal PSP training experience

Goal: achieve 0 defects in unit testing and near 0% time estimation error, with the same productivity as before

PSP Fundamentals: Steady reduction of time estimation error, from 70% to 1% in 4 projects/days

PSP Advanced: Initial decrease of productivity because of the introduction of design documentation templates

8th project: compute the minimum difference between two Java source files, in lines added, delete and modified, ignoring comments and blank lines (considering that deletions have null cost)

– Almost recovered the initial productivity– 5% effort estimation error   

Page 52: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

5252

Example: Personal PSP training experience

Goal: achieve 0 defects in unit testing and near 0% time estimation error, with the same productivity as before

PSP Fundamentals: Steady reduction of time estimation error, from 70% to 1% in 4 projects/days

PSP Advanced: Initial decrease of productivity because of the introduction of design documentation templates

8th project: compute the minimum difference between two Java source files, in lines added, delete and modified, ignoring comments and blank lines (considering that deletions have null cost)

– Almost recovered the initial productivity– 5% effort estimation error– 2 defects in unit testing, caused by requirements problems! 

Page 53: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

5353

Example: Personal PSP training experience

Goal: achieve 0 defects in unit testing and near 0% time estimation error, with the same productivity as before

PSP Fundamentals: Steady reduction of time estimation error, from 70% to 1% in 4 projects/days

PSP Advanced: Initial decrease of productivity because of the introduction of design documentation templates

8th project: compute the minimum difference between two Java source files, in lines added, delete and modified, ignoring comments and blank lines (considering that deletions have null cost)

– Almost recovered the initial productivity– 5% effort estimation error– 2 defects in unit testing, caused by requirements problems!– Next step: improve requirements analysis!

Page 54: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

5454

Factor II – Personal Responsibility

Page 55: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

5555

Personal responsibility: project management

There is only one way to manage knowledge workers: they must manage themselves [W. Humphrey]

Page 56: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

5656

Personal responsibility: project management

There is only one way to manage knowledge workers: they must manage themselves [W. Humphrey]

Traditional teamThe leader plans, directs,

and tracks the team’s work.

Team Leader

Page 57: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

5757

Personal responsibility: project management

There is only one way to manage knowledge workers: they must manage themselves [W. Humphrey]

Self-directed teamAll team members participate in planning, managing, and tracking their own work.

TSP Coach

Team Leader

Traditional teamThe leader plans, directs,

and tracks the team’s work.

Team Leader

Page 58: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

5858

Personal responsibility: project management

There is only one way to manage knowledge workers: they must manage themselves [W. Humphrey]

Self-directed teamAll team members participate in planning, managing, and tracking their own work.

TSP Coach

Team Leader

Traditional teamThe leader plans, directs,

and tracks the team’s work.

Team Leader

Planning Manager

Process Manager

Quality Manager

Support Manager

Test Manager

Implementation Manager

Design Manager

Costumer Interface Manager

Page 59: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

5959

Personal responsibility: project management

There is only one way to manage knowledge workers: they must manage themselves [W. Humphrey]

Self-directed teamAll team members participate in planning, managing, and tracking their own work.

TSP Coach

Team Leader

Traditional teamThe leader plans, directs,

and tracks the team’s work.

Team Leader

Planning Manager

Process Manager

Quality Manager

Support Manager

Test Manager

Implementation Manager

Design Manager

Costumer Interface Manager

OwnershipCommitmentMotivation

Performance

Page 60: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

6060

Personal responsibility: quality management

The only way to build high-quality products in a cost-effective way, is by having developers being personally responsible for the quality of their products.

Since defects can best be managed where they are injected,developers should

– remove their own defects– determine the causes of their defects– learn to prevent those defects

Page 61: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

6161

Factor III – Feadback Loops for Continual Improvement

Page 62: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

6262

Feedback loops: project lifecycle

Developmphaseor cyclephase

or cycle

Phase or cycleRetrospective

Developmentphase

or cycle

Launch

Re-launch

ProjectRetrospective

Lessons, new goals, new requirements, new risks, etc.

Business and technical goals Estimates, plans,

process, commitment

Work products, status, metrics, results

Weekly team meetings

Release planning

Iteration planning

Status

Updated status and plans

Page 63: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

6363

Feedback loops: estimating & planning frmwk

Estimate resources (effort)

Define requirements

Produce conceptual

design (PBS)Estimate

size

Produce task list, distribute effort

Produce schedule

Develop product

Size database

Productivity database

Resources available

Size, resource, schedule data

Process analysis

Product delivery

Tracking reports

PROBE method (PROxy Based Estimating)

Hist. distrib., Process def.

Costumer need

Items

Tasks

Costumer

Management

Page 64: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

6464

early defect detection &

removal

Feedback loops: quality framework

Development (and defect injection)

phase

Defect Data

Defect removal phase

Checklists, Test Criteria, …

Process/Data analysis

defect prevention

Subsequent phases late defect

detection & removal

Scripts, Standards, Awareness

Learn from past errors, because we tend to repeat the same errors!

Page 65: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

6565

Feedback loops: coaching (& leadership)

A coach helps improving individual and team performance through a continuous coaching/learning cycle

3. ConsciousCompetence

2. Conscious Incompetence

1. UnconsciousIncompetence

External Independent

voice

Guidance and

Feedback

4. UnconsciousCompetence

Next Stag

e

Practice

Page 66: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

6666

Example: Historical defect data analysis

Page 67: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

6767

Example: Historical defect data analysis

Page 68: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

6868

Example: Historical defect data analysis

Defect Types10 - Documentation60 – Checking80 – Function40 - Assignment70 - Data50 - Interface30 - Build100 - Environment

Page 69: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

6969

Example: Historical defect data analysis

Defect Types10 - Documentation60 – Checking80 – Function40 - Assignment70 - Data50 - Interface30 - Build100 - Environment

Most frequent

Page 70: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

7070

Example: Historical defect data analysis

Defect Types10 - Documentation60 – Checking80 – Function40 - Assignment70 - Data50 - Interface30 - Build100 - Environment

Most frequent Most expensive*

Page 71: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

7171

Example: Historical defect data analysis

Defect Types10 - Documentation60 – Checking80 – Function40 - Assignment70 - Data50 - Interface30 - Build100 - Environment

Most frequent Most expensive*

(*) further analyses showed that they were mainly injected in design and removed in test.

Page 72: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

7272

Example: Historical defect data analysis

Defect Types10 - Documentation60 – Checking80 – Function40 - Assignment70 - Data50 - Interface30 - Build100 - Environment

Most frequent Most expensive*

Þ Improve design review checklistsÞ Improve design standards and scriptsÞ Produce test spec after design spec and before design

reviewÞ Minimize documentation and use spell checker

(*) further analyses showed that they were mainly injected in design and removed in test.

Page 73: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

7373

Factor IV - Cost-Effective Defect Removal Methods

Page 74: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

7474

Defect removal methods (V-Model)

Requirements & ST Spec

REQ TeamInspection

High-LevelDesign

& IT Spec

Detailed Design

& UT Spec

DLD Personal Review

DLD TeamInspection

CodeCode

PersonalReview

Unit Test(UT)

Code TeamInspection

SystemTest (ST)

IntegrationTest (IT)

Compile

HLD TeamInspection

Page 75: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

7575

Efficiency of defect removal methods

Even experienced developers introduce ~100 defects/KLOC

Such high-number of defects must be removed using the most cost-effective methods, such as personal reviews and team inspections(Continue to use unit, integration and system testing)

Source: Jim Sartain, Adobe,2009

Minutes to Find and Resolve a Defect by Discovery Activity

Page 76: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

7676

Use checklists derived from historical defect data

   

   

   

 

 

 

 

Peter Pronovost (Dr. Checklist)

“Most influential people of 2008” (Time magazin)

http://www.youtube.com/watch?v=YKm8NUmPg58

Page 77: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

7777

Use checklists derived from historical defect data

Make the review more effective 

   

   

 

 

 

 

Peter Pronovost (Dr. Checklist)

“Most influential people of 2008” (Time magazin)

http://www.youtube.com/watch?v=YKm8NUmPg58

Page 78: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

7878

Use checklists derived from historical defect data

Make the review more effective– focus the attention on most frequent problems

   

   

 

 

 

 

Peter Pronovost (Dr. Checklist)

“Most influential people of 2008” (Time magazin)

http://www.youtube.com/watch?v=YKm8NUmPg58

Page 79: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

7979

Use checklists derived from historical defect data

Make the review more effective– focus the attention on most frequent problems

Make the review more efficient 

   

 

 

 

 

Peter Pronovost (Dr. Checklist)

“Most influential people of 2008” (Time magazin)

http://www.youtube.com/watch?v=YKm8NUmPg58

Page 80: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

8080

Use checklists derived from historical defect data

Make the review more effective– focus the attention on most frequent problems

Make the review more efficient– don’t waste time looking for too rare problems

   

 

 

 

 

Peter Pronovost (Dr. Checklist)

“Most influential people of 2008” (Time magazin)

http://www.youtube.com/watch?v=YKm8NUmPg58

Page 81: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

8181

Use checklists derived from historical defect data

Make the review more effective– focus the attention on most frequent problems

Make the review more efficient– don’t waste time looking for too rare problems

Reduce the risk of missing critical issues 

 

 

 

 

Peter Pronovost (Dr. Checklist)

“Most influential people of 2008” (Time magazin)

http://www.youtube.com/watch?v=YKm8NUmPg58

Page 82: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

8282

Use checklists derived from historical defect data

Make the review more effective– focus the attention on most frequent problems

Make the review more efficient– don’t waste time looking for too rare problems

Reduce the risk of missing critical issues– even experts benefit from checklists

 

 

 

 

Peter Pronovost (Dr. Checklist)

“Most influential people of 2008” (Time magazin)

http://www.youtube.com/watch?v=YKm8NUmPg58

Page 83: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

8383

Use checklists derived from historical defect data

Make the review more effective– focus the attention on most frequent problems

Make the review more efficient– don’t waste time looking for too rare problems

Reduce the risk of missing critical issues– even experts benefit from checklists

But:

 

 

 

Peter Pronovost (Dr. Checklist)

“Most influential people of 2008” (Time magazin)

http://www.youtube.com/watch?v=YKm8NUmPg58

Page 84: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

8484

Use checklists derived from historical defect data

Make the review more effective– focus the attention on most frequent problems

Make the review more efficient– don’t waste time looking for too rare problems

Reduce the risk of missing critical issues– even experts benefit from checklists

But:

– keep it simple and short

 

 

Peter Pronovost (Dr. Checklist)

“Most influential people of 2008” (Time magazin)

http://www.youtube.com/watch?v=YKm8NUmPg58

Page 85: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

8585

Use checklists derived from historical defect data

Make the review more effective– focus the attention on most frequent problems

Make the review more efficient– don’t waste time looking for too rare problems

Reduce the risk of missing critical issues– even experts benefit from checklists

But:

– keep it simple and short

– keep it specific for the technology, language, etc.

 

Peter Pronovost (Dr. Checklist)

“Most influential people of 2008” (Time magazin)

http://www.youtube.com/watch?v=YKm8NUmPg58

Page 86: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

8686

Use checklists derived from historical defect data

Make the review more effective– focus the attention on most frequent problems

Make the review more efficient– don’t waste time looking for too rare problems

Reduce the risk of missing critical issues– even experts benefit from checklists

But:

– keep it simple and short

– keep it specific for the technology, language, etc.

– combine with other analysis techniques

Peter Pronovost (Dr. Checklist)

“Most influential people of 2008” (Time magazin)

http://www.youtube.com/watch?v=YKm8NUmPg58

Page 87: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

8787

Take enough review time

The review rate (size reviewed per hour) is one of the best leading indicators of review effectiveness (review yield)

Recommended code review rate: about 200LOC/hour

Revewing too slow or too fast is a waste of time

Also recommended to review in a quiet environmenttake a break between producing and reviewing

Page 88: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

8888

Use multiple inspectors to improve yield(yield = % of defects detected)

(source: Introduction to the Team Software Process, Watts Humphrey)

Page 89: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

8989

Estimate defects remaining with the capture-recapture method

Based on the degree of overlapping between different reviewers

Found by A = 8

Found by B = 6

Common defects: C = A B = 4

Total defects:T A*B/C = 12

Remaining defects:R A*B/C-(A+B-C) = 2

http://en.wikipedia.org/wiki/Mark_and_recapture

Page 90: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

9090

Measure the review process and use data to improve the reviews

Effort(review, rework)

Size(of artifact reviewed)

Defects found(number, type, description, severity)

Escaped defects(collected later)

Page 91: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

9191

Measure the review process and use data to improve the reviews

Effort(review, rework)

Size(of artifact reviewed)

Defects found(number, type, description, severity)

Defect removal rate (indicator of review efficiency)

Escaped defects(collected later)

Page 92: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

9292

Measure the review process and use data to improve the reviews

Effort(review, rework)

Size(of artifact reviewed)

Defects found(number, type, description, severity)

Defect density (indicator of product quality)

Defect removal rate (indicator of review efficiency)

Escaped defects(collected later)

Page 93: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

9393

Measure the review process and use data to improve the reviews

Effort(review, rework)

Size(of artifact reviewed)

Defects found(number, type, description, severity)

Defect density (indicator of product quality)

Review rate (leading indicator of review effectiveness)

Defect removal rate (indicator of review efficiency)

Escaped defects(collected later)

Page 94: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

9494

Measure the review process and use data to improve the reviews

Effort(review, rework)

Size(of artifact reviewed)

Defects found(number, type, description, severity)

Defect density (indicator of product quality)

Review rate (leading indicator of review effectiveness)

Defect removal rate (indicator of review efficiency)

Escaped defects(collected later)

Review yield(lagging indicator of review effectiveness)

Page 95: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

9595

Factor V - Measurement and Quantitative Methods

Page 96: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

9696

The need for measurement

Page 97: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

9797

The need for measurement

W. Edwards Deming

In God we trust, all others

bring data.

Page 98: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

9898

The need for measurement

W. Edwards Deming

In God we trust, all others

bring data.

You can't manage

and improve what you

don't measure.

Tom DeMarco

Page 99: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

9999

The need for measurement

W. Edwards Deming

In God we trust, all others

bring data.

You can't manage

and improve what you

don't measure.

Tom DeMarco Watts Humphrey

When performance is unmeasured or improperly measured, the results are often disappointing and can even be disastrous. Unless your measures cover all important aspects, you will likely motivate counterproductive action.

Page 100: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

100100

Base measures

In the TSP, 4 core measures are the basis for quantitative project management, quality management, and process improvement at the personal, team and organization level.

Size

ScheduleQuality

Effort Actual and Planned

Page 101: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

101101

Defect tracking

Defects are the measure of quality in the TSP.

Any change to an interim or final work product, made to ensure proper subsequent utilization is considered a defect.

Page 102: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

102102

Quality planning: Defect injection and removal plan

• Yields (% of defects removed) based on historical data or benchmarks• Defects injected based on historical defects injected per size unit

Removed

Page 103: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

103103

Quality tracking: Defect removal profile

The defect removal profile shows– plan and actual defects removed by phase– early vs. late defect removal plan

Defects Removed by Phase for Assembly SYSTEM

0.0

100.0

200.0

300.0

400.0

500.0

600.0

700.0

800.0

900.0

Phase

Defe

cts

Rem

oved

by P

hase

Plan

Actual

Page 104: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

104104

Quality tracking: Defect removal profile

The defect removal profile shows– plan and actual defects removed by phase– early vs. late defect removal plan

Defects Removed by Phase for Assembly SYSTEM

0.0

100.0

200.0

300.0

400.0

500.0

600.0

700.0

800.0

900.0

Phase

Defe

cts

Rem

oved

by P

hase

Plan

Actual

Typical software project

Page 105: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

105105

Quality Tracking: Quality profile

It examines criteria that are effective predictors of system test and post-release component quality

Quality Profile for Assembly Common Query Changes (BE)

0

0.2

0.4

0.6

0.8

1Design/Code Time

Code Review Time

Compile Defects/KLOCUnit Test Ddefects/KLOC

Design Review Time

Plan

Actual

Quality Profile for Assembly Common Query Changes (BE)

0

0.2

0.4

0.6

0.8

1Design/Code Time

Code Review Time

Compile Defects/KLOCUnit Test Ddefects/KLOC

Design Review Time

Plan

Actual

1

10

½ design time ½ coding time

4

Design Quality

Design Review Quality

Code Review Quality

Code QualityProgram Quality

Page 106: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

106106

Conclusions: TSP Quality principles

 

 

 

 

 

Page 107: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

107107

Conclusions: TSP Quality principles

To produce quality products, developers must feel personally responsible for the quality of their products. Superior products are not produced by accident; developers must strive to do quality work.

 

 

 

 

Page 108: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

108108

Conclusions: TSP Quality principles

To produce quality products, developers must feel personally responsible for the quality of their products. Superior products are not produced by accident; developers must strive to do quality work.

It costs less to find and fix defects earlier in a process than later.

 

 

 

Page 109: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

109109

Conclusions: TSP Quality principles

To produce quality products, developers must feel personally responsible for the quality of their products. Superior products are not produced by accident; developers must strive to do quality work.

It costs less to find and fix defects earlier in a process than later.

It is more efficient to prevent defects than to find and fix them.

 

 

Page 110: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

110110

Conclusions: TSP Quality principles

To produce quality products, developers must feel personally responsible for the quality of their products. Superior products are not produced by accident; developers must strive to do quality work.

It costs less to find and fix defects earlier in a process than later.

It is more efficient to prevent defects than to find and fix them.

The right way is always the fastest and cheapest way to do a job.

 

Page 111: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

111111

Conclusions: TSP Quality principles

To produce quality products, developers must feel personally responsible for the quality of their products. Superior products are not produced by accident; developers must strive to do quality work.

It costs less to find and fix defects earlier in a process than later.

It is more efficient to prevent defects than to find and fix them.

The right way is always the fastest and cheapest way to do a job.

To maximize productivity, focus on quality first.

Page 112: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

112112

Conclusions

The TSP approach for producing high-quality software in a cost-effective way is based on learning from your errors and using cost-effective defect removal methods

Data shows that TSP teams produce software with very low defect density and reduced cost of quality

If you have the need to develop top quality software, you should take a look at TSP principles and practices

Page 113: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

113113

References

Software Assessments, Benchmarks, and Best Practices, Capers Jones, Addison-Wesley, 2000

Winning with Software, Watts Humphrey, 2002

Introduction to the Team Software Process, Watts S. Humphrey, 2000

TSP: Coaching Development Teams, Watts S. Humphrey, Addison-Wesley, 2006

PSP: A Self-Improvement Process for Software Engineers, Watts S. Humphrey, 2005

“The Economic Impacts of Inadequate Infrastructure for Software Testing”, National Institute of Standards and Technology (NIST), 2002

“Inspiring, enabling and driving the Evolution of Quality at Adobe leveraging the TSP”, Jim Sartain, Senior Director, Quality at Adobe Systems, TSP Symposium 2009

“Some Future Software Engineering Opportunities and Challenges”, Barry Boehm, in The Future of Software Engineering, Springer, 2011

Page 114: Tutorial joaopascoalfaria-2confcmmiportugal-v1-3-split

Portugal

Thank you!Contact information:

João Pascoal Faria (*)Departamento de Engenharia InformáticaFaculdade de Engenharia da Universidade do PortoRua Dr. Roberto Frias, s/n 4200-465 Porto, PORTUGALEmail: [email protected]: +351225082134Mobile: +351966494914(*) SEI Qualified PSP Developer, PSP Instructor, TSP Coach