When working on a big project with cross-department dependencies we were usually tracking all our work in Jira. If some of the issues were dependent or blocked we linked issues together and waited till blockers were addressed.

This works great when the relationships aren't complex and when you need to track only 1st level links. You can simply see them in Linked issues section in issue detail.

But often it happened that issue that was blocking the first was blocked by the other. And this is how the idea of the Issue Dependency map was born.

What it does

Issue Dependency Tracker visualizes nested issue dependencies on the simple treemap.

Using this map you’ll:

understand the full context of the relationship between the issues,

see what is that status and type of linkage of the issues (also nested issues).

How I built it

We pulled all the dependencies of the subject issue and structure it accordingly in preparation to send to a 3rd party service called that exposes an API to send data and return a processed diagram image. This dependency diagram then gets embedded into the issue fragment using the Image component from Forge-UI

Challenges I ran into

Due to Forge limitations and restrictions in rendering any sort of pure HTML and CSS elements we had to come up with an alternative to generating the diagram

Translating the dependencies from current structure into a new one was a bit of a hassle

Accomplishments that I'm proud of

The initial planned implementation was going to be with the use of SVG canvas but we quickly decided against that due to the level of complexity required to build a dependency system based on SVG shapes. It was a great moment when one of our team members suggested this 3rd party library which enabled us to build the Forge app quick.

What I learned

That when there are limitations you get creative :)

What's next for Issue Dependency Tracker

Initial step will be to convert it into a Conect app to publish on the Marketplace. Eventually, when Forge is ready, port back to Forge.

Built With

Share this project: