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 (c) 2020 Andrew Werner. See MIT License for further details.