A practical guide working with Agile process using JIRA
Like many software development teams, we follow weekly (sometimes bi-weekly) sprints. This essentially means at the beginning of every week, we pull the work items from backlog and plan the work for a given sprint and deliver them by the end of the week.
In this blog, I talk about how we make the process work in JIRA.
We use JIRA to manage our project. For every project, we have 5 states:
- Open: This state means that the work item is planned for the sprint, but it's yet to be worked upon.
- In Progress: This means that the item is being worked upon by a team member. The ticket is automatically transitioned to this state as soon as a developer creates a feature branch for the ticket. We use Gitflow branching model and use Hubflow to create feature branches. I will talk a bit more about how the automatic transition happens when a branch is created later in this article.
- In Review: This means that the team member has finished writing code and testing it and has raised a pull request for other team members to review. The ticket is automatically transitioned into this state as soon as a PR is raised.
- Resolved: This means that changes are checked in and available for the product owner to test, review and give feedback. The ticket is automatically transitioned into this state as soon as the pull request is merged.
- Closed: This means that the product has reviewed the product changes and is happy with the changes. This also means that the ticket is ready to be deployed to production. Product owner manually transitions the ticket from Done to Closed state.
Setting up an Agile workflow in JIRA
This is how our workflow in JIRA looks like. You can create the workflow in JIRA as by going to https://<YOUR_WORKSPACE>.atlassian.net/secure/admin/workflows/ListWorkflows.jspa. We named this as Agile workflow.
Setting up automatic transition in JIRA
Now, in order to create an automatic transition, you need to create triggers. Specifically, you need to create two automatic triggers:
- Move ticket from Open to In Progress as soon as a feature branch is created.
- Move ticket from In Progress to In Review when a pull request is raised.
You first need to link your project to source code repo. We use GitHub. So go ahead and link JIRA to your Github. To do that, go to dashboard -> JIRA Settings -> Apps -> Find new Apps. Search for GitHub and install Github for JIRA (first one) as displayed in the screenshot below.
That's it. Once you link your organization, now head back to the workflow you created.
- Find the transition In Progress and add a trigger to it - Branch Created
- Find the transition PR Raised and add a trigger Pull request created.
- Find the transition PR Merged and add a trigger Pull request merged.
- Find the transition Rework and add a trigger Branch Created.
That's it. Your workflow is now ready to be used in your project.
Using workflow in the project
There are two steps you have to do in order to use Agile workflow in your project:
- Associate the workflow with each issue type: Go to your Project -> Project Settings -> Workflows and associate the Agile workflow
- Setup the board. Go to Active Sprints -> Top right (...) -> Board Settings. Now map each stage of your workflow to a column as follows:
And you are done.