Approval management is the missing piece of the Jira toolset
Native Jira’s only approval management functionality is in Jira Service Management (JSM), and we’re being kind when we say it’s, urm, not the best. In Jira Software and Jira Work Management (JWM), a workaround is your only option for getting a process, proposal, or purchase approved within Jira.
And yet, it’s something users are frequently asking for help with on the Atlassian community, specifically, how to add an approval step to a Jira Software or JWM project.
So why did the powers that be at Atlassian decide that approvals aren’t important? And why are they wrong? Let’s explore.
Approvals: more waterfall than agile?
What we need to remember is that Jira is an agile project management tool originally designed for software development teams. Having to get work approved by a higher-up is more associated with the waterfall model of project management, where there is typically a strict hierarchy with multifarious documentation requirements.
But in agile, there is no hierarchy. Agile practice is about teamwork and giving people the tools to do the jobs they know how to do and trusting them to get it done. And it’s about delegating decision-making to the people best-placed to make them. There is no formal review and approval process and the key decisions are usually made by the product owners.
Excessive approvals, particularly by leaders ill-equipped to make them, is one of the reasons waterfall is frowned upon and considered outdated. Stakeholders reversing technical decisions made by the much-better-placed software team, and approval processes that cause all work on a project to grind to a halt, are a recipe for delays and poor delivery. The sorts of outcomes that led to the creation of agile in the first place.
So it’s understandable that approval management wasn’t really on Atlassian’s radar when they developed Jira.
But Jira isn’t just for agile teams
These days there are many more teams using Jira than just software development teams, and Atlassian have been trying to accommodate those teams as best they can. For example, in an IT service management context, ITIL prevails over agile. That’s why Jira Service Management comes with an ITIL change management workflow with the approval functionality that IT service teams expect.
Unfortunately, Jira Software and Jira Work Management haven’t quite caught up yet, even though the need for approvals in Jira is rising thanks to surging adoption among business teams. For teams like HR, legal, operations, and procurement, approvals are an everyday function.
It’s also a bit simplistic to say that approvals are always not agile. Every project has technical requirements and business requirements. While individual teams should be in charge of technical requirements, it is a stakeholder’s prerogative to get involved in business requirements. After all, stakeholders are the ones who write the checks, so if they want to overturn a decision about what a product is supposed to do, that’s their choice. And in fact, the whole point of agile is to let stakeholders change their minds often and catch any stupid decisions they make faster.
The TL;DR of all this is that not having any kind of approval functionality in Jira Software and Jira Work Management has become a problem for many users. Users who must resort either to slow, manual, and difficult-to-track methods outside of Jira, or use a workaround like the one we’re about to describe.
The workflow workaround
Setting up an approval process via your workflow and project roles will work, but it’s basic and cannot offer the sort of visibility that built-in Jira approval management would.
The way to do it is by creating a project role called “Approver” and assigning this role to those who will approve the requests. You then create two statuses in your workflow: one called “Awaiting Approval” and one called “Approved”. The transition between those states represents someone giving approval. You can also put a condition on the transition to only allow those you’ve assigned as “Approvers” to transition the issue to the “Approved” status.
The main downside of this approach is that it can get very complicated. In Jira you have workflows for all your issue types, but only certain issues are going to require an approval step. That means you have to create more issue types and more workflows just so you can add an approval step. And because the need for approvals tend to be project-specific, but your workflows are designed to be used across multiple projects, you’re going to end up with hundreds of workflows cluttering up your system.
What would be better is having proper approval templates that are project-specific and don’t require you to generate hundreds of artificial issue types and workflows.
Time to ditch the workarounds
Workarounds are better than nothing, but they’re stopgaps and can lead to a very messy set of processes, certainly in the case of the one described above. What you really need is an add-on from the Atlassian Marketplace that is purpose-built to enable you to create approval processes within Jira.
As luck would have it, we’ve made one and it’s called Approval Path for Jira. This app lets you create multiple, project-specific templates for approving a piece of work, including adding steps, choosing roles, and defining an order. And it provides centralized approval management with at-a-glance views of which stage issues are in. Your approvers can even be external, without access to your Jira instance, but still approve work in the platform.
Approval Path for Jira is much more comprehensive and flexible than the workflow approach, with different types of approvers to choose from (e.g. single users, groups of users, and external users) and automation options. The workflow approach is a bit like ‘group’ approval but much more limited.
At the end of the day, you want to be approving things in Jira, because if you’re doing it outside of Jira, that’s when approvals can slow everything down. Like when requests for sign-off linger in paper trays or email inboxes for days on end and nothing happens in the interim. Approval Path for Jira keeps things moving, efficient, and within Jira, which is increasingly where everybody is.
In next week’s article, we’ll walk through how to use Approval Path for Jira.