Over the last couple of years, the Scaled Agile Framework (SaFE) has become a popular methodology for managing large projects. Describing the details of the framework is beyond the scope of this blog post, but one of its most popular features is the way it approaches the problem of how to coordinate several agile teams working in parallel.
In SaFE, this coordination is largely the result of a recurring activity called program increment planning. This two-day meeting brings together all the stakeholders of the project, including program management, product owners, and team members.
The primary outcome of the increment planning is a Program Board, a matrix-like diagram where the rows are the teams and the columns are the product increments, or sprints:
A schematic SaFE Program Board.
The boxes in the matrix cells are the features to be implemented, and the red lines between the boxes are dependencies. If there is a dependency between feature A and feature B, then feature B cannot be delivered until feature A has been delivered. Dependency management is a vital part of any project, and is a subject we will return to in future blog posts.
Creating a Program Board in Dependency Map
The boxes in the matrix cells are the features to be implemented, and the red lines between the boxes are dependencies. If there is a dependency between feature A and feature B, then feature B cannot be delivered until feature A has been delivered. Dependency management is a vital part of any project, and is a subject we will return to in future blog posts.
There are, of course, many ways to configure Jira to support the SaFE methodology, but let’s assume that our large-scale agile project consists of four Scrum teams (Alpha, Beta, Delta, and Gamma) and that each team has its own project and Scrum Board in Jira.
First, we have to create a Jira filter that pulls in all the issues we need:
For the sake of simplicity we’ll include all issues in the four Jira projects. But you might want to only include the currently open issues, or perhaps only issues from next upcoming two to three sprints. Don’t be afraid to experiment!
The next step is to create a new map in Dependency Map with a Matrix layout: we’ll choose the Project field for the rows (since each of our team corresponds to a project) and the Sprint field for the columns. To begin with, we’ll choose Project for box colors, too:
This will result in a map that looks something like this:
Ouch! This is not what we expected! Since the sprints for the four teams are separate entities in Jira, Dependency Map also draws them as separate columns in the diagram. This is often what we want, but not in this case!
To fix the problem, we’ll combine two Dependency Map functions: field value filtering and group merging. We will use the filtering function to extract “Sprint 1”, “Sprint 2”, etc., from the sprint field values, ignoring the parts of the name that is specific to the projects. Then, we’ll ask Dependency Map to merge all groups that have the same field value.
Back at the map configuration dialog, we’ll click the “Show Advanced” button next to the Layout, which will case a few more options to appear. Then, we’ll enter the following regular expression for the columns:
The regular expression we entered,
Sprint d*
will match the characters “S”, “p”, “r”, “i”, “n”, “t”, ” ” (a space), and zero or more numerical digits (“d*”) but nothing else. The expression will be applied to each field value in the columns of the map. Dependency Map only includes the parts of a field value that matches the regular expression, so everything except “Sprint NN” (where NN is the sprint number) will be included. For more information about regular expressions, see this tutorial page.
Going back to our map, we can see that the columns now have the correct names:
But the sprints are still shown as separate columns, though. To fix this, we go back to the Advanced options for the columns, and set “Column merging” to “Yes”:
The result is a proper Program Board:
In the next part of this series, we’ll look at how to work with dependencies in the program board. We’ll also explore a number of different alternatives for box colors – this will provide us with interesting information that can make our cross-team coordination more efficient!
If you want to be notified of new posts and other news related to Dependency Map, sign up for our newsletter!