#noestimates project planning using monte carlo simulation

62
Dimitar Bakardzhiev Managing Director Taller Technologies Bulgaria @dimiterbak #NoEstimates Project Planning using Monte Carlo simulation

Upload: dimitar-bakardzhiev

Post on 08-May-2015

4.237 views

Category:

Leadership & Management


6 download

DESCRIPTION

Here is the text behind the slides http://www.infoq.com/articles/noestimates-monte-carlo Here is a video I prepared in order to help people understand how to plan a release using the Monte Carlo simulation in MS Excel http://youtu.be/r38a25ak4co And here is an Excel file to show how Monte Carlo is done http://modernmanagement.bg/data/NoEstimate_Project_Planning_MonteCarlo.xlsx Here are the SIPs for the baseline project http://modernmanagement.bg/data/SIPs_MonteCarlo_FVR.xlsx Here is the planing simulation in Excel http://modernmanagement.bg/data/High_Level_Project_Planning.xlsx The video ( after the 3:00 minute) http://youtu.be/GE9vrJ741WY on how to use the Excel files

TRANSCRIPT

Page 1: #NoEstimates project planning using Monte Carlo simulation

Dimitar Bakardzhiev

Managing DirectorTaller Technologies Bulgaria

@dimiterbak

#NoEstimates Project Planning using Monte Carlo

simulation

Page 2: #NoEstimates project planning using Monte Carlo simulation

Clients come to us with an idea for a new

product and they always ask the questions -

how long will it take and how much will it cost

us to deliver? They need a delivery date

and a budget estimate.

Page 3: #NoEstimates project planning using Monte Carlo simulation

Reality is uncertain, yet we as software developers are

expected to deliver new products with certainty.

Page 4: #NoEstimates project planning using Monte Carlo simulation

To increase the chances of project success we need to incorporate the uncertainty in our planning and exploit it.

Page 5: #NoEstimates project planning using Monte Carlo simulation

WE CAN’T CONTROL THE WAVES OF

UNCERTAINTY, BUT WE CAN LEARN

HOW TO SURF!

Page 6: #NoEstimates project planning using Monte Carlo simulation

TO ME #NOESTIMATES MEANS

No effort estimates

Effortless estimates

No estimates of effort

Page 7: #NoEstimates project planning using Monte Carlo simulation

Deterministic planning used these days forces certainty on uncertain situations and

masks the uncertainty instead of highlighting it.

Page 8: #NoEstimates project planning using Monte Carlo simulation

Project management paradigm is based on 1st principle of

Scientific Management namely “In principle it is possible to

know all you need to know to be able to plan what to do”.

Page 9: #NoEstimates project planning using Monte Carlo simulation

Project management paradigm believes uncertainty play a role

in project management uncertainty could be eliminated

by a more detailed planning.

Page 10: #NoEstimates project planning using Monte Carlo simulation

We challenge the project management paradigm and suggest that for

planning purposes it is better to model projects as a flow of work items

through a system.

Page 11: #NoEstimates project planning using Monte Carlo simulation

A project is a batch of work items each one representing

independent customer value that must be delivered on or before

due date.

Page 12: #NoEstimates project planning using Monte Carlo simulation

We don’t try to estimate the size of the work items. There are only two "sizes" - “Small Enough" and

“Too Big". "Too big" should be split and not allowed to enter the

backlog.

Page 13: #NoEstimates project planning using Monte Carlo simulation

A Project in a Kanban System

Input QueueDEPLOYED!

Project Backlog

Development Test QA

WIP 5 WIP 4 NO WIPWIP 2

Page 14: #NoEstimates project planning using Monte Carlo simulation

High-level probabilistic planning

• The initial budget and the range of the time frame• Does not include detailed project plans• The plan is created with the appropriate buffers• Schedules are the execution of the high-level plan• Keep focus on the project intent

Page 15: #NoEstimates project planning using Monte Carlo simulation

Reference class forecasting

Reference class forecasting promises more accuracy in forecasts by taking an "outside view" on the project being forecasted based on knowledge about actual performance in a reference class of comparable projects.

Daniel Kahneman

Page 16: #NoEstimates project planning using Monte Carlo simulation

Reference class forecasting

• Identification of a relevant reference class of past, similar projects. The class must be broad enough to be statistically meaningful but narrow enough to be comparable with the specific project.

• Establishing a probability distribution for the selected reference class.

• Comparing the new project with the reference class distribution, in order to establish the most likely outcome for the new project.

Page 17: #NoEstimates project planning using Monte Carlo simulation

IDENTIFICATION OF A REFERENCE CLASS OF

SIMILAR PROJECTS

Page 18: #NoEstimates project planning using Monte Carlo simulation

Are the Team structures comparable?

Page 19: #NoEstimates project planning using Monte Carlo simulation

Are the Technologies used comparable?

Page 20: #NoEstimates project planning using Monte Carlo simulation

Are the Development processes comparable?

Page 21: #NoEstimates project planning using Monte Carlo simulation

Are the Client types comparable?

http://blog.7geese.com/2013/07/04/7-reasons-why-i-decided-to-work-for-a-startup/

Page 22: #NoEstimates project planning using Monte Carlo simulation

Are the Business domains comparable?

http://www.mindoceantech.com/

Page 23: #NoEstimates project planning using Monte Carlo simulation

ESTABLISHING A PROBABILITY

DISTRIBUTION FOR THE SELECTED

REFERENCE CLASS

Page 24: #NoEstimates project planning using Monte Carlo simulation

What metric will be used in the forecast?

The metric should allow us:

• to take an “outside view” on the development system that worked on the project

• calculating delivery time

• make sense from client’s perspective.

Page 25: #NoEstimates project planning using Monte Carlo simulation

Takt Time!

Page 26: #NoEstimates project planning using Monte Carlo simulation

Takt Time is the average time between two successive

deliveries

Page 27: #NoEstimates project planning using Monte Carlo simulation

How manufacturing measure Takt Time?

Page 28: #NoEstimates project planning using Monte Carlo simulation

How knowledge workers measure Takt Time?

Page 29: #NoEstimates project planning using Monte Carlo simulation

Inter-Departure Time (IDT) is the time between two successive deliveries

Start 5 days 7 days 2 days 2 days 1 day 5 days Finish

IDT = 0 days

IDT = 0 days

IDT = 5 daysIDT = 7 days

Project delivery time (T) = 5 + 7 + 2 + 2 + 1 + 5 = 22 days

Page 30: #NoEstimates project planning using Monte Carlo simulation

• T is the time period over which the project was delivered• IDT is the inter-departure time or the time between two

successive deliveries

Page 31: #NoEstimates project planning using Monte Carlo simulation
Page 32: #NoEstimates project planning using Monte Carlo simulation

Takt Time

𝑇𝑇= 𝑇𝑁

=∑𝑖=1

𝑁

𝐼𝐷𝑇 𝑖

𝑁

• T is the time period over which the project was delivered• N is the number of items to be delivered in period [0,T]• is the Takt Time for period [0,T]

Page 33: #NoEstimates project planning using Monte Carlo simulation

TT calculation

𝑇𝑇=𝑇𝑁

=22𝑑𝑎𝑦𝑠10𝑠𝑡𝑜𝑟𝑖𝑒𝑠

=2.2𝑑𝑎𝑦𝑠 /𝑠𝑡𝑜𝑟𝑦

Page 34: #NoEstimates project planning using Monte Carlo simulation

Project Delivery time

𝑇=𝑁𝑇 𝑇• T is the time period over which the project will be delivered

N is the number of items to be delivered in period [0,T]• is the Takt Time for period [0,T]

Page 35: #NoEstimates project planning using Monte Carlo simulation

Project Delivery time

Page 36: #NoEstimates project planning using Monte Carlo simulation

We should NOT use the Takt Time as a single number but a distribution of

the Takt Time instead!

Page 37: #NoEstimates project planning using Monte Carlo simulation

Bootstrapping• Introduced by Bradley Efron in 1979

• Based on the assumption that a random sample is a good representation of the unknown population.

• Does not replace or add to the original data.

• Bootstrap distributions usually approximate the shape, spread, and bias of the actual sampling distribution.

• Bootstrap is based on the assumption of independence.

Page 38: #NoEstimates project planning using Monte Carlo simulation

1. Have Inter-Departure Time (IDT) sample of size n 2. Have the number of work items delivered (N)3. Draw n number of observation with replacement out

of the sample from step 14. Calculate Project Delivery time (T) for the sample from

step 2 using 5. Calculate Takt Time () by using T from step 4 and N

from step 26. Repeat many times7. Prepare distribution for Takt Time ()

Bootstrapping the distribution of Takt Time

Page 39: #NoEstimates project planning using Monte Carlo simulation

Example: Bootstrapping Takt Time ()

Sampled IDT data=(0,0,1,1,1,2,2,2,5,7)

= 2.1 days/story

Another 998 draws with replacement

Historical IDT data=(0,0,0,0,1,2,2,5,5,7)

= 2.2 days/storySampled IDT data=(0,1,1,1,1,2,5,5,5,7)

= 2.8 days/story

1st draw with replacement

1000th draw with replacement

Page 40: #NoEstimates project planning using Monte Carlo simulation

Result: Takt Time () distribution

Median 2,2STD 0,788833Average T 2,194385 Perc 395 Perc 3,5Mode(s) 2,4SIP size 1000

Page 41: #NoEstimates project planning using Monte Carlo simulation

Stochastic Information Packet (SIP)• Comprised of a list of trials of some uncertain

parameter or metric generated from historical data using Monte Carlo simulation (resampling)

• Represents an uncertainty as an array of possible outcomes (distribution)

• It is unique per context (business domain, team, delivery process used etc.)

Page 42: #NoEstimates project planning using Monte Carlo simulation

COMPARING THE NEW PROJECT WITH

THE REFERENCE CLASS

DISTRIBUTION

Page 43: #NoEstimates project planning using Monte Carlo simulation

assumes linear delivery rate

Project Delivery Time (T)

Project Delivery Time (T)

Completed Work (N)

22 days

10 work items

Page 44: #NoEstimates project planning using Monte Carlo simulation

Most projects have non-linear delivery rate

Page 45: #NoEstimates project planning using Monte Carlo simulation

Z-curve

Page 46: #NoEstimates project planning using Monte Carlo simulation

Each leg of the Z-curve is characterized by:

• Different work type• Different level of variation• Different staffing in terms of headcount and level of

expertise

Page 47: #NoEstimates project planning using Monte Carlo simulation

1st leg – Setup time

• climbing the learning curve• conducting experiments to cover the riskiest work

items• Innovation!• setting up environments• adapting to client’s culture and procedures• understanding new business domain• mastering new technology

Page 48: #NoEstimates project planning using Monte Carlo simulation

2nd leg – Productivity period

If the project is scheduled properly the system should be like a clockwork – sustainable pace, no stress, no surprises…

Page 49: #NoEstimates project planning using Monte Carlo simulation

3rd leg – Cleaning up

• Clean up the battlefield• Fix some outstanding defects • Support the transition of the project deliverable into

operation

https://www.ocoos.com/me/professional-dog-training-in-home/

Page 50: #NoEstimates project planning using Monte Carlo simulation

Project delivery time T

Where:

– is the duration of the 1st leg of the Z-curve – is the duration of the 2nd leg of the Z-curve – is the duration of the 3rd leg of the Z-curve

Page 51: #NoEstimates project planning using Monte Carlo simulation

Project delivery time

Where: is the Takt Time for the 1st leg of the Z-curve

is the Takt Time for the 2nd leg of the Z-curve

is the Takt Time for the 3rd leg of the Z-curve

is the number of items delivered during the 1st leg of the Z-curve

is the number of items delivered during the 2nd leg of the Z-curve

is the number of items delivered during the 3rd leg of the Z-curve

Page 52: #NoEstimates project planning using Monte Carlo simulation

Monte Carlo simulation of Project Delivery Time (T) based on Z-curve

1. Have three Takt Time SIPs (, , ) each one of size n for each of the three legs of the Z-curve

2. Have the number of work items to be delivered for each of the three legs of the Z-curve (, , )

3. Draw one observation out of the n, with replacement (bootstrap) from each of (, , )

4. Calculate Project Delivery time (T) for the sample from step 3 using

5. Repeat many times6. Prepare Delivery time (T) probability distribution

Page 53: #NoEstimates project planning using Monte Carlo simulation

EXAMPLE: MONTE CARLO SIMULATION OF PROJECT DELIVERY TIME (T)

Page 54: #NoEstimates project planning using Monte Carlo simulation

The New Project to be delivered

• THE SAME Fortune 500 Staffing company

• THE SAME development organization

• THE SAME technology – Java; Spring; Oracle;

• Delivery time TO BE PREDICTED

Page 55: #NoEstimates project planning using Monte Carlo simulation

Takt Time distributions for each of the three legs of Z-curve for the reference

class

Page 56: #NoEstimates project planning using Monte Carlo simulation

Project scope

After some analysis the team have broken down the requirements into user stories, accounting for Cost of Delay, added work items for Dark matter and Failure load and decided that:

• 12 stories TO BE delivered in the 1st leg of Z-curve

• 70 stories TO BE delivered in the 2nd leg of Z-curve

• 18 stories TO BE delivered in the 3rd leg of Z-curve

Page 57: #NoEstimates project planning using Monte Carlo simulation

Monte Carlo simulated summation of…

…will give us the time needed to deliver the project!

12 work items 70 work items 18 work items

Page 58: #NoEstimates project planning using Monte Carlo simulation

Monte Carlo simulation of Project Delivery Time (T)

Simulated one Project Delivery Time value

49998 draws with replacement from each of (, , )

Takt Time SIPs:, , Work items:, ,

1st draw with replacement from each of (, , )

50000th draw with replacement from each of (, , )

Simulated one Project Delivery Time value

Page 59: #NoEstimates project planning using Monte Carlo simulation

Mode = 76 days; Median = 77 days; Mean = 78 days; 85th perc = 90 days

Page 60: #NoEstimates project planning using Monte Carlo simulation

By taking an outside view when forecasting a new project we will

produce more accurate results faster than using the deterministic inside

view.

Page 61: #NoEstimates project planning using Monte Carlo simulation

ReferencesHere are the distributions for the baseline project SIPs_MonteCarlo_FVR.xlsxHere is the planning simulation in Excel High_Level_Project_Planning.xlsx

What is SIP?

Page 62: #NoEstimates project planning using Monte Carlo simulation

Dimitar Bakardzhiev is the Managing Director of Taller Technologies Bulgaria and an expert in driving successful and cost-effective technology development. As a Lean-Kanban University (LKU)-Accredited Kanban Trainer (AKT) and avid, expert Kanban practitioner, Dimitar puts lean principles to work every day when managing complex software projects with a special focus on building innovative, powerful mobile CRM solutions. Dimitar has been one of the leading proponents and evangelists of Kanban in his native Bulgaria and has published David Anderson’s Kanban book as well as books by Eli Goldratt and W. Edwards Deming in the local language.

@dimiterbak