Nowadays software development is not only about creating the code itself. It is a fairly complex process that includes requirements analysis, design, and code writing too, of course. 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 work. Transparency.
From the perspective of the 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 that 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 of all involved people.
The most famous tool of this type is Jira. It is an issue tracking tool made by Atlassian in 2002. Despite its age, it is still a widely used software. Atlassian itself reports that Jira is used by over 180k companies in 190 countries (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 speeds 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 down? Get your team back to tasks within minutes with the first professional backup for Jira Cloud
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, for different projects, so as to reflect their specificity and match the actual steps performed by our employees. Let’s first analyze what elements it consists of:
- 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:
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 a good workflow for our project.
Jira workflow best practices
From my own experience, I know that workflow is often badly designed, and badly used, and as a result, people do not pay due 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. Therefore, I recommend that you read these few tips. I hope they will allow you to build a proper workflow tailored to the needs of your project.
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 tailored to our real needs.
#2 Avoid duplication
In the absence of control over our workflows, there may be a situation where several teams have an identical workflow, but technically they are completely separate. It is double maintenance. Before we start building a new workflow, let’s check if the appropriate one already exists. A well-designed one should be as versatile as possible to avoid unnecessary duplication.
#3 Do not be afraid to build many workflows
If our project has a specific process, do not be afraid to create a new, dedicated 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.
#4 Avoid unused transitions or statuses
Sometimes it happens to 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 a status to a specific edge case, we should first go back to the design stage and rethink whether the entire workflow still makes sense.
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 prepared, e.g. in the form of training for employees.
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 works and what could be improved. No matter how well we design our workflow, 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.
Finally, a bit apart from the topic strictly related to workflow, 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.