Skip to content

bitovi/jira-auto-scheduler

Repository files navigation

Statistical AutoScheduler for Jira

The Statistical AutoScheduler is used to build probabilistic plans. Probabilistic plans account for uncertainty in estimating. The Statistical AutoScheduler produces a roadmap of epics as probability distribution:

Jira_Auto_Scheduler

See it in action with mock data here!

Features

  • Loads epics from Jira and writes epic Start date and Due date to Jira.
  • Supports multiple teams, team velocities, and tracks within a team.
  • Specify the probability threshold to adjust to your risk tolerances
  • Supports a wide variety of Jira configuration settings

Need help or have questions?

This project is supported by Bitovi, an Agile Project Management consultancy. You can get help or connect on our:

Or, attend our next free & public training.

Or, you can hire us for training, consulting, or program management.

Why

image

Accurate estimation is hard! But, estimation is important because it helps to know the cost of an initiative when prioritizing it.

Most teams build roadmaps by breaking down the work, getting a single-time (or time-adjacent) estimate of each work item, and sum up the work items to arrive at a due date. These dates never turn out to be accurate. This is for two reasons:

  1. Getting a single-time-estimate hides the uncertainty present in the estimate. A estimate of 2 weeks of 10% certainty is widely different than an estimate of 2 weeks with 90% certainty.
  2. Software work has a log-normal blow-up factor that needs to be accounted for.

The Statistical AutoScheduler accounts for both of these points.

Finally, even with improved modeling, a single due date can never be provided. Instead, decisions should be made with an understanding of the inherent uncertainty. The Statistical AutoScheduler provides probabilities over a range of dates. For example, while the average due date is March 6th, there's still a 10% chance the work will extend beyond April 2nd:

Jira_Auto_Scheduler

Ultimately, using the AutoScheduler provides both:

  • More accurate roadmaps
  • And, plans that properly reflect uncertainty

... which helps teams make more informed decisions.

How it works

The Statistical AutoScheduler loads a list of epics from Jira containing:

  • An estimate in story points.
  • A confidence from 10 to 100%.
  • A list of blockers
  • An optional "team". If no team is provided, the epic's team will be the epic's project name.

Then, given the team velocities provided to the app, it:

  1. For each epic, randomly selects a "work time" based on the log-normal probability distribution of the epic's estimate and confidence
  2. Schedules out the epics using the following algorithm:
    1. Identify the longest critical path based on blockers
    2. Schedule those epics in the first space allotted for the epic's team
    3. Repeat
  3. Finally, it repeats the scheduling algorithm 5000 times, arriving at a probability distribution for the work as a whole

For more background, check out:

Quick Start

The following Quick Start Video shows how:

  • 0:10 - Adding the Story points median and Story points confidence fields.
  • 1:25 - Creating the initial epics we will use for the roadmap
  • 1:53 - Adding the Story points median, Story points confidence and Story point estimate fields to the Epics screen.
  • 2:43 - Adding Story points median and Story points confidence values to epics.
  • 4:08 - Connecting the Statistical Auto Scheduler to your Jira instance.
  • 4:27 - Exploring the results.
  • 5:10 - Configuring the Statistical Auto Scheduler to write adjusted story points to the Story point estimate field.
  • 5:36 - Saving the plan back to Jira

Quick Start Statistical Auto Scheduler

Full Set Up

To learn how to use this in context, read the full Agile Program Management with Jira Training.

To use it with its default configuration, you need to create and add the following fields to all epics:

  • Story points median
  • Story points confidence

Make sure these fields and the following fields are added to the Epic screens too:

  • Start date
  • Due date

Use

Once set up, you just need to make sure each epic has:

  • A "median" story point estimate. By default, it's assumed to be the Story points median field.
  • A "confidence" in the estimate. By default, it's assumed to be the Story points confidence field.
  • Blockers on other epics set.

Estimating with Time instead of Story Points

The tool can be used with time-based estimates. You just need to do a little math to determine the velocity.