By Kian Stack
Resolutions in Jira are often overlooked. Frequently, I find that clients aren’t using the resolution field appropriately. In fact, some projects will not use the resolution field at all! Most of the time, this is because they don’t understand the differences between resolutions and status, and when one or the other should be used.
According to Atlassian, a resolution represents “the ways in which an issue can be closed”. Another way to phrase this might be that a resolution is a justification for why work is no longer being done on a ticket. Tickets might be closed because work has been completed, but they could also be closed because the team is choosing not to work the issue. In either case, a Jira ticket should indicate why work is no longer being performed.
Jira comes with a number of resolutions already defined, but more can always be added by an administrator.
People often wonder what the difference between a status and a resolution is. The easiest way to explain the difference is that statuses indicate where work is in a process whereas a resolution tells a user why a ticket was closed.
Jira has a number of built in functionalities keying off the resolution field. For example, several programmed filters consider “open” tickets any that are unresolved- that is, tickets without a resolution value. In addition to prebuilt filters, several of the dashboard gadgets operate in the same way. One gadget operating in this way way is the “assigned to me” gadget. This gadget will return any tickets assigned to you without a resolution set.
If you fail to set resolutions on tickets, Jira will consider them as open items. This can become a real problem.
The illustration above is a good example of a ticket that has been closed in my workflow, but because it is unresolved, it is appearing in the filter “Open Issues”. More information about resolutions can be found here.
Now that we understand why resolutions are important, we need to make sure that we are using them properly. Atlassian has provided us with a couple of ways to ensure resolutions are set, but both require some level of knowledge about workflow configurations.
This option is good for teams where work items are closed for only one reason. This will be best for teams that are tracking simple to do items across a workflow from start to finish. To configure, perform the following:
Navigate into the “Settings”>”Issues”>”Workflows” and find the workflow that isn’t properly setting your resolution.
Edit the workflow and look for transitions leading to your ending status.
Create a new post function to update a system field and use that to set the resolution field for tickets that follow this transition.
The second option mentioned earlier, leveraging transition screens on issue closure, is actually quite similar, and fairly easy to configure.
First, you need to make sure you have a screen with the Resolution field present. To accomplish this, we can head over to “Administration”>”Issues”>”Screens”>”Add Screen”
When you’ve created you screen, be sure to add the resolution field to your screen.
Once you have the screen, allowing users to set resolutions as simple as adding the screen to your workflow transition(s). If you weren’t aware, when the Resolution field is present on a screen and that screen is shown, the resolution field is required. This will ensure that our users fill out the resolution field when given this screen. From the workflow, click on the transition(s) leading into your ending state and press “Edit”. Select the screen with the resolution field and publish the workflow.
We don’t want our resolution filled out before a ticket is completed, so this screen should only be available on a transition that is leading to an ending state of your workflow.
As demonstrated above, the resolution field is an important concept to master in the Jira environment. Take some time and make sure that your teams are properly setting resolutions today! The concepts aren’t difficult, but they are important to master. Checking your workflows now can save a lot of pain down the line!