A few demos showing how to estimate projects using Monte Carlo simulations.

Overview

Agile Monte Carlo Simulations Demos

This is the repository which accompanies the blog post "How to replace estimations and guesses with a Monte Carlo simulation".

It contains a few snippets which demonstrate how one could use Monte Carlo simulations to estimate the dates in which projects would end.

The different examples mentioned on the blog post are in different branches:

  • seven-sum-experiment contains a Monte Carlo simulation to estimate the probability of obtaining a sum of 7 when rolling two dice.
  • naive-project-date-estimation contains a Monte Carlo simulation which calculates the probability of one writing 60 or more blog posts in a year. It considers the blog posts' cycle times to be uniformly distributed.
  • non-naive-project-date-estimation contains a Monte Carlo simulation which calculates the probability of one writing 60 or more blog posts in a year. Instead of considering the blog posts' cycle times to be uniformly distributed, it uses weighted probabilities.
  • throughput-project-date-estimation uses throughput values to estimate when a project would be done. Such a simulation is similar to what you'd do to estimate whether a software development team could complete a project within a period.
  • histogram-plot generates a histogram showing how frequently each completion date appeared when simulating the end date of a project multiple times.
  • percentiles-calculation (same as main) simulates when a project would end, generates a histogram with the distribution of possible end dates, and calculates the values for the 25th, 50th, 75th, 85th, and 95th percentiles.

Contributions welcome

I couldn't find a decent way to plot percentile lines into my histogram. I simply couldn't figure out how to do it using Plotters.

In case you know how to do it, I'd appreciate it if you could open a PR showing me how.

If you're able to solve this problem, in addition to me being eternally grateful, you'll have your name added to the original blog post, and I'll update it with the plot containing percentile lines. Furthermore, I'll pay for coffee next time you're in London.

Recommended Reading

You might also like...
A simple CLI to build VEXCode V5 Pro projects and download them to the V5 brain.

vexer A simple CLI to build VEXCode V5 Pro projects and download them to the V5 brain. (WIP) This currently is only tested on and only works on window

a cargo subcommand for counting lines of code in Rust projects
a cargo subcommand for counting lines of code in Rust projects

cargo-count Linux: A cargo subcommand for displaying line counts of source code in projects, including a niave unsafe counter for Rust source files. T

Show unused code from multi-crate Rust projects

Warnalyzer Remove unused code from multi-crate Rust projects. The dead_code lint family of rustc is limited to one crate only and thus can't tell whet

A tiny crate to make it easy to share and apply Git hooks for Rust projects
A tiny crate to make it easy to share and apply Git hooks for Rust projects

Shareable git hooks for Rust project. Sloughi is a friend of Husky from North Africa! :algeria:

A blazing fast command line license generator for your open source projects written in Rust🚀
A blazing fast command line license generator for your open source projects written in Rust🚀

Overview This is a blazing fast ⚡ , command line license generator for your open source projects written in Rust. I know that GitHub

A Command-line tool to create, manage and deploy your python projects

PPM A Command-line tool to create, manage and deploy your python projects Table of Contents PPM Main Features Create a Project project.ini file Projec

CLI tool to quickly create React + Typescript + Tailwind projects
CLI tool to quickly create React + Typescript + Tailwind projects

QUICK INIT CLI Tool to quickly create React projects with Tailwind automatically configured for use. Typescript is selected as default. If JS is to be

A tool for decompilation projects.
A tool for decompilation projects.

objdiff A tool for decompilation projects. Currently supports: PowerPC 750CL (GameCube & Wii) MIPS (Nintendo 64) WARNING: Very early & unstable. Licen

Just a collection of tiny Rust projects I've did. None warrant a whole repo rn

Daily Rust I try to write some tiny programs daily to gradually improve my Rust skills! Current Program Descriptions first_prog.rs: My first program a

Owner
Lucas F. da Costa
Brazilian, open-source wizard, published author, and professional problem solver. Chai.js and Sinon.js maintainer. Testing expert. I strive to be lazy.
Lucas F. da Costa
A customizable MCTS planner with advanced featured tailored to multi-agent simulations and emergent narratives.

NPC engine Core:  Utils:  © 2020-2022 ETH Zurich and other contributors. See AUTHORS.txt for more details. A customizable Monte Carlo Tree Search (MCT

Game Technology Center, ETH Zurich 30 Jun 6, 2023
Custom module for showing the weather in Waybar, using the great wttr.io

wttrbar a simple but detailed weather indicator for Waybar using wttr.in. Installation Compile yourself using cargo build --release, or download the p

Yo'av Moshe 10 Apr 23, 2023
Demo app duplicated in 5 languages (Go/JavaScript/Python/Ruby/Rust) showing how to go from source code to container image using melange+apko

hello-melange-apko ?? This repo contains an example app duplicated across 5 languages showing how to: Package source code into APKs using melange Buil

Chainguard 16 Jan 23, 2023
A toy example showing how to run Rust code in Python for speed and progress.

PoC: Integrating Rust in Python A toy example showing how to run Rust code in Python for speed and progress. Requirements Python 3.6+ Rust 1.44+ Cargo

Emil Thorenfeldt 2 Feb 7, 2022
Update Twitter profile with a meter showing how close you are to code burnout.

WakaTime Code Burnout Meter in Twitter Profile Inspired by trash's Twitter profile, this repo adds a burnout meter to your Twitter profile. It uses Wa

Travis A. Wagner 6 Jan 12, 2023
A simple cli to clone projects and fetch all projects in a GitHub org..

stupid-git A simple cli to clone projects and update all projects. get all repository from GitHub clone all pull all with git stash Usage create sgit.

Fengda Huang 5 Sep 15, 2022
🔥 📝 (fwdt) "few word do trick" is a cross platform manual fast logger

Few Word Do Trick (fwdt) Few Word Do Trick (fwdt) is a cross-platform general purpose fast logger for humans that supports incomplete csvs for a bette

Alex Hallam 15 Feb 3, 2023
Rust low-level minimalist APNG writer and PNG reader with just a few dependencies with all possible formats coverage (including HDR).

project Wiki https://github.com/js29a/micro_png/wiki at glance use micro_png::*; fn main() { // load an image let image = read_png("tmp/test.

jacek SQ6KBQ 8 Aug 30, 2023
Curated list of awesome projects and resources related to Rust and computer security

Awesome Rust Security Curated list of awesome projects and resources related to Rust and computer security Table of Contents Tools Web and Cloud Secur

Alan 131 Jan 1, 2023
CLI program for building generative projects

NFT image generator This is the project to help artists to generate NFT collection, which can be generated from layers of PNG images. Usage Get archiv

null 10 Apr 27, 2022