This page covers common Gantt chart concepts, practices, and some key behaviors specific to Gantt Charts. Exploring the concepts on this page can help you understand the basic principles of the Gantt Charts app and how to get the most benefits from using it.
Data access and modification
Gantt Charts depends mostly on Jira data. This includes work items, their fields, links, fix versions, and sprints defined in your Jira instance. Gantt Charts reads that data to build and visualize schedules, show fix versions and sprints on the chart, and display resources. Gantt Charts does not modify Jira data unless explicitly told to do so; it stores its own data (including configuration, baselines, etc.) separately from your Jira data and can be safely uninstalled at any time.
Work Breakdown Structure
Structure’s Gantt Charts have two basic parts:
-
The list of tasks to schedule, usually called a Work Breakdown Structure (WBS).
-
The visual representation of these tasks on a timeline.
Work Breakdown Structures typically represent a hierarchy of work items, often broken down into smaller tasks.
Here you can see a three-level WBS with Initiatives, Epics, and Stories. A WBS may be much more complex, including items from several projects and spanning dozens of levels.
Structure provides an easy way to build and maintain complex, dynamic hierarchies. For more information on building hierarchies, refer to our Structure documentation .
Elements of a Gantt chart
While the WBS contains your work items in an organized hierarchy, a Gantt chart contains various elements positioned on a timeline.
The elements are:
-
Tasks: The deepest-level work items within your hierarchy become task bars, by default.
-
Groups: These represent a collection of work items or objects like Flex items . Work items that contain sub-tasks also become groups by default. A group starts at the earliest start date of its sub-tasks and ends at the latest end date.
-
Milestones : Allow you to mark key points within a project plan.
-
Dependencies : Helps to visualize links between work items. Dependencies are mapped to Jira links, based on your chart configuration. Changes to links in Jira will change your Gantt chart, and changes to dependencies in your chart will change the links in Jira.
Schedule
Elements on the timeline form a schedule. This schedule can be adjusted at any time.
When scheduling a task, Gantt Charts takes into account:
-
The task duration and any date constraints.
-
Dependencies between tasks.
-
When a project is set to start.
Each time it schedules a task, Gant Charts performs the following steps:
-
It tries to determine the task’s duration based on its properties (work estimate, assigned resources, etc.)
-
It looks for any start and finish constraints and schedules tasks based on those ( Automatic vs. Manual Scheduling ).
-
If there are no constraints, it looks for any dependencies that may affect its position.
-
If there are no constraints or dependencies, it places the task at the project’s start date.
In the following example, the positions of all tasks except "Story" and "Manually constrained Task" are determined by their dependencies. The position for "Story" is set to the project’s start date, because it doesn't depend on anything and it has no date constraints. The position for "Manually constrained Task" is determined by its start date constraint.
Group scheduling
Groups are scheduled based on their children. A group's start date is the earliest start date of it's children, and it's end date is the earliest end date of its children.
Task adjustments due to non-working time
In certain situations, Gantt Charts may need to modify a task's schedule to accommodate for non-working time.
A task may be displayed with a different start date, finish date, or duration in the following situations:
-
A task has a manual start or manual finish date that is set to non-working time. In this case, the start/finish date will be adjusted to the first or last available working day, respectively.
-
As you zoom in, non-working time may collapse so that only working time is shown within a cell. For example, at a one-day zoom level, an 8-hour task will fill the entire cell (if you have an 8-hour schedule).
Automatic and manual scheduling
Scheduling for tasks can be handled automatically by Gantt Charts, or you can manually schedule tasks based on start and finish dates from a Jira field you specify.
By default, Gantt Charts schedules tasks automatically based on their dependencies, sprint, or the project start date. Switching to a manual schedule lets you explicitly specify task and milestone positions on the timeline.
If you choose a manual schedule, tasks will use the Jira fields you configure as start or finish dates. Tasks without values in these fields will remain on the automatic schedule. Moving a task within the visual schedule will update the configured Jira date fields. If you configure Resource Leveling to include manually scheduled tasks, it may move manual tasks on the timeline as needed. Adjustments made by Resource Leveling will not affect that task’s Jira date fields.
Manually scheduled tasks will remain fixed on the timeline, even when tasks they depend on change.
Identifying manually scheduled tasks
A solid edge at the beginning or end of a task indicates it uses a manual schedule. If both the start and finish dates are manually scheduled, this line appears on both sides and the task is considered to have a Fixed Duration .
A task is considered manually scheduled if:
-
You set a specific Start or Finish date for the task.
-
The mode switch in the Task Details Panel is set to Manual. Changing the mode to Automatic will make Gantt ignore any values in the Start and Finish fields.
Work estimates and task durations
Work estimates are an estimation of the effort required to complete a task. These estimates do not consider resource availability, work schedule, or other elements. Task durations are an actual projection of the task’s effort level, considering all factors.
For example, if a task has a work estimate of one workday (eight hours), it’s assumed the task will only take that one day to complete. However, if that task is assigned to someone who can only devote two hours a day to a project, the task's actual duration will be four workdays.
Tasks in Gantt charts go through two distinct phases:
-
Estimation: During this phase, a task’s estimate doesn’t use any particular knowledge about the work calendar or the resource assigned to it. Typically this phase is part of a team’s task estimation session for a sprint.
-
Scheduling: During this phase, the estimate, resource settings (including resource availability and capacity), work calendars, and resource time zones are all used to schedule the task to get a more accurate calendar duration
In the following example, the timeline shows the schedule for two tasks with one-week (40 hours) work estimates. Task 2’s actual duration is longer than Task 1 because its resource has less hours per day to devote to the task.
Fixed duration
At times you may want to allot more time for a task than the amount of work required. For example, you may want a task to show an estimate of three weeks even though it will only take someone one week to complete. As another example, you may have several tasks in a sprint that need to be complete before sprint ends, but you don’t have set start or finish dates for each task.
In these, and other, cases, you can assign a fixed duration to a task by giving it a start and finish date, or by entering a fixed duration in the Task Details Panel.
Fixed durations are assigned automatically when you use sprint-based scheduling .
With fixed duration tasks, Gantt Charts distributes the work load evenly across the allotted period of time, taking into account calendars and resource availability. Changes to a task’s work estimate will not affect its duration or its position on the timeline.
Moving the edge of a fixed duration task adjust its duration but does not change the work required to complete the task. For tasks without a fixed duration, dragging the edge will adjust the work requirement and its duration.
Resources
Estimates and dependencies are usually enough to get a task on the schedule, but the amount of resources available to work on a task will affect the actual duration of a task and might impact your schedule.
Resources often represent individual team members—like an assignee in Jira—but they might also represent a team, or another more abstract contributor to the task. You can use existing or custom Jira fields as a resource in Gantt Charts, and then assign those resources to tasks.
While resources are helpful to get an accurate idea of task scheduling, they are not required to use Gantt Charts. By default, tasks are assigned to the “Default Resource” value when added to a schedule. Until you assign an actual resource, tasks are still treated as unassigned and won’t show in the Allocation Chart.
Resource units
Resource units determine that resource’s capacity. In Gantt Charts, capacity is based on a scale where one unit equals one person’s worth of productivity. This means a resource with a capacity of one can complete one hour of estimated work per actual hour of work time.
For example:
-
A full resource worth one unit can complete eight hours of estimated work in a standard eight-hour workday.
-
A resource worth a half unit of availability—a part-time worker, for example—can complete four hours of work in the same workday.
-
A resource worth two units—a team of two people, for example—can complete 16 hours of work in the same span of time.
Availability
It is possible to fine-tune a resource’s capacity by specifying its availability in percents for a particular time range.
For example:
-
If a resource is on vacation, you can add an availability period with 0% availability for that time period.
-
If your team gains a temporary member, you can add a percentage above 100% to create an increased capacity period.
Availability is calculated based on the resource capacity. For example, specifying 200% for a resource with a capacity of two units will temporarily increase its capacity to four units.
Task’s maximum units
The task’s maximum units determines the allocation limit of resources for a given task.
For example:
-
If you two-unit resource, and a task's maximum units is set to one, you can only allocate one unit to that task. This leaves the remaining unit of the resource available for allocation to another task.
-
If you one-unit resource, and a task's maximum units is set to two, the full resource will be used for the task and its duration will use that information to calculate its capacity.
Assigning a higher-capacity resource reduces the time needed to complete a task, up to that task’s maximum units.
Work calendars
Options for defining a calendar in Jira are limited to the number of hours in a working day and the number of working days in a work week. Work calendars in Gantt Charts allow you to:
-
Have several work calendars.
-
Fine tune the availability for individual resources.
You can use work calendars for precise control over common resource schedules, including resources with different work schedules. For example, you can track resources available 24 hours per day alongside resources only available during normal business hours.
Work calendar best practices
When creating work calendars, start with a basic calendar that includes universal times and dates, such as company holidays. You can create variations of this base calendar to define working hours for resources of different shifts without affect their holidays.
If you need to specify vacations and availability periods, you should do so in a resource’s settings instead of creating unique calendars for each resource.
Conversions for work days and weeks
Specify a conversion for hours in a work day and working days in a week in Jira. These conversions provide a more readable format and are used across the entire instance when you create estimates, durations, and other time-related values. Gantt Charts uses these same conversions for days and weeks to maintain consistency.
Gantt Charts' own calendars may contain a different number of hours per day or working days per week, but all time values are still converted into days and weeks using your Jira settings.
For example:
-
You configure Jira to use eight hours of work per day and five days of work per week.
-
You create a Gantt Charts calendar for a half-time resource.
-
You create a one-day task and assign it to your half-time resource.
-
Gantt Charts places this task on the timeline using your Jira conversion settings.
Since your half-time resource only works four hours per day, the task becomes a two-day task on your chart.
Resource Usage
The Resource Usage section of a Gantt chart shows the allocation of a resource's time during a set time frame. In the following screenshot, the allocation for "Full Time Resource" is eight hours each day, while "Part Time Resource" uses only four hours.
The period of time shown depends on the chart’s zoom level. Zooming out shows different values for the same resources and tasks:
You can also display resource allocation by the percentage of each resource’s capacity being used. In the following example, both resources show 100% allocation even though “Part Time Resource” is assigned a different amount of work in hours.
A resource is treated as underallocated (<100%) if it has the capacity to do more work during a block of time. A resource is considered overallocated (>100%) if its workload exceeds its capacity during a block of time.
Resource Leveling
Resource Leveling will help you manage overallocation while respecting each task's duration and dependencies. When a resource is is overallocated, Resource Leveling will attempt to shift some tasks forward on the timeline to reduce the resource allocation.
When you run Resource Leveling:
-
It identifies all overallocated tasks assigned to the same resource at the same time.
-
It determines and holds the tasks that need to be completed first based on dependencies, their leveling priorities, completeness, etc.
-
It then shifts the resource’s other tasks forward.
-
After shifting tasks, it will repeat the process if there’s still overallocation.
Leveling Priority
Assigning leveling priorities to tasks tells Gantt Charts which tasks should be completed first while leveling. Tasks with higher priorities are less likely to shift during the leveling process.
Leveling Delay
The Leveling Delay is an offset added to a task to shift it forward when you run Resource Leveling. You can change a task's Leveling Delay to adjustment a Resource Leveling operation without converting the task to a manual schedule.
Leveling Delay values are stored in Gantt Charts's own storage and are independent from other task properties, such as Manual Start Date or Manual Finish Date.
Gantt Chart slices
If your WBS includes items from multiple projects or teams, it may help to have a custom setting for each project, team, or work item.
-
Each project may use different custom fields to assign resources.
-
Teams may use different custom fields, link types, etc.
-
Sprints may have different names or timelines.
Slices define specific Gantt configuration overrides for these items. For example, you can set a unique Leveling Delay setting for one project, and then set up different link types for another.
This example shows a slice that affects every Epic in the schedule. Now, every Epic will have the “Teams” Jira field assigned as a Gantt resource, a purple highlight, and will show as a task even if they have child items.
Slices apply from top to bottom and are exclusive to each item. If an item matches the criteria for more than one slice, only the first applicable slice will affect it. Go to our Order of Operation article for more information.
More reading
To learn more about creating and configuring a Gantt chart, see Creating a New Gantt Chart and Gantt Configuration .