Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Monte-carlo Analysis for software development

Similar presentations


Presentation on theme: "Introduction to Monte-carlo Analysis for software development"— Presentation transcript:

1 Introduction to Monte-carlo Analysis for software development
Created by Mihir Karnik Introduction to Monte-carlo Analysis for software development

2 Introduction Monte-carlo analysis is a mathematical technique.
It finds the most likely patterns in an equation result when given random input values that have been constrained between the likely real-world values for those inputs. In place of an equation, most of the times a spreadsheet of software model of the real-world process is built.

3 Working of Monte-carlo Analysis
Consider an example where, there are one- hundred software product features to develop. From the company history, we know that the shortest time it would take each feature is one day, and the longest is three days. Monte-carlo analysis would simulate in software completing these one-hundred features thousands of times.

4 Comparison between Agile and Monte-Carlo analysis
The general tendency in Agile analysis of software engineering projects is to carry out work in an incremental form. The time component in the Agile analysis is found out using an estimate of the amount of effort that the development team would need to make. Monte-carlo analysis help us to find out the best possible time required when we add a large number of different defects using mathematical formulae.

5 Need for Monte-carlo analysis
According to benchmarking data and definition of project failure by The IPA Institute, staggering 56% of major projects fail (The IPA Institute, 2009) due to budget overspending for more than 25%, and/ or schedule slipping for more than 25%, and/ or severe and continuing operational problems holding for at least one year. There are a few problem areas in Agile software: Customer requirements specification, Estimation of time and resource components, and Non-inclusion of certain key tasks in time and resource requirement calculation.

6 Examples of Monte-carlo models for Agile technologies
We are going to look into 2 Agile methodologies and present Monte-carlo models for both of them namely: Scrum modeling with excel Kanban Steps for building Monte-carlo model: Build a model of a scrum process using different excel formulae in that cascade into a final amount of feature points for each simulation row. Using the feature points, the number of iterations required and using that a date can be determined.

7 Scrum model inputs The inputs required for this model are:
Number of features The lower bound, average and high boundary adjustments Defect Rate Added scope rate

8 Scrum model inputs and results
Start date Days per iteration (work days) Number of feature (story) points per iteration targets The following are the results for the calculations showing the first 5 simulations of many thousands

9 Kanban Modeling a Kanban project using excel is not easy as when we have interactions between features. There is a need of at least one column per feature, per simulation row which in the end just gets unmaintainable. Kanban divides the steps of delivering a single feature into columns which are known as Status’. For example, a feature might pass from Design, to Development, to Testing, to Release.

10 Kanban The time taken for each feature in each Status is recorded.
To simulate, the application takes the inputs of the number of Status columns, and a lower bound and upper bound for time taken to complete stories in each status, and the limit of stories allows in each status at one time. The following is an example of how execution of Kanban looks Work is limited in each Status, and a new feature (story) can only be pulled from left to right when a vacant position is available. For each story a random time within that status’ boundaries is calculated and stories are only move to the right when that time has elapsed, there is an open position that keeps the number of stories below the WIP limit for that status.

11 Sensitivity Analysis Sensitivity analysis answers the question of what input factor has the greatest impact on the final result. In essence, if all the inputs were increased and decreased by 10% how much each change impacted the final result.

12 Relevant Random Number Generation
Random number generation is a complex field of mathematics. In the Scrum model covered in the report, we forced the random number generator to follow a Normal distribution. For truly random numbers, a computer is the last thing you want as the random numbers generated by the computer are not truly random but rather they rely on algorithms that try to be random.

13 References Monte Carlo method. (n.d.). Retrieved September 30, 2011, from wikipedia: ethod Raydugin, Y. (n.d.). Unknown Unknowns in Project Probabilistic Cost and Schedule Risk Models. Troy, M. (2011). Introduction to Monte-carlo Analysis for Software Development.


Download ppt "Introduction to Monte-carlo Analysis for software development"

Similar presentations


Ads by Google