31
Dimitar Bakardzhiev Managing Partner Taller Technologies Bulgaria @dimiterbak High-Level Project Planning using Monte Carlo simulation

High-level project planning using Monte Carlo simulation

Embed Size (px)

DESCRIPTION

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?