Now that we have seen how to use JIRA Software to run both Scrum and Kanban projects, let's take a look at how to customize our agile board. Since JIRA Software is built on top of JIRA Core, many of its customization options leverage the core features of JIRA. So if you are not familiar with some of these features, such as workflows, do not worry, we will cover these in high level in context of agile board, and dive into the details of each in later chapters.
For both Scrum and Kanban, the board's columns are mapped to the workflow used by the project and the default workflow created is very simple. For example, the default Scrum workflow contains three statuses: To Do, In Progress, and Done. However, this is often not enough, as projects will have additional steps in their development cycle, such as testing and review. To add new columns to your board, follow these steps:
For projects using the workflows created along with your new project (also known as Simplified Workflow), this is all you need to do to customize your columns. If you have an existing workflow and want to adapt your columns to that, we will cover workflows in Chapter 7, Workflow and Business Process.
In the previous Kanban section, we discussed that one of the key aspects of Kanban is to control the amount of work.
To set up column constraints for your agile board, perform these steps:
You do not have to set both the minimum and maximum for a constraint. Consider our example shown in the following screenshot, where we have set the constraint for Selected for Development to be at least three issues and no more than 10 issues. For the In Progress column, we have only limited it to be no more than five issues, but there is no minimum vale, meaning it can have no issues at all. We also placed a maximum limit of 15 issues for the Done column, so we can be alerted when the team has reached the threshold of completed issues and a release needs to be made:
After you have set the column constraints for your board, every time the rules are violated, JIRA will immediately alert you on your agile board. For example, in the following screenshot, we have two issues in the Selected for Development column, which has a minimum of three issues, so the column is highlighted in yellow. In the In Progress column, we have six issues, and since it has a maximum limit of five issues, the column is highlighted in red.
Note that while JIRA will highlight the columns when a constraint is violated, it does not actually stop you from breaking the constraints. It is simply a way to alert the team that something has gone wrong in the process and it needs to be reviewed and corrected:
As we saw in earlier sections, JIRA's agile board lets you group similar issues together in horizontal rows called swimlanes. Unlike columns, which are mapped to workflow statuses, you can define swimlanes based on any criteria, including custom fields you have added yourself. To set up swimlanes for your board, you need to perform the following steps:
There are five options when choosing how swimlanes will be defined:
As shown in the following example, we are using the Queries option and we have defined two swimlanes (and the default Everything Else lane). For the JQL query, we are searching based on a custom field that we have created called Source to determine whether the feature request comes from a customer or as a result of an internal review. Custom fields will be covered in Chapter 5, Field Management.
As you can see, there is lot flexibility when it comes to configuring your swimlanes, and with JQL, we can define any arbitrary rule for our swimlanes.
By default, your agile board will display all issues. For Scrum, it will be all issues in the sprint, and for Kanban, it will be all issues that have been released. This can be quite distracting when you want to hone in on specific issues, such as top priority ones. While swimlanes can help with that, having too many issues on the board can still be very "noisy".
One useful feature JIRA has is that you can create a number of predefined filters for your board. With these, you can quickly filter out the issues you do not care about and only have the issues that matter to you shown on the board. Note that this does mean the other issues are removed from the board, they are simply hidden from view.
JIRA already comes with two built-in quick filters, called Only My Issues and Recently Updated. You can create your own by following these steps:
In the following example, we are creating a new filter called Customer Requests and using the JQL to search for issues with Source
field set to Customer
:
After you have added your new filter, it will be displayed next to the existing ones, ordered alphabetically. Clicking on the filter will immediately filter out the issues that do not fit the criteria. You can also chain filter the issues by selecting multiple filters, as shown in the following screenshot. We have enabled both Customer Requests and Recently Updated filters to get a view on recently updated customer requests: