Dependencies indicate the relationship of one task to another in a logical sequence. They help to visualize the order in which you need to proceed with the issues and estimate the timeframe for them. Identifying and estimating dependencies can be challenging but so can finding the tool that will help you scale your project with complex dependencies.
In this post, you will learn about Jira Links and how you can use them to create different relationships between issues in your project. We will then discuss two powerful Jira extensions: BigGantt and BigPicture. We will show you how you can leverage them to easily build and track task dependencies—no matter the size of your project.
Today, you will learn about:
- Types of task dependencies.
- Issue Link types in Jira.
- Using Jira Issue Links to indicate relationships.
- Building Jira dependencies.
So first, let’s cover the main types of relationships you can encounter when associating two issues (or tasks).
Types of task dependencies
By linking two issues together you can indicate how one task relates to another, thus creating the order of their execution. But that order can vary depending on the sheer relation between tasks. In general, there are four logical ways to link issues/tasks together to indicate the order and build a schedule. These are:
- Finish to Start (FS): one task can only start when the other one has finished.
- Finish to Finish (FF): one task can only finish when the other one has finished.
- Start to Start (SS): one task can only start when the other one has started.
- Start to Finish (SF): one task can only finish when the other one has started.
Jira Issue Links
First of all, what are Jira Issue Links? Well, a link in Jira is simply just a link. It shows a relationship between two elements but nothing more. You can use Jira Issue Links to create an association between either two issues; between an issue and a Confluence page; or between an issue and another webpage (URL). One of the issue-to-issue associations could be showing dependencies between different issues.
In essence, setting a Jira Issue Link is like saying: “Hey, pay attention! This issue relates to another in a certain way.” Therefore, you would use an Issue Link of your choice to describe a given relationship. And to do that, you can pick from four default Issue Link types (available in Jira’s latest installations).
A few words of explanation:
- Name means the link type.
- Outward Description explains (describes) how an issue affects another issue.
- Inward Description explains (describes) how an issue is affected by another issue.
Does Outward or Inward Description do anything in particular? Not really. They serve no function aside from informing human users about the meaning of a given link. Think of it as a way of leaving a note on an issue explaining why you linked it to another issue and what is the logical connection between them. These four link types come by default but you can add other custom links if you wish (more on this later).
So by now, we know that Jira Issue Links are for associating two tasks (or other elements) together. But can you use them to create dependencies between them? Yes, in a way, you can.
Using Jira Links to indicate dependencies
As you might have noticed, we have bolded two top Jira Issue Link types. The reason is that each of those four links, albeit created the same way, serves a different purpose. The two top ones (Blocked and Relates) are the links you could use to create relationships that, in business, would mean dependencies. Whereas the two bottom ones (Duplicate and Cloners) are more useful for technical associations.
“Blocked” and “Relates” Jira Issue Links
Let’s say you have two issues that belong to the same project: Issue A and Issue B. You want to link them to mark that Issue X should not start before Issue Y. In such a scenario, you would go for the “Blocked” Issue Link.
- Issue A “is blocked” by Issue B (A cannot start until B finishes).
- Issue B “blocks” Issue A (B must first finish to let A start).
So in a business sense, it is a dependency. Precisely, it is the Finish-to-Start (FS) dependency. It could also work the other way round; you could link A to B to have the Start-to-Finish, Start-to-Start, or Finish-to-Finish task relationship. It all boils down to identifying which issue blocks which.
What about the “Relates” Issue Link?
- Issue A “relates to” issue B.
- Issue B “relates to” issue A.
Again, it is some sort of dependency and this link does not specify the precise relationship between the two tasks either. You could provide more details in both tasks to explain which one should start/finish first to let the other transition. This way, you could create different types of task dependencies (SS, FF, FS, SF).
But neither the “Blocked” nor “Relates” link says anything about the exact connection between those two issues. They only specify what blocks or relates to what—but not how.
Moreover, please remember that Jira Issue Links have no functionality to restrict user actions based on them. For example, you could create a “Finish to Start” link type with the “Blocked” link but JIRA will not prevent one issue from starting until the other issue has finished.
So the bottom line is that you can link tasks in Jira to describe a specific order you want them to move on. But no matter which Issue Link you pick, for Jira, it will make no difference, and your choice will not affect your project schedule in any way.
Not a BigPicture user yet? Start your 30-day trial today. Or visit our demo page to try all the BigPicture features in your browser (no installation or account required.)
“Duplicate” and “Cloners” Jira Issue Links
You can think of both as “technical” links.
Simply put, they indicate that a given issue is a duplicate or a clone of another. It is unlikely you will find them useful in creating dependencies. But they still might come in handy when you want to follow up on the same or similar issues within your or another project.
How to create Jira Issue Link
Before you start linking your dependencies in your Jira project, make sure you have the “Linked any issues” permission to do so.
- Open the issue that you want to link to.
- Select triple dots (•••) to expand more options. Click Link > Jira Issue.
- Choose the type of issue link (e.g., “this issue is duplicated by…”).
- Specify the issue(s) you want to link.
Add a comment to describe the reason for linking and select Link.
You can search for the issues you want to link by its full issue key (e.g., FHC-4), or using a basic text search or advanced text search. You will need JQL (Jira Query Language) for the latter one.
How to add a custom Jira Issue Link
Your Jira administrator can activate more link types, depending on your project’s individual needs.
- Go to Administration > Issues.
- Select Issue Features > Issue Linking to open the Issue Linking page.
- In the Add New Link Type form at the bottom of the page, provide:
- “Causes” in the Name text field.
- “causes” in the Outward Link Description text field.
- “is caused by” in the Inward Link Description text field.
4. Click the Add button.
You will see the Issue Linking page featuring the default and your new link types.
In the screenshot above, you can see the four default Jira issue link types and a few custom ones.
How do I see Issue Links in Jira?
Can Jira show Issue Links that indicate dependencies? Yes, but it does not visualize them, so you will have to search for them manually—using JQL.
All linked issues
To get the list of issues linked to a specific issue, use the built-in JQL function linkedIssues(issueKey).
Linked issues by link type
To get the list of issues linked to a specific issue with a specific link type, use the built-in JQL function linkedIssues(issueKey, linkType).
All issues by link type
Remember the link types? Yes, the four default ones (Blocked, Duplicate, Cloners, Relates) and any other custom ones you might have added. To list all issues that have linked issues with a specific link type, use the hasLinkType(linkType) function. For example, “hasLinkType(Cloners).”
Please note that this is not an exhaustive list of all the possible functions you can use to perform search queries on Jira linked issues. Please refer to Jira’s JQL documentation and guides to learn more.
Building Jira dependencies
By now, you probably realize that Jira is not the most optimal tool for dependencies management. Setting up Issue Links is a manual process and you cannot take full advantage of the logic types of task dependencies. You have no way of visualizing or conveniently tracking them either.
But what is great about Jira is that you can choose from various extensions to supplement its functionalities. Jira add-ons allow you to retain all your project details and settings without switching to a completely new environment and starting from scratch.
So if we are talking about creating full-fledged Jira dependencies, one of the best options you can get is BigPicture and BigGantt. Both tools allow you to visualize, track, and create dependencies in your project, whether you run a classic, agile, or hybrid project. They will also enable you to manage all your initiatives on the project, program, and portfolio levels.
Jira dependencies in BigPicture and BigGantt
Regarding BigPicture, you can visualize dependencies on two modules: the Board module (featuring an Agile board) and the Gantt module (featuring WBS and Gantt chart). Whereas in BigGantt, you can create dependencies on a Gantt chart only.
Dependencies in BigGantt and BigPicture modules (Board and Gantt)
Here’s a brief overview of what you can do with dependencies in BigPicture and BigGantt.
Dependency link types in BigPicture and BigGantt
BigPicture and BigGantt have five types of dependencies: the first four dependency links are Strong links, and the fifth one is a Soft link.
A Strong link between two tasks means that a period change in one task will have a scheduling impact on another. A strong dependency is displayed as a solid arrow in BigGantt, and as a dotted arrow on the BigPicture’s Board module. When you make any changes to the schedule of one task, the app will automatically re-schedule the other one.
A Strong dependency on a BigPicture Board module. Strong links comprise all four logic types: Finish to Start, Finish to Finish, Start to Finish, and Start to Start. Every task on the timeline has two significant sides – the left and the right. These sides signify the Start and End Dates and will determine whether a dependency will be Start to Finish, Finish to Finish, and so on.
Moreover, you will be able to add lead or lag time to your tasks and enable ASAP mode if needed.
- Lag Time is the additional amount of wait time added between two tasks. In other words, a successor task gets accelerated in relation to its predecessor (here, the predecessor gets delayed). You can add Lag to any type of dependency.
- ASAP mode is the scheduling mechanism whose purpose is to try to reduce the gap between dependent tasks to a minimum.
A Soft link is an arrow that connects two tasks whose purpose is to attract attention to certain relationships. A soft link is visualized by a dotted arrow in BigGantt and as a solid arrow on a Board module. Soft dependencies do not reschedule anything, but they are great for monitoring selected relationships in your project. While it permits cases like “constructing roof before walls,” it will visually alert you (turning from green to orange to red) that a given schedule is impossible to execute.
Do you practice the Scaled Agile Framework? If so, please note how the BigPicture Board’s dependencies correspond to SAFe’s Red Strings.
Mapping Jira Issue Links to BigPicture/BigGantt dependencies
When you install BigPicture or BigGantt, the app automatically adds Strong dependency link names to your Issue Links list in Jira. It also works the other way around: whenever you create a new Issue Link in Jira, you will see it in BigPicture/BigGantt, too.
So what is left to do is to tell the app which Issue Link means which dependency.
By default, when you install BigPicture (or BigGantt), you will see in the App Configuration panel that the “Blocks” Jira Issue Link is mapped to the Soft link in the app. The Strong links, however (e.g., “End to start link”) are not specified. It means, that the app does not know which Issue Links from your Jira project should consider as Strong (i.e., which of your Jira links should impact your project schedule).
Therefore, you will need to either:
- Customize dependency settings (in the App Configuration panel) by selecting which Jira Issue Links will be a Strong type;
- Leave the default settings as they are and create dependency links between the tasks by hand.
NB: Please note that you can assign only one type of Issue Link to one type of dependency. For example, all “Blocked” Jira links will become “End to Start” dependencies, therefore, no other Jira Issue link can be the “End to Start” Strong link.
How to create dependencies
You can create a dependency link in two ways.
The first method is a simple drag and drop. When you hover over the issue card, a grey dot will appear on the right side. Drag and then drop it on the task you want to link. Keep in mind the direction of the tip of an arrow, i.e., whether it goes from task A to B, or from task B to A.
With the second method, you click on the grey dot to prompt the “Create dependency” window. Enter your details and click the “Save” button. This method is much more convenient when working with numerous cards, but you need to know the Issue Key of the task you want to link.
Tracking Jira dependencies
Visualizing dependencies on Agile boards (Scrum board, Kanban board) or Gantt charts help managers predict conflicting schedules, estimate times, and make apt adjustments. But if there are dozens or hundreds of interdependent tasks, then you need to have a way of tracking them.
In BigPicture and BigGantt you can look up your project dependencies on the Infobar, which you will find on the right hand-site. You can conveniently expand (open) and collapse it (hide) whenever you need it.
You will find what you need in the BigPicture’s Reports module if you need a more comprehensive and high-level overview. You can generate two reports with this module: the Dependencies report and the Cross-Team Dependencies report.
Both reports consist of matrices that show the names of projects or iterations with at least one dependency. The matrix shows the number of dependencies between projects and their iterations from lower levels (PI Iterations, Sprints, etc.). Depending on the number of dependencies, the color will change from green to yellow to red. If there are no dependencies between projects or iterations, the report will mark it as “No data.”
The difference between these two reports is that the Dependency report does not include parent-child dependencies. On the other hand, the Cross-Team report shows parent-child dependencies but does not present dependencies between tasks of the same team (you will find it in the Dependencies report).
If you are familiar with Jira’s Query Language, then you can use BigPicture’s enhanced JQL to look for specific dependency links in your project.