Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Jira Issue Links and dependencies management

hero-1536x864.png

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 be 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 move on to discussing 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 come across when associating two issues (or tasks).

Types of task dependencies


By linking two issues together you can indicate how one task relates to another, and thus—create 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.

task-dependencies.png

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).

Jira-Issue-Links-default-types.png

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 the human user about the meaning of a given link. Think of it as a way of making a note on an issue explaining why it was linked 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 that you could use for creating 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.

Jira-Issue-Link-blocked.png

  • 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?

Jira-Issue-Link-relates.png

  • 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 keep in mind 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.

“Duplicate” and “Cloners” Jira Issue Links

You can consider both “technical” links.

Jira-Issue-Links-duplicate-and-cloners.png

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.

  1. Open the issue that you want to link to.
  2. Select triple dots (•••) to expand more options. Click Link > Jira Issue.
  3. Choose the type of issue link (e.g., “this issue is duplicated by…”).
  4. Specify the issue(s) you want to link.


Add a comment to describe the reason for linking and select 
Link.

how-to-create-Jira-Issue-Links.png

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 the individual needs of your project. 

  1. Go to Administration > Issues.
  2. Select Issue Features > Issue Linking to open the Issue Linking page.
  3. 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.

Jira-Issue-Links-default-and-custom-types.png

In the screenshot above, you can see the four default Jira issue link types along with 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—again, 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), as well as 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 have probably realized 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 a variety of extensions to supplement its functionalities. Jira add-ons allow you to retain all your project details and settings without the need for 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.

Check the BigPicture video tutorial "How to use links".

Jira dependencies in BigPicture and BigGantt

When it comes to BigPicture, you can visualize dependencies on two modules: the Board module (Scrum and Kanban boards for agile projects) and the Gantt module (Gantt chart for classic projects). Whereas in BigGantt you can create dependencies on a Gantt chart.

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.

Dependencies-in-BigGantt-and-BigPicture.png

Dependency link types in BigPicture and BigGantt

In BigPicture and BigGantt, there are five types of dependencies: the first four types of dependency links are Strong links, and the fifth one is Soft link.

Strong links

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.

BigPicture-Board-Strong-dependency.png

A Strong dependency on a BigPicture Board module.Strong links comprise all the four logic types, namely 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.

BigPicture-BigGantt-Setting-Lag-Time-and-ASAP-mode.png

Setting Lag Time and ASAP mode.

Soft links


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.

BigPicture-Board-Soft-dependency.png

A Soft dependency on a BigPicture Board module. 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 will automatically add Strong dependency link names to your Issue Links list in Jira. It also works the other way round: 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).

Jira-Issue-Links-and-BigPicture-BigGantt-default-dependencies-mapping.png

The App Configuration panel shows default Issue Links mapping in BigPicture (and BigGantt). Here, you customize how you want to map your Jira Issue Links to Soft and Strong dependencies.

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 an 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.

BigPicture-Board-module-creating-Jira-dependencies-method1.png

The BigPicture Board module. A blue line is dragged from task QA-51 to QA-50. When you drop it, it will turn grey. To delete it or edit dependency details (type, lag, ASAP mode), click on it to prompt the edit window.

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.

BigPicture-Board-module-creating-Jira-dependencies-method2.png

Here, you connect two tasks by specifying the target task to the one you have selected (you can use a drop-down menu to look for the target task or enter a full issue key).

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.

Infobar

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.

BigGantt-list-of-dependency-links.png

This view comes from the BigGantt app. The Infobar (on the right) will list all the dependencies present in your project which you can filter based on the type, related task, source, or whether it has Lag or ASAP attributes.

Reports module

If you need a more comprehensive and high-level overview, then you will find what you need in the BigPicture Reports module. 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 that have 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 through yellow to red. If there are no dependencies between projects or iterations, the report will mark it as “No data.”

BigPicture-BigGantt-dependency-report.png

The difference between these two reports is that the Dependency report does not include parent-child dependencies. The Cross-Team report, on the other hand, shows parent-child dependencies but does not present dependencies between tasks of the same team (you will find it in the Dependencies report).

Enhanced JQL

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.

0 comments

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events