Vous êtes sur la page 1sur 23

When will my Feature

be Ready?

A Practical Probabilistic
Approach to Development
Estimation

Leandro Caniglia
Caesar Systems
Awareness

Known Known
knowns unknowns

Unknown Unknown
knowns unknowns
Cumulative number of
tasks
tasks
150

100

50

days
0
0 20
Cumulative number of
tasks
tasks
150

close
d
100

50

days
0
0 20
Cumulative number of
tasks
tasks
150

Unknown close
unknown d
100

Known
unknow
50 n
Known
known days
0
0 20
Awareness = Learning
tasks
150

Unknown close
unknown d
100

Known
unknow
50 n
Known
known days
0
0 20
Generalization
tasks
150

Unknown close
unknown d
100

Known
unknow
50 n
Known
known days
0
0 20
Expected Learning Pace
tasks
150

close
d
100

50

days
0
0 20
Bad and Good
Questions
 When will the feature be ready?

 What's the probability to have the
feature ready in 1 month? 
 How long would it take to have
the feature ready with 80% of 
certainty?
Measuring
CompiledMethod >>
#messageCount 1
| reader | 2
reader := ByteCodeReader
on: self. 3
1 <0B> PushSelf
^reader
2 messageCount
<5A> LoadAssoc1 loc 4
3 <E2> SendSelector1 #on: 4
4 <C3> StoreTemporary1
5 <AF> LoadTemporary1 bytecodes
6 <E3> SendSelector2 7
#messageCount
7 <48> Return messageCo
unt
Complexity Metrics

 Lines of Code (LOC)


d s
h o
 # of bytecodes
e t
 # of sends M
 incursion
 # of arguments (arity)
 numberOfSubWords (4 in this case)

e s
# of ivars (slots) s s
# Cl a
of methods
Probability
Distributions

Metrics are not numbers


Demo
Feature Estimation
Problem
How can we calculate the probability
distribution associated to a feature?

Solution
Create a probabilistic model of the problem
and run a Monte Carlo simulation on it.

Remember!
Metrics are not numbers but distributions.
Development Metrics

Code
# of methods /
class
Change set
# of methods

Dev Team
 speed
 additivity
Dev Team Metrics

Speed
# of change sets integrated / day
Integrated
change change set
set

Delays included
holidays interruptio illness
vacations ns
distraction hw failures
s
Dev Team Metrics

Additivity
 % of method survival by change set
mth1 mth1
mth2 mth2
mth3 mth3

original current
change state
Actions included
set in
memo
refactoring renaming formatting
ry
Feature Size
1. Sketch a preliminary design of the feature

4 2
2. Count classes
classes = ΣC
7
Existi New

.0
ng

w(C) 1
New
Class
3
Existin
5g
3
New
.5
w(C) 1 ; if C is
new Class
≔ 2
0.5 ;
otherwise
Dev Team Focus

Focus
% of resources assigned to the
feature
focus ≔ % of people * % of time

Other
tasks
% of resources assigned to everything
else other ≔ 100% - focus
A Stochastic Model

feature related
Dev focuse change
Team d set
focus = p
p
1–p additiv
ity

other tasks
m
m
m
Monte Carlo Simulation

1 2 3 4 5 6
Demo
Good Questions &
Answers
 What's thethe
When will probability of
feature be having
ready?
the feature ready in 1 month? 
 How long would it take to have
the feature ready with 80% or 
certainty?

Vous aimerez peut-être aussi