DEV Community

Cover image for Jira Workflow Best Practices
GitProtect Team for GitProtect

Posted on • Edited on • Originally published at gitprotect.io

Jira Workflow Best Practices

Nowadays software development is not only about creating the code itself. It is a fairly complex process that includes analysis of requirements, design, and code writing, of course, with the only intention – to release great software. The next steps are usually tests, documentation, or a multi-stage deployment phase. Each project has a different process, but there is one thing that should connect them all – the need to track the status and progress of existing workflow. Transparency.

From the perspective of the project manager or client (if we want to share such information with them), it is extremely important to know at what stage the project is or what is blocking further progress. For this purpose, tools have been developed in that way to allow us to track it. Properly managed and maintained, they allow us to avoid the nightmare called micromanagement, and, as a result, facilitate the work and software development of all involved people, including software teams and non-technical teams.

Jira software

The most famous tool of this type is Jira. It is an issue-tracking tool made by Atlassian in 2002 to help Jira users track their software development. Despite its age, it is still a widely used software. Atlassian itself reports that Jira is used by over 180k companies in 190 countries to create custom workflow schemes (data from December 2020).

From the technical aspects, it is worth mentioning that Jira has REST, SOAP, and XML-RPC interfaces. It also allows the integration of VCS systems such as SVN, Mercurial, or, of course, Git. What’s more, the other tools created by Atlassian, which easily integrate with each other, are also a huge advantage. I mean Confluence and Bitbucket. Together with Jira, they create a trio that will facilitate and speed up work on each project.

Mentioning Bitbucket, here you can read about top Git hosting services, where it is one of the top 3. If you are just considering choosing tools for your new project, you may find it helpful.

Jira workflows

Workflow, as the name says, is responsible for the flow of the work progression. More specifically, it allows us to check the current status of tasks. We can create different Jira workflows for each Jira project, so as to reflect their specificity and match the actual steps performed by our employees. It can consist of different statuses and transitions. Let’s analyze which elements exactly it includes:

  • Statuses (workflow statuses) – current state of the issue, e.g. IN PROGRESS or DONE
  • Transitions – the connection between statuses. They represent actions, e.g. CANCEL single status can be reached by many different transitions
  • Rules – specific rules related to Status or Transition: Auto-assignment – automatically changes the assignee after using a particular transition Field update – like above, but changes the specific field Condition – restriction who can move an issue using a particular transition
  • Validators – blocks transitions if specific information is not provided
  • Triggers – can activate a particular transition if a specific event occurs

An example of a simple workflow might look like this:

Jira workflow scheme / Jira workflow example

We have four statuses and four transitions here, although two of them do exactly the same and lead to the same status (Cancel). However, technically these are different actions, so we can extend one of them with a specific rule that the latter will not have. Even in such a simple example, you can already see how many opportunities and challenges are ahead of us to build good project workflows.

Jira workflow best practices

From my own experience, I know that some existing workflows are often badly designed, and badly used, and as a result, people do not pay any attention to the activities they should perform. For example, an incorrectly designed Definition of Done list results in our specialists clicking “select all” without checking, just to move the issue to the next status. It misses the point, and it makes no sense at all. So, how to create workflows that will help your Jira administrator to build agile teams?

Therefore, I recommend that you read these few tips or key components for creating custom Jira workflows. I hope they will allow you to build a proper advanced workflow tailored to the needs of your team-managed project.

1 Design

This is a stage before we even start doing anything in Jira. We must analyze our needs well. What statuses do we need? What transitions? Maybe any conditions or rules? What exactly does our process look like from a business perspective?

Only such information will allow us to design a workflow in Jira tailored to our real needs.

Get free trial

2 Avoid duplication

In the absence of control over our existing workflows, there may be a situation where several teams have an identical Jira workflow, but technically they are completely separate. It is double maintenance. Before we start creating workflows, let’s check if the appropriate one already exists. Otherwise, our new workflow can be duplicated. A well-designed one should be as versatile as possible to avoid unnecessary duplication.

3 Do not be afraid to build multiple workflows

If our project has a specific process, do not be afraid to create a new workflow, instead of forcefully adjusting to the existing ones. This does not contradict point 2 as it is not a duplication. A specific process requires specific management, so don’t be afraid to reflect that in Jira. As “the more agile your team is, the more Jira will be able to help.” That is the phrase that the DevOps who built Jira at Atlassian like to say.

4 Avoid unused transitions or statuses

Sometimes it happens that you prepare statuses or transitions “just in case”. After all, “maybe someday they will be needed”. However, this is the wrong approach. A well-analyzed and designed process should not force us to do so. If there is a need to add new statuses to a specific edge case, we should first go back to the design stage and rethink whether the entire workflow in Jira still makes sense.

5 Validation

After the design and implementation phase, it would be good to have a dry run with the stakeholders from different departments that may be interested in using this particular workflow. It’s also a good idea to test escalation and how it is visible and communicated. Finally, any corrections must be made and clear documentation should be prepared, e.g. in the form of training for employees.

6 Go-live

Getting started with our well-prepared workflows is not the end of working on them. We should follow up on any problems and deviations, note them and find causes and solutions as soon as possible from the very beginning. After collecting the list with potential corrections, it is worth returning to the Validation stage. It is a time-consuming stage, but it will pay off in the long term.

7 Inspect and adapt

It is an approach adapted from the Scrum methodology. It is good practice to look back at what and how everything works and what could be improved. No matter how well we configure workflows, the only constant thing is change, so we have to be prepared for such. We should not be afraid of changing the workflow based on our experience. So to say, be agile teams.

Jira Cloud

Finally, a bit apart from the topic strictly related to Jira workflow best practices, it is worth mentioning the Jira Cloud service. We can host the application on our own servers, external, or in the Atlassian cloud service. It is a convenient solution that allows us to start work faster and not worry about our own infrastructure. This is in line with the current trend in IT. Jira Cloud cares about our security, privacy, compliance, and reliability.

However, there is one point we should take care of ourselves – a backup. Of course, Atlassian does backup on their side, in case of a critical failure, we should have no problem with data recovery. However, having our own backups, first of all, gives us the guarantee that we store the data we want with the frequency we are interested in, so we have more control over it. As a result, this should give us more peace and a sense of security.

To take care of Jira Cloud backup, we can use our own resources or – and it is easier – use third-party services that can provide us with products tailored to our needs.

✍️ Subscribe to GitProtect DevSecOps X-Ray Newsletter – your guide to the latest DevOps & security insights

🚀 Ensure compliant DevOps backup and recovery with a 14-day free trial

📅 Let’s discuss your needs and see a live product tour

Top comments (0)