lessons learned from measuring software development processes

27
© Software Quality Lab V8.0 Software Quality Lab Markus Unterauer Consultant and trainer Lessons Learned from measuring software development processes

Upload: markus-unterauer

Post on 02-Aug-2015

82 views

Category:

Technology


0 download

TRANSCRIPT

© S

oft

war

e Q

ua

lity

Lab

Software Quality Lab

Markus UnterauerConsultant and trainer

Lessons Learned from measuring software

development processes

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

At the end of this session you know …Agenda

Introduction to process measurement

Experience from practise

Lessons learned from the project

Slide 2

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

The Why? and first ideas on the How?

Introduction to process measurement

Slide 3

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Measurement as basis for all improvements

Why measure processes

Slide 4

Define goal and path to reach it

Discover, where we are

Identify gap, to where we should be

Find corrective measures

Go next step Goal reached

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Proper metrics show the way to our goalWhy measure processes

Slide 5

Sou

rce

: D

chic

via

Flic

kr,

htt

ps:

//w

ww

.flic

kr.c

om

/ph

oto

s/a

ge

ncia

mod

els

/611

817

16

75

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Boundaries show, when to actWhy measure processes

Slide 6

Upper boundary

Lower boundary

Target value

Measured value

Time

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Define proper metrics with G-Q-MGQM for defining metrics

1. Goal What should be done for whom? Which aspects do we want to change? What is the context?

e.g. „Improve the quality for all new projects“

2. Question Which questions guide us to the measurement goal?

e.g. „Are we finding the right bugs?“

3. Metric How can we answer the questions using metrics?

e.g. „Ratio of bugs found per severity class“

Slide 7

Define goals

Find questions

Answer questions

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

ExampleGQM for defining metrics

Slide 8

Metric

Question

Goal We want to improve thequality of our products!

Are we finding the right bugs?

Ratio of bugs per severity

No. of bugs found after release

Do we find the bugs instead of the users?

Ratio of bugs found by QA

vs. Users

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Question: Are we finding the right bugs?Goal: Improve quality of our products

Ratio of bugs per severity class

Number of bugs found after release Per severity class

Ratio of recurring bugs

Average number of bugs found per test case

Number of bugs found by test level Unit tests

Integration tests

System tests

User acceptance tests

Bugs found by type Coding bug

Bad requirements

UI bug

Slide 9

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

So much for the theory, let‘s turn to practise …Experience from practise

Slide 10

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Situation at our customerExperience from practise

Slide 11

http://pixabay.com/en/desert-road-sand-forward-winds-609316/

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Goals for our customerExperience from practise

How bad is it really?

What should we do?

Set up an improvement cycle

Slide 12

http://en.wikipedia.org/wiki/PDCA#/media/File:PDCA_Cycle.svg

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

First attempt …Experience from practise

Our customer wanted to measure … ~120 metrics in 12 process fields with 21 processes on 4 levels from 14 different sources and source system

But … for more than half of all metrics we could not get values no one really knew, what to do with the metrics management did not even look at it effort for getting numbers was extremly high

Slide 13

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Some sources of valuesExperience from practise

Slide 14

• Different levels of detail• Errors and missing data• Bookings on different categories

Time recording

• Each project with different structure• Not comparable• Incomplete

Project planning

• Only for parts of all sourcecode• Difficult to query and analyze

Source Control

• Manually built Excel sheets by Project Managers• Each project with different structure• Not comparable

Controlling sheets

• Very high effort• Ambiguous questions

Questionaires and interviews

Good at first glance, but bad in detail …

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Everything very difficultExperience from practise

Slide 15

http://pixabay.com/en/squirrel-reading-books-surprise-304021/

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

New approach GQMExperience from practise

1. Define two goals Ask management, what they would like to achieve Define reporting

2. Ask questions

3. Find metrics to answer question Only automatically measurable ones Only one per question

4. Define target values and boundaries Get target values from industry benchmarks

5. Try out and validate

6. Report to management

Slide 16

http://pixabay.com/en/shield-directory-panic-fear-trust-492992/

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Step 1: Define GoalsExperience from practise

1. We want to improve quality to the customer

2. We want to increase developer productivity

Slide 17

Images from www.pixabay.com

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Step 2: Ask questionsExperience from practise

1. We want to improve quality to the customer

Do we find bugs instead of the customer? Are we testing enough? Are we testing effectively?

2. We want to increase developer productivity

Do our developers spend too much time on bug fixing? Are we developing fast enough? Is the quality of our source code high enough?

Slide 18

Images from www.pixabay.com

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Step 3: Find metricsExperience from practise

1. We want to improve quality to the customer Do we find bugs instead of the customer?

• Ratio of bugs found by us to bugs found by customer

Are we testing enough?• Number of test cases tested per developer day

Are we testing effectively?• Number of bugs found per tester day

2. We want to increase developer productivity Do our developers spend too much time on bug fixing?

• Effort-ratio for bug fixing per developer month

Are we developing fast enough?• Number of changed LoC per developer day

Is the quality of our source code high enough?• Number of bugs found by customer per developer month

Slide 19

Images from www.pixabay.com

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Step 4: Define target values and boundaries

Experience from practise

Slide 20

Metric Target Value Current value Conclusion

Changed LoC per developer day

30 – 40 LoC per day 123 LoC per Day Too high. Results in poor quality.

Effort-ratio for bug fixing

25 - 35% 115% Far too high. Low productivity.

Ratio of bugs found by customer

1 – 3% of all bugs 68% of all bugs Far too high. Testing not effective.

… … … …

Target range taken from literature and

publications

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Step 5: Try out and validate

Experience from practise

Slide 21

http://pixabay.com/en/calculator-calculation-insurance-385506/

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Step 6: ReportingExperience from practise

Slide 22

Trend for past thee months

Textual comment from Quality

Manager

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Document metrics in a metric handbookExperience from practise

Slide 23

Metric Effort-ratio of bug fixing per developer month

Goal Developers should produce high quality code and spend as much time for implementing new features as possible

Benefit Fast development of new featuresHigh quality

Formula Ratiobug fixing = Effortbug fixing / Total Effortdevelopment

Method Automatic calculation from timesheets

Datasource

Time recording system

Interval Monthly

Responsible

Process Manager

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

From practiseLessons Learned

Slide 24

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Tips for starting your quality metric system

Lessons Learned

Define metrics top down, not bottom up Goal > Question > Metric

Not: „Hey, look how many things we can measure!“

Concentrate on 5 - 10 metrics, e.g. the one presented before

Define lower and upper boundary together with your team … or measure without boundaries for some iterations and define boundaries then

Start with automatically measurable metrics When defining metrics, always have in mind, if you have all data necessary in the quality needed

Define in advance, what to do with the metrics

Slide 25

Imag

e: h

ttp:

//pi

xaba

y.co

m/e

n/bu

lb-li

ght-

lam

p-el

ectr

ic-1

6020

7/

© S

oft

war

e Q

ua

lity

Lab

www.software-quality-lab.com | improve your quality

Questions?

Lessons Learned from measuring software development processes

Slide 26

© S

oft

war

e Q

ua

lity

Lab

Your Partner in Software Quality and Testing

Software Quality Lab GmbH

www.software-quality-lab.com

Consulting | Service | Academy | Tool Expertise

Markus [email protected]