Académique Documents
Professionnel Documents
Culture Documents
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
e s
# of ivars (slots) s s
# Cl a
of methods
Probability
Distributions
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?