Welcome to the Monte Carlo Simulation tool! This project is a C# script designed to perform Monte Carlo simulations, a powerful statistical technique used to understand the impact of risk and uncertainty in prediction and forecasting models.
According to the historical data of delivery, this tool allows for answering two different questions:
- HOW MANY items are expected to be finished by the team in a certain period?
- HOW LONG will it take for the team to finish a certain number of work items?
In both cases, the tool performs the requested number of different simulations (10,000 by default) providing a possible delivery scenario based on delivery historical data.
The historical data is expected as a list of periods and the corresponding number of PBIs (Product Backlog Items) delivered in each period.
The outcome of this script is the calculation of the 50th, 25th, 20th, 15th, and 10th percentile for the 10,000 simulated scenarios Additionally, a bar chart is generated as a png file showing how many times each scenario appeared during the simulations.
- .net 8.0
- ScottPlot
- Install .NET Core (https://www.microsoft.com/net/learn/get-started-with-dotnet-tutorial)
- Clone this repository
- Open a command prompt window
- Go to the root folder of the project (where .sln is located).
- Modify the historic.csv file by providing the historical data of your team
- run 'dotnet restore', it will install external packages
- run 'dotnet run', it will launch the program
This software shall be launched through the Command Line.
Syntax:
dotnet run howmany [historic input file] [number of simulations] [number of periods per round]
OR
dotnet run howlong [historic input file] [number of simulations] [items to complete]
where
[historic input file]: the local path to a CSV file that contains the delivery of historical data grouped by periods (sprints, months, quarters, ...)
[number of simulations]: the number of simulation rounds to be performed
[number of periods per round] how many periods from the historical shall be taken for each simulation round_
[items to complete] the desired number of work items to be finished_
Examples:
dotnet run howmany historic.csv 10000 3
dotnet run howlong historic.csv 10000 50
Please see our Contribution Guide to learn how to contribute.
Please see our Code of Conduct