High-level planning is planning the initial budget and also the range of the time frame for that project. It does not include detailed project plans – these will be developed later. Management has to plan in order to make sure they have the financial means and the resources for all the projects the company has. We don’t plan in detail what is not absolutely necessary to plan. So, the plan itself is created with the appropriate buffers protecting the decisions that have to be included in the plan from the "common and expected uncertainty" aka common cause variation. The short-term details, like the scheduling, are done based on the immediate needs and capabilities - and we look on these schedules as the execution of the higher level plan. We propose a probabilistic approach for preparing high-level plans. Based on existing historical statistical data recorded about a software development organization/team, predictions can be made that could be used for planning new projects. 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 http://youtu.be/GE9vrJ741WY on how to use the Excel files
Citation preview
Dimitar Bakardzhiev Managing Partner Taller Technologies
Bulgaria @dimiterbak High-Level Project Planning using Monte Carlo
simulation
Management is prediction. Theory of knowledge helps us to
understand that management in any form is prediction. W. Edwards
Deming
High-level 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
We challenge the project management paradigm and suggest it is
better to model projects as a flow of work items through a
system
A project is a batch of work items each one representing
independent customer value that must be delivered on or before due
date. The batch can contain even only one work item.
A Project in a Kanban System Input Queue DEPLOYED! Project
Backlog Development Test QA WIP 5 WIP 4 NO WIPWIP 2
Z-curve
1st leg Setup time climbing the learning curve conducting
experiments (spikes) to cover the riskiest work items setting up
environments adapting to clients culture and procedures
understanding new business domain mastering new technology
2nd leg Productivity period If the project is scheduled
properly the system should be like a clockwork sustainable pace, no
stress, no surprises
3rd leg Cleaning up Clean up the battlefield Fix some
outstanding defects Support the transition of the project
deliverable into operation
Project delivery time T = 1 + 2 + 3 Where: 1 is the duration of
the 1st leg of the Z-curve 2 is the duration of the 2nd leg of the
Z-curve 3 is the duration of the 3rd leg of the Z-curve
Takt Time is the time between two successive deliveries Start 5
days 7 days 2 days 2 days 1 day 5 days Finish 0 days 0 days 5 days
7 days Project delivery time = 5 + 7 + 2 + 1 + 5 = 20 days
How manufacturing measure Takt Time?
How knowledge workers measure Takt Time?
Average Takt Time = T is the time period over which the project
will be delivered (delivery time) N is the number of items to be
delivered in period [0,T] is the average Takt Time for period [0,T]
at the Dev System level
Calculating Delivery time for a project : = T is the average
time period over which the project will be delivered (delivery
time) N is the number of items to be delivered in period [0,T] is
the average Takt Time for period [0,T] at the Dev System level
Project delivery time = 1 1 + 2 2 + 3 3 Where: 1 is the average
Takt Time for the 1st leg of the Z-curve 2 is the average Takt Time
for the 2nd leg of the Z-curve 3 is the average Takt Time for the
3rd leg of the Z-curve 1 is the number of items delivered during
the 1st leg of the Z-curve 2 is the number of items delivered
during the 2nd leg of the Z-curve 3 is the number of items
delivered during the 3rd leg of the Z-curve
We should NOT use the Average Takt Time as a single number but
a distribution of the average Takt Time instead!
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.)
How to predict project delivery time? 1. Collect Takt Time data
for each of the Z-curve legs of a Baseline Project 2. Using Monte
Carlo simulation generate Average Takt Time (AvgTT) distribution
(SIP) for each of the Z-curve legs and store them for future use
Then when a new project needs to be planned: 1. Using Monte Carlo
simulation generate Delivery time (T) probability distribution
based on the baseline AvgTT SIPs 2. For predicted delivery time use
the 85 percentile of the Delivery time (T) probability
distribution
1. COLLECT TAKT TIME DATA FROM A PROJECT TO BE USED AS A
BASELINE How to predict project delivery time?
Data for the baseline project Fortune 500 Staffing company
Technology Java; Spring; Oracle; Delivery time of 199 days Project
scope of 238 user stories 42 stories delivered in the 1st leg of
Z-curve 161 stories delivered in the 2nd leg of Z-curve 28 stories
delivered in the 3rd leg of Z-curve
2. GENERATE SIP FOR AVERAGE TAKT TIME (AVGTT) USING MONTE CARLO
SIMULATION How to predict project delivery time?
Takt Time SIPs for each of the three legs of Z-curve
3. GENERATE DELIVERY TIME (T) PROBABILITY DISTRIBUTION BASED ON
THE AVG TAKT TIME DISTRIBUTIONS (SIP) USING MONTE CARLO SIMULATION
How to predict project delivery time?
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
Project scope The team would break down the requirements,
account for Cost of Delay, add work items for Dark matter and
Failure load and decide 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
Monte Carlo summation of will give us the time needed to
deliver the project! 12 work items 70 work items 18 work items
Mode = 76 days; Median = 77 days; Mean = 78 days; 85th perc =
90 days
References Here are the SIPs for the baseline project
SIPs_MonteCarlo_FVR.xlsx Here is the planing simulation in Excel
High_Level_Project_Planning.xlsx Content is inspired and based on
ideas from David J. Anderson, Troy Magennis, Alexei Zheglov What is
SIP?