How to create custom Jira workflows to manage software development
What is Jira?
Although originally designed as a bug tracker, Atlassian’s Jira has over the years become the company’s 900-pound gorilla for managing software development projects.
There are a number of reasons for this popularity, from its central role in Atlassian’s larger DevSecOps toolchain to the large number of third-party plugins available in Atlassian’s marketplace. One of the contributors to this popularity is the flexible way Jira handles workflows, allowing teams to adapt the tool to how value moves through their workflow, instead of changing how the team works to align with the tool.
SEE: Recruitment Kit: Back-end Developer (TechRepublic Premium)
What is a workflow?
In software development, a workflow defines the stages and statuses that tasks go through as part of a team’s process. Out of the box, Jira provides a simple three-step workflow (Figure A).
You can imagine if you were developing, say, a mobile ordering app for a quick service restaurant, and your team was tasked with adding the ability to accept credit card payments, how that work might go from left to right.
Your Product Owner would write the requirements and, when ready, place the task of implementing that feature in To Do. A developer would then start working on that feature by marking it in progress. When she has finished this work, the construction is handed over to a tester. If everything works as expected, the tester moves the task to Done.
Throughout the process, Jira provides visibility to all stakeholders not in the code, allowing a project manager to track schedule and indirectly track budget.
How the software is developed
In reality, software development is not a linear process. It has starts and stops and must often repeat process steps until the desired result is achieved. Even our simple, out-of-the-box workflow doesn’t just flow from left to right. Here’s a more realistic representation of how tasks turn out in even the simplest Jira workflows (Figure B):
Major Workflow Components
Before delving into what an ideal workflow is and how to create it using Jira, it is important to define the level of key components of a workflow as defined by the tool.
This is the current state of a discrete work item. In our simple workflow, a task is either To Do, In Progress, or Done.
These are the actions performed in the tool to move a task from one state to another. In our example, assigning something in To Do status to a developer can change that item to In Progress.
When a task is finally completed, it requires an associated resolution. Resolution is the disposition of the end state of a work item. It is considered finalized or no longer open. In our simple workflow, it’s Done, but in a more advanced workflow, you may have other possible resolutions such as Canceled or Posted.
The majority of software teams that use Jira for project management today manage their projects using some form of agile development. This means – in a group context – that the team frequently works from some kind of board, usually kanban or scrum. So it’s no surprise that workflows in Jira correlate with columns in your boards.
Recommended Software Development Project Management Workflow
There are no right or wrong answers as to what your software development project management workflow should be in Jira. The workflow can vary, even within a team, for different types of tasks.
For example, the workflow for a software bug will likely be different than for a new feature. Even with slight naming variations to align with your organization, there are some best practices you can refer to for guidance.
A category is one of the most important and often overlooked properties when creating a project management workflow in Jira. In Jira, there are only three categories, and you’ve seen them before (Figure A).
In the simplest, out-of-the-box workflow, categories and statuses are the same. However, as we develop and customize our workflow, all new statuses must fit into one of these three categories. Why? For reporting and automation. Jira has a number of predefined reports, like burn down, that only work if no matter how many reports you add to your custom workflow, all fit into one of these three predefined categories (Figure C).
Here is the approximate list of all known jobs that your team has sorted by priority. All tasks that enter the workflow start in the backlog.
Once sufficient requirements are met and a task is deemed ready, it moves to the To Do state where it is available for a developer to start coding.
Since the task is being completed by the developer, it is considered in progress. When the developer completes the task to their satisfaction, they move it to Test.
As a good practice, a developer does not test his own work. Thus, items marked as Test are being evaluated by another team member, usually a QA engineer or the product owner, to ensure that all acceptance criteria are met.
Tasks that pass the test phase are resolved with the status Completed.
If, for any reason, from the time a task enters the backlog, until the time it is marked as complete, the team decides that the work will not be completed, it is resolved with a Canceled status. This ensures that we can track that the task has been considered and in some cases started, instead of just deleting it, which would provide an incomplete picture down the road.
At any time after work begins, if a team member cannot continue working on the item, they are moved to Blocked. The intent here is to draw attention to an item that has been committed and is not being worked on so that the team can work around the issue and unblock it.
How to configure Jira
Creating the workflows in the Jira tool itself is quite simple and can be found on the Atlassian site.
Note that workflows are created differently depending on whether you have a “company-run” project or a “team-run” project. If you’re not sure which applies to you, look in the lower left corner of your project’s sidebar. It should say either “you are in a team-managed project” or “you are in a company-managed project”.
Once you’re happy with the type or project you have, follow the appropriate links on the Atlassian support page. If you’re not sure you want to tackle setting up your own project management workflows for software development, consider a plugin from Atlassian’s Marketplace to do that for you.
4 tips for creating custom Jira workflows
When setting up your workflows, keep these tips in mind.
- Don’t think too much about it: The simpler the better.
- Group Categories: It is generally not recommended to group all of your running steps, as this impacts your ability to measure cycle time.
- Consult all your stakeholders: The idea is to create workflows that meet everyone’s needs.
- Lean into your transitions: This will allow you to create validation steps, automation rules and even control assignees.