This article was written by Edwin Rozie from ATIVO Programs.
Jira is a leading tool for Agile Teams, and SAFe* a leading methodology to work agile at scale. But how can we work SAFe in Jira? In this article, we’re going to walk you through what SAFe is, how to implement SAFe in Jira using an intuitive app, Ativo Programs, and some common use cases.
So let’s get started.
Here’s what we’re going to cover in this blog post:
- Why Use SAFe?
- Can we Implement SAFe in Jira?
- How to implement SAFe in Jira: Setting up Ativo Programs
- Common Use Cases
Let’s take a time machine and warp back to 2011. The Agile manifesto just celebrated its decennial. Smaller organizations embraced Agile as an effective way of working, while larger organizations either stuck with a waterfall project methodology or struggled to scale Agile and Scrum to their size.
Enters Dean Leffingwell, who releases the SAFe framework. Dean combines existing frameworks such as Lean, Scrum, and Kanban and applies them to Teams, Programs, and Portfolio layers.
SAFe defines a set of Lean-Agile principles, for example:
- Build incrementally with fast, integrated learning cycles
- Visualize and limit Work In Progress (WIP), reduce batch sizes, and manage queue lengths
- Apply cadence, synchronize with cross-domain planning
- Unlock the intrinsic motivation of knowledge workers
- Decentralize decision-making
SAFe comes with terminology and a set of roles. It introduced the notion of a Release Train (like a Program) and a Program Increment (a set of sprints).
Organizations adopting SAFe embrace the new ceremony: the Program Increment Planning. SAFe enables organizations to plan some time ahead to fulfill the corporate need of forecasting. Teams plan features and stories while keeping an overview of dependencies on the Program Board.
Back to 2021.
SAFe celebrates its decennial and is widely adopted by larger organizations as a scaled way to work Agile and Scrum at scale. Scaled Agile, the organization behind SAFe, provides a set of trainings, certifications, and other support materials.
Jira, at the same time, became a market leader for team collaboration and agile project management tooling. Organizations naturally want to combine SAFe and Jira to:
- Benefit from the SAFe methodology to use scrum and agile techniques at scale.
- Allow team members to plan, track, and release work in highly customizable Scrum and Kanban boards in Jira.
Can we Implement SAFe in Jira?
‘Yes, but …’
Yes, we can implement SAFe in Jira, but we will need an add-on to visualize the program board. In this article, we will use Ativo Programs, a Jira native plugin that enables organizations to plan and follow up Agile programs in Jira. Ativo Programs visualizes the program board with its features, stories, and dependencies.
Ativo Programs also provides:
- Red / Amber / Green (RAG) indications
- An overview of risks and issues
- Filters and view options
- Progress metrics with forecasts
It is available on Jira Cloud, Jira Data Center, and Jira Server.
Now that you know what SAFe is used for, and introduced the add-on, Ativo Programs, let’s see how we can install it.
To install the app, follow these steps:
- Install Ativo Programs for Jira with a free trial license
- Set up the permissions
- Configure the teams
- Define the program (Release train)
- Define the period (Program Increment)
The installation itself is quite straightforward. As a Jira administrator, go to settings and then manage apps. Click on Find new apps and Search for “Ativo” in the marketplace. Click on Free trial to install the app and obtain a free license.
You will be asked to log in with your Atlassian account or create a new one if you haven’t done it before.
“Oops, I’ve deleted the program by accident.” You probably don’t want to hear these dreadful words when you are in the middle of your program increment planning. Ativo Programs comes with a separate permission scheme to define who can create, edit and delete programs and other configuration settings.
To set the restrictions, go to Manage Apps and then click on Administrators. You can then either provide Ativo administration permissions to separate groups, or individual users.
“In business, it’s about people. It’s about relationships”
Teams have key importance in a SAFe program. They carry the responsibilities and are the engine that creates added value. Given their importance, we will start the configuration of Ativo Programs with the configuration of teams.
As an Ativo Administrator, go to Ativo Programs via the top navigation bar. Then click on Settings in the left navigation bar and on Teams. Push the Create a new team button for each team and set the configuration:
- Team name and Team key are chosen by you. The key is alphanumeric with capital letters.
- The mode defines whether the team works in a scrum mode (with sprints) or Kanban mode (continuous delivery). In the case of the latter, due dates and resolution dates will be used to map stories of the team with the iterations at the program level.
- The estimation field defines whether the team uses story points, man-days, or no estimations at all.
- Finally, you select the Jira project that contains all the tickets. In case you have teams that are sharing a Jira project, you can click on Show project filters to add a filter for each team on the shared Jira project.
Finally, click on Submit to save the teams.
While teams are the engine of value creation, the program provides the canvas and direction.
Our next configuration task is to define the program settings. A program requires a Jira project to save the features. With features (the SAFe term), we mean epics in Jira. This Jira project can be shared – if we want – with other programs via a filter.
If not yet done, create a Jira project that will contain the features. As a Jira admin, click on create project and select Kanban software development. Now that we have a Jira project that will contain the features of the program, we can continue to configure Ativo Programs.
As an Ativo Administrator, click on Cycle in the left navigation bar and then on Create a program. Choose a name and key to your liking. Continue the configuration by selecting the Jira project that contains the features (epics), and then select the teams that are part of the program.
And yes, teams can be part of multiple programs at the same time. This is useful for organizations that have transversal teams, as a security or infrastructure team.
Click on Submit to save the program.
We are almost done with the configuration. Now we just need to define the SAFe program increment (period).
In this step, we will map the sprints of the teams with the sprints at program level. As a first step, create (or request the scrum masters to create) sprints in the backlog of the Jira projects of the teams working scrum. Create as many sprints as there will be in the Program Increment.
As an Ativo Admin, then click on Cycle in the left navigation bar and then on Create a period. Choose a name and key to your liking, and the number of sprints (iterations) in the period.
Continue the configuration by mapping the sprints at team level to the iterations at program increment level. Select the start and end date of each sprint. The latter is optional unless there are teams that are working in Kanban.
The configuration of SAFe in Jira is now all set and done! Have a coffee and pat yourself on the shoulder.
In this next section, we go over typical use cases in the life of a SAFe release train and show you how to implement them in Jira.
“Your focus determines your reality”
Star Wars Episode I: The Phantom Menace
Preparing a SAFe program increment is about focusing on what to do, and what not to do in the next program increment. Business and management articulate a vision. The Product Manager sets priorities. Finally, teams will plan on the features and underlying stories.
So how do we do all this in Jira with an add-on like Ativo Programs?
First, we need to have a clear list of features for the next program period. As mentioned before, SAFe features are encoded as epics in Jira.
Request your Product Managers and Product Owners to create features (epics) in the Jira project that contains these features. This can be done by navigating to the feature project in Jira and creating new epics in this Jira project. Alternatively, your Jira administrator can import a set of features from Excel in Jira.
Use a Kanban board to set the priority of all the features. You might also want to set up a specific workflow for these features. Setting up a Kanban and workflow is beyond the scope of this article, but you can find more info here.
Import features to the current program increment by selecting Plan in the left navigation and then clicking on Add features. Select the features for the current PI and click on Add. The features will appear in the unassigned column.
Optionally, you can drag and drop the features to the unplanned column of a team. This visualizes which team is in the lead for a feature during the Program Increment preparation.
An alternative way to create features is by clicking on Add features and then selecting the Create tab. This will create a new feature and add it directly to the current program increment.
Scrum teams are used to planning stories for the next sprint in Jira via the backlog view on their Scrum board.
Guess what? Teams can also use their backlog Jira view to plan the stories of the next SAFe Program Increment. Simply drag the story to the right sprint.
Looks easy, right? But how will the story be shown on the SAFe Program Board, as teams can contribute to multiple programs? Well, the story should have a feature on the Program Board as its epic link.
Features and stories can also be replanned on the program board by dragging and dropping them to the unplanned column or a sprint.
And what about teams working in Kanban? They can also add a feature as a parent to their stories. They can add it to a sprint by dragging and dropping the story on the program board, or by modifying the due date of a story.
Bear in mind that a program board only shows stories that are a dependency for another team (see next section). If you want to see all stories, select View Options and then All stories.
Use the Refresh button to pull in changes made by other persons working at the same time on the program board, or changes you’ve done yourself directly in Jira.
Managing dependencies between teams in a program is one of the core challenges of SAFe program management in Jira.
Ativo Programs uses the following link types to indicate these dependencies:
- Epic link: to indicate a story is a contribution to a feature (epic)
- Blocking / blocked by link: to indicate a story is blocked by another story and vice versa.
Unless the ‘view all story’ option (cf. last section) is enabled, Ativo Programs only visualizes stories that are a cross-team dependency. To add a new dependency, click on Add dependency. Select the Jira issues for which you want to add a dependency.
To update a dependency, click on the Details button located at the top right of the story. Then click on dependencies. Update the blocked-by, blocking, and parent links of the Jira Issue.
Keeping an overview when there are a lot of stories and features is important. Click on Filter to open the Filter bar. Use the various filter options to select the information you are looking for (for example, the features and stories of one team).
Lean promotes the use of visual indicators. To add a RAG (red, amber, green) color to a story or feature, click on the Details button located at the top right of the story. Then click on RAG and select the color.
To add a risk or impediment to a story (called issue in Jira) or feature, click on the Details button located at the top right of the story. Then click on Add a risk or impediment. Fill in the risk or issue description and click on Submit.
Teams share progress and impediments during scrum-of-scrums meetings (in SAFe, this is called an Art-Sync meeting when Product Owners participate as well). Visual indicators can make this meeting faster and more efficient.
Click on Progress in the left navigation bar, and then on Per team. This displays per team an overview of the
- Features and dependency progress
- Open risk and issues
- Progress and forecast
In addition, you see an overview of the sprints with dependencies and features:
Click on Progress in the left navigation bar, and then on Total to get a consolidated progress view at program level.
SAFe is a leading methodology that enables large organizations to work Agile and Scrum at scale. In this blog post, we’ve reviewed how an organization can implement SAFe in Jira and have gone over the main use cases.
- Install Ativo Programs in Jira and configure the permissions, teams, programs, and periods
- Prepare the SAFe Program Increment by setting priorities and importing features on the Program Board
- Plan Jira stories and features in the sprints
- Review cross-team dependencies
- Elaborate risks and issues
- Review progress at the team and SAFe program level
And you’re all set!
* SAFe is a registered trademark of Scaled Agile, Inc.