How do I build the workflow I want?
If your team does work that is more complicated than 'to do', 'in progress', and 'done', then you'll need to customize the way your typical processes are set up in JIRA Core. One way to do this is by modifying the way particular task types are handled in the workflow.
You need to be a JIRA administrator to create and edit workflows.
Manage processes using workflows
The way tasks and processes are managed in JIRA Core is through workflows. A workflow maps out the steps and statuses that a task can go though, and defines your process. Here's an example workflow for making website updates:
Key workflow components
A JIRA Core workflows are made up of several key components.
Status: current state
Statuses represent the current state of the piece of work. A status usually aligns to the stage of a process, for example 'scoping', 'drafting' or 'review'.
Transitions: change events
Transitions are the actions that move a task between statuses, e.g. 'Sent to review'.
Resolution: final state
When a task is finalised, and no longer open, it needs a resolution status.
The resolution closes the issue and represents the final state of the piece of work, for example, 'done', 'published' or 'shelved'.
Workflow steps are mapped to board columns
If you use boards, you'll notice there is a correlation between your workflows order and your board. Each step of a workflow is associated with a column on the board.
They may correlate one to one, or there may be multiple workflow steps associated with one column. For example, an issue with the workflow steps 'draft', 'review', 'approve' might all appear in the 'In progress' column.
Keep workflows simple
JIRA Core workflows are designed to make your work processes easier, so make sure you keep them as simple as you can. Here's an example of a typical editorial process:
In the example above, a piece of work can only move forward in the process. However, we can simplify it a lot further by creating a review loop, instead of separate review statuses.
The loop allows us to move our work back and forth in a draft and review cycle.
To help you simplify processes, map them out in full (like the top example), then look at where you can consolidate steps. Remember that each step represents the current state of a piece of work, so if it can be in one state multiple times, consider having only one status to reflect this.
Pro-tip: Don't create a custom workflow for every variation of task that you do. Try to re-use workflows for as many processes as you can.
Consult all stakeholders
If your process involves multiple people, teams or groups, then you need to develop a workflow that meets everyone's needs. Get stakeholders in a room to talk about requirements and minimum must-haves. Here are some things to think about:
- What are the basic steps in the process? What steps are done by each group, team or person? Are any steps repeated or looped, such as review steps or approval gates?
- What information is required to complete the process? For example, is there a request form? Are there designs or assets involved? What is the final output?
- What restrictions does there need to be to ensure that the process is followed? For example, can some steps only be done by some people? Who are the approvers?
Low-tech tip: use a whiteboard to create a flow diagram that everyone can see and agree on.
Manage task actions through transitions
You can take control over how your issues 'behave' as they are progressing through the workflow by customizing transitions. For example, you can make sure issues are always assigned to a certain person when they are in a certain status.
Note that this is an advanced task.
Use 'Conditions' to determine who can change issues from one specific status to another. For example, make it so that only a particular assignee (e.g. a reviewer) can change the issue status to 'Ready to publish'.
Use 'Validators' to ensure that a status change gets validated before it happens. For example, before changing to a 'review' status, a validator can check if a draft is ready.
Use 'Post-functions' to trigger specific changes on issues after they have passed conditions and validators. For example, you can set a post-function to make sure a resolution reason is always given when the resolution is set.
You can make it so that whenever an issue status is changed, it forces the user to choose a new assignee. This ensures that the next part of the work gets one by the right person.
JIRA Core recognizes some properties on transitions. The most common one is to limit resolutions displayed to the user on a given transition. For example, we might want the resolution scratched to show up for disk media when retiring, but not for books.
For more information about these tasks, see Advanced workflow configuration.
Tips and tricks
Here's a few tips to get the most out of your workflows:
- Before you edit a workflow make sure it isn't being used by any other projects! Any changes made to a shared workflow will impact all the projects using it.
- To re-use a workflow in another project, select "Create with shared configuration" when you create the new project or update the default workflow in the new project to the one that you want.
- Remember to hit 'Publish' to make new or edited workflows active in your project.