On the face of it, Jira has only two or three levels of hierarchy. Standard issue types as parents and sub-task issue types as children are the two levels. Epics sort of makes a third level. But that’s all the hierarchy you have. Nevertheless, while Jira has a limited ancestry tree, nothing limits the web of issue links in Jira.
Hah, the joy of linking Jira issues! From the most generic “related” link to the very specific “duplicates” every Jira user loves linking, and linking, and linking.
With links, Jira reflects the nuances and complexity of real life. Each task is part of a big chain reaction. To be effective in solving any Jira issue we need to be aware of the wider implications. Adding links to a Jira issue is so easy that it’s one of the first things users do. It’s far harder to zoom out and see the big picture. For any nontrivial project, the web of links can lose sense. Information is drawn by data.
What connects the dots?
Consider questions like:
- The acceptance criteria for the story is changing. What is the impact of this on other Stories? On our tests? On the timeline of the release?
- While investigating this bug we found a much bigger problem that has ramifications across the product. What is the impact on ongoing stories, on our backlog? How to trigger the correct set of issues for our backlog?
- We update a specification for the product. How to find the related product risks, and the tests set.
In these scenarios, we need to traverse multiple link chains and review collections of issues. Jira does not make this easy, and the process is always slow and tedious. It requires a diligent review of each issue along the link’s path. It is so slow that people often are guessing their way or giving up.
Enter advanced features and Atlassian Marketplace Apps. Time savers to the rescue! We’ll take it from the most basic to the most sophisticated. Starting with a good old search (aka JQL).
The nuts and bolts: searching along links of issues in Jira
When you want to find Jira issues based on criteria, Jira advanced issue search is the first place to go. To see the links to issues in the search view, add the column “Linked issues” to the view. The column shows any issues linked to the present one but does not give the issue type or the direction.
JQL (Jira Query Language), Jiras’ native search language has syntax to search issues based on their links. You can run these searches:
- Find issues without any links. Use:
issueLinkType is EMPTY
- Find issues that are linked with a specific link type. For example:
issueLinkType = "Traces up to"
- Find issues that are linked to a specific issue through a link of a certain type. Like this:
issue in linkedIssues("GAL-61","Traces up to")
Atlassian marketplace has apps that extend Jiras’ native search capabilities. My favourite is the enhanced search feature of ScriptRunner (also available as a standalone app called Enhanced Search).
For example, you can search for all user requirement issues in the project GAL which are linked via a traceability link to a functional specification. Like this:
Project=GAL AND issuetype="User requirement" AND issueFunction in linkedIssuesOf("project=GAL AND issuetype="Functional specification"", "Traces up to")
The beauty is that you can mix and match. Start by defining the enhanced search filter in ScriptRunner. Then use it in Jira issue navigator as part of a “regular” JQL. To find issues that are not aligned with the rule, type:
!filter="Project=GAL, URS which traces down to FS"
“!filter=XX” is just regular JQL syntax in the regular search view.
More JQL examples
JQL always focuses on a single question and may seem to be to techie for some. But, it’s worth knowing some basic tricks because of two reasons. The first is that most of the more advanced tools (see next sections) have JQL as one of their building blocks. Your JQL knowledge will help you configure those reports to the greatest effect. Second, even JQL alone can help you answer some very useful questions.
Like these (adapt to your use case):
- Find all stories that are planned for the coming release but are blocked:
issueLinkType = "is blocked by" AND fixVersion=V2.0
- Find all stories that are in “In Test” status, but for which the related test is not assigned to anybody
JQL ScriptRunner enhanced search: issueFunction in linkedIssuesOf("project=DEVT AND issuetype="story"", "is tested by") AND assignee is EMPTY
Zooming out to see the big picture in Jira
Understanding the web of issue links in Jira has always been a fertile area for Marketplace apps efforts. Both on Cloud and Data Center there are many apps coming to this need from different angles.
The fact that so many apps get traction is evidence of the variability in situations and business needs.
One of the biggest needs relates to project planning. You’ll discover there are many different apps that are on offer. One option is Atlassian’s own Roadmaps or Advanced Roadmaps (Advanced Roadmap is not an App but does require a Premium subscription). And then there are many apps. Use the search term “planning” on the marketplace. Don’t forget to select your hosting type because there is a big difference between what’s on offer for Cloud or Data Center.
Looking for use cases beyond project planning? Other apps cater to a wider range of cases. For example, managing specifications and traceability matrices. Or looking at relations between risks and mitigations.
Apps that are not only for project planning
Make the time to review what’s on offer in the marketplace. Here are some that are worth considering:
- Structure for Jira: is popular and well established. It provides a lot of flexibility and power to configure a view that is exactly what you’ll need. When I share it with customers they often have an “a-ha moment”. Like Jira data never made more sense.
- Panorama hierarchy & structure for Jira: is a Cloud first app, and even has a free sibling app (see Panorama Lite). Has many of the core features of Structure for Jira and has a friendly user interface. It comes with a lower price tag compared to Structure. The main concern related to this app is that it has not been in development recently. Their roadmap suggests that they have not developed it since 2020.
- Hierarchy for Jira: this is a much simpler app than the two first ones on the list. There is no head scratching or cognitive effort in viewing all your issues in a hierarchy. It’s also cheaper than the other two, and if you do not need the extra sophistication, it might be exactly what you need.
Sharing the big picture outside of Jira
Not everyone is on Jira, and also- a dynamic view that keeps changing is not always what you want. If you need to share the big picture with the boss or submit a progress report to your customer you have two options. Sharing an excel file, or a Confluence page.
You can export CSV/Excel from the Jira search view and from 3rd party dashboards. If Confluence is your documentation hub, then sharing there is the way to go. Of course, you could always attach an Excel file to a Confluence page, but that does not look great
If you have opted for using the Hierarchy in Jira App, you can use its Confluence embed option to show their hierarchy view in Confluence. It is very easy and does not involve extra costs (beyond the Hierarchy in Jira app). In two ways, this is different than an export from Confluence. First, it requires that the user (who views the page) has access to Jira (because the report uses the current users’ access permission to Jira). Second, the view always reflects the current status in Jira, so it is not a static view.
Alternatively, use the Jira Snapshots for Confluence App to share Jira’s big picture with users who do not have access to Jira. It does not require any of the Jira Apps we mentioned above. It uses Jira’s JQL to traverse issue links. It displays a static snapshot of Jira data and gives the user full control over data refresh.
Issue links in Jira are just the starting point
Issue links are one of the important ingredients of Jira’s secret sauce. They are easy to add to issues but connecting the dots along links is not trivial. But don’t despair: some JQL knowledge and using a couple of Apps can take you all the way to big picture clarity.
I hear you say: but that requires a lot of training and user education across our dozens of projects. Not true! This is a task for your Jira Champion in Chief. They need to take these steps:
- Understand the main use case for your organization and use it to select the most suitable apps.
- Create a set of shared filters, and use them to configure and define the best reports and Dashboards.
- Document what they have done in a knowledge base article. Helping other projects across the organization replicate this.
In this way, the solution becomes scalable across your organization. The vast majority of Jira users will never need to know the technical details. The big picture filters and reports will be integral to their Jira experience.