Project

monte

0.0
No commit activity in last 3 years
No release in over 3 years
If you are an engineer who is being asked, 'When will it be done?' then Monte can help by using the Monte Carlo method to provide you with plausile forecasts based on historic data.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Monte

Monte is a simple gem designed to help software engineers and developers answer the question 'When will it be done?'.

The tool uses the Monte Carlo method to provide a reasonable forecast of the future based on statistically relevant data from the past.

Installation

You must have ruby installed to use this tool.

start by installing the gem.

$ gem install monte

Usage

The following is the simplest version of Monte which should be used when you have little previous data with which to build your forecast.

$ monte carlo
 |  \/  |   ___    _ __   | |_    ___
 | |\/| |  / _ \  | '_ \  | __|  / _ \
 | |  | | | (_) | | | | | | |_  |  __/
 |_|  |_|  \___/  |_| |_|  \__|  \___|

Welcome to Monte, a tool to help you answer the question: 'When will the work be done?'


Please answer the following questions
How many tasks/tickets do you have left to complete? 40
Do you have a JIRA csv export to use? no
Enter the smallest number of tasks/tickets you have finished in a week? 2
Enter the largest number of tasks/tickets you have finished in a week? 6
When will you start work (e.g. 28/04/2021) 2020-11-21
How certain are you with regard to the scope of the work? high
How many simulations would you like to run? 10000
┌──────────────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
│Forecast Certainty│    5%    │   15%    │   30%    │   50%    │   70%    │   85%    │   95%    │
├──────────────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
│  Forecast Date   │2021-02-06│2021-02-06│2021-02-13│2021-02-13│2021-02-20│2021-02-27│2021-03-06│
└──────────────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┘

Forecasting like this works better when you use real data from the past to model what the future will look like. To enable this Monte can use a JIRA export of tasks completed over whatever historic timeframe you would like. Once you have created your JQL filter ensure that you include the "Resolved" column and then export as a csv. When running the app you will be given the option to specify the path of the file and this will then build a distribution of previous throughputs for use in the simulations. The following is a runthrough using a test data file.

  __  __                   _
 |  \/  |   ___    _ __   | |_    ___
 | |\/| |  / _ \  | '_ \  | __|  / _ \
 | |  | | | (_) | | | | | | |_  |  __/
 |_|  |_|  \___/  |_| |_|  \__|  \___|

Welcome to Monte, a tool to help you answer the question: 'When will the work be done?'


Please answer the following questions
How many tasks/tickets do you have left to complete? 40
Do you have a JIRA csv export to use? Yes
what is the absolute file path to the csv file /Users/user/directory/monte/spec/test_data/data.csv
When will you start work (e.g. 28/04/2021) 2020-11-21
How certain are you with regard to the scope of the work? medium
How many simulations would you like to run? 10000
┌──────────────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
│Forecast Certainty│    5%    │   15%    │   30%    │   50%    │   70%    │   85%    │   95%    │
├──────────────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
│  Forecast Date   │2021-02-06│2021-02-13│2021-02-20│2021-03-06│2021-03-13│2021-03-27│2021-04-10│
└──────────────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┘

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Copyright

Copyright (c) 2020 Andrew Werner. See MIT License for further details.