Upcoming SlideShare
Project Estimation
1 of 15

### Introduction to monte-carlo analysis for software development - Troy Magennis (Focused Objective)

1. Introduction to Monte-carlo Analysis for Software Development 2011 Introduction to Monte-carlo Analysis for Software Development Forecasting and managing software development project risks & uncertainty Monte-carlo analysis is the tool of choice for managing risk in many fields where risk is an inherent part of doing business. This paper examines how to use monte-carlo techniques to understand and leverage risk in Software Development projects and teams. Troy Magennis Troy Magennis – Focused Objective Focused Objective (FocusedObjective.com) 1 Page 6/1/2011
2. Introduction to Monte-carlo Analysis for Software Development Introduction This paper introduces a technique for For software development, it is often answering these questions given the risks necessary to estimate a project upfront in involved in software development and order to get project approval, obtain budget delivery. Monte-carlo analysis is a proven and hire the correct team size and skill-mix. technique for determining the likelihood of This is often at odds with the Agile an outcome in the face of many difficult to development methodology where full measure input criteria. Monte-carlo analysis upfront design and specification is avoided, doesn’t completely eliminate any risk, but it and delivery happens in small iterations does give a much higher degree of until a backlog is completed. The desire to satisfactory answer than the plain guesses work iteration to iteration and choose a and gut feel that is employed today (as to finite level of work each cycle is compelling, release date) in many software projects. and it does un-deniably bring value to What is Monte-carlo analysis? production earlier than a pure waterfall Monte-carlo analysis is a mathematical approach. However, the fact still remains technique that finds the likely patterns in an that in order to provide any value to an equations result given random input values organization, a finite minimum level of that are constrained between likely real- functionality (work) needs to be delivered world values for those inputs. In place of an by a preferred date, within a budget equation, for most purposes a spreadsheet constraint; very few companies will sign off of software model of the real-world process on a project that has no target date, and an is built, and likely (but random) inputs are open budget. Often delays incur high cost; fed into these models many thousands of not just development costs, but also as times to find a pattern in the results. competitors launch new feature first, or take an increasing market share. Even with Agile For example, if you know that there are teams it is important for any development one-hundred software product stories manager or organization to be ready to (features) to develop, and that from history answer the following questions on an (or educated estimate), you know that the ongoing basis – shortest time it would take each story is one day, and the longest is three days then a 1. How much will this product cost to Monte-carlo analysis would simulate in develop and deliver? software completing these one-hundred 2. What is the likelihood of releasing stories with a random work time of between by date x? one and three days; and it would do this 3. What resources do you need to hit thousands of times. The result would be a date x (money equals people, so the histogram of the total time for each question is often how much more simulated project. This would be similar to money do you need to hit date x)? Troy Magennis – Focused Objective Page 2