• Products
  • Documentation
  • Resources

How does the Auto-scheduler in Advanced Roadmaps work?

This page refers to Advanced Roadmaps, which is a cross-project planning tool only available as part of Jira Software Cloud Premium and Enterprise.

We have a separate section for documentation about the project roadmap that’s included in all Jira Software plans. Go to the documentation for project-level roadmaps in Jira Software.

 

The Auto-scheduler constructs a plan using issue details which you can then adjust to meet your exact needs. To do this, it balances a range of different values from the dates assigned to an issue, issue estimates, a team’s capacity and velocity, and any dependencies between issues. There isn’t one aspect that the Auto-scheduler focuses on, but rather takes all of them in aggregate.

However, one requirement for all issues is that they have a To Do or In Progress status. Issues with Done statuses are ignored by the Auto-scheduler. Beyond this, you can select which issues you want the Auto-scheduler to work on by selecting issues in the Scope column before using it. If you select none, the Auto-Schedule works on your whole plan.

Administrators also have the ability to dictate whether the Auto-scheduler overwrites data, or can only work with empty values. Learn how to configure the Auto-scheduler.

This is just the tip of the iceberg. On this page, we’ll cover the following topics:

How the Auto-scheduler handles dates

When scheduling issues, the Auto-scheduler looks at the issue’s start and end date. Any assigned dates take priority for an issue.

If it has none, then the Auto-Scheduler looks for a sprint assignment, and assigns it those dates.

If it has no sprint assignment or assigned dates, the Auto-Scheduler checks to see if it’s included in a release, and then assign the dates of the release.

How the Auto-scheduler allocates capacity

In order to allocate capacity, your issues need to have an estimate. Issues without estimates may still be scheduled according to dates, but won’t be included in capacity calculations.

The Auto-scheduler assigns capacity in a sprint on a first-come, first-serve basis, with priority given to:

  • issue rank as defined on your timeline - the Auto-Scheduler starts at the top of your plan and works its way down based on issue rankings; issues ranked higher are scheduled first. Learn more about issue ranking.

  • an issue’s scheduled end date and estimation

  • issues of lower hierarchy levels (stories or subtasks take priority over epics or initiatives)

    • for the reasons discussed below, we recommend that you only estimate issues at the story level, and that you show rolled-up values in your plan

Outside of these main pillars, the Auto-scheduler also considers other plan data:

  • Issue source assignment - teams associated to an issue source (board, project, or filter) are prioritized when assigning work

  • Team velocity - a higher team velocity means that more work can be done in one sprint

  • Number of team members - since the Auto-scheduler assumes that one person can handle one story-level issue at a time, the number of team members affects how many issues can run in parallel

  • Sprint information such as duration and capacity

  • Releases

    • If this field is empty, the Auto-scheduler assigns an issue to the next available release

  • Dependencies

    • if two issues are dependent on each other (also known as a cyclical dependency), they’ll be ignored by the Auto-scheduler; examples include:

      • issue A blocks issue B, and issue B blocks issue A

      • a story has a dependency to its own subtask

Advanced Roadmaps assumes that each team member can work on one story-level issue at a time. With that in mind, it distributes an issue’s estimate based on capacity of one team member, which it calculates this using the following equation, assuming the capacity of each team member is equal:

  • [team’s capacity per iteration]/[number of people in a team] = [capacity of one team member]

With that value in mind, the Auto-Scheduler creates a plan based on the amount of capacity each team member has available to do the work. It consumes one team member’s capacity for an iteration, then moves onto the next team member, repeating the process until the work is assigned. If there is still more work to do, a new iteration is started and the process continues until all the issues have been allocated.

For example, if a team of five has a capacity of 20 story points, Advanced Roadmaps would calculate an individual team member’s capacity to be four points per iteration (20/5=4). With that determined, Advanced Roadmaps would then distribute a story-level issue with a value of 10 story points over three iterations as follows:

  • iteration 1: four points

  • iteration 2: four points

  • iteration 3: two points

How the Auto-scheduler handles higher hierarchy levels

As covered above, the Auto-scheduler assumes that one person can work on one task when dealing with story-level issues. This isn’t the case when working with hierarchy levels above epic; if your plan includes an estimated issue at the epic-level or above, the Auto-scheduler schedules the issue according to the team’s full capacity, as it assumes that everyone can work simultaneously on it.

If, in the example above, the issue that you estimated at 10 story points was an epic (instead of a story-level issue), the Auto-scheduler would assign it one sprint instead of three.

To resolve this, we recommend that you only estimate issues at the story level, and that you show rolled-up values in your plan.

How the Auto-scheduler handles active sprints

This is a common source of unexpectedly overbooked sprints.

The Auto-scheduler handles active sprints differently than future planned sprints.

First of all, the Auto-scheduler won’t reschedule issues in the active sprint, even if it’s overbooked.

Secondly, the Auto-scheduler won’t overwrite any values of issues in the active sprint. Sprint, Team, and Release can only be overwritten in the active sprint if the field is empty. Learn how to configure the auto-scheduler.

How the Auto-scheduler balances deadlines versus capacity

This is a common source of unexpectedly overbooked sprints.

However, the capacity distribution algorithm in Advanced Roadmaps honors any manually configured end dates that you set for an issue more than capacity. If the scheduled duration of the issue isn’t enough for the individual team member’s capacity to handle, Advanced Roadmaps distributes the capacity as outlined above until the iteration where the issue is due. In the last iteration, Advanced Roadmaps allocates all remaining estimate values in order to make your deadline.

If the example above was estimated at 16 story points (instead of 10) and had a due date at the end of the third iteration, Advanced Roadmaps would distribute the capacity as follows:

  • iteration 1: four points

  • iteration 2: four points

  • iteration 3: eight points

To change this behavior, revise the end dates of your issues as to not exceed the capacity of your team members, or adjust your issue’s estimate. You might also break down your work into smaller tasks and assign it to multiple people.

Additional Help