SAFe (Scaled Agile Framework) — an introduction
SAFe is a framework for scaling Agile in large organizations. It consists of two to four levels:
- Team level
- Program level
- Large Solution level (optional)
- Portfolio level (optional)
Here’s a diagram that illustrates Full SAFe, the most comprehensive version of the Scaled Agile Framework:
Team Level
At the team level (referred to as Agile team), SAFe suggests working similarly to Scrum. However, teams can also choose to work in Kanban or Scrumban. Teams collaborate to deliver working software every two weeks. The Product Owner is responsible for the Team Backlog. Iteration Planning, Stand-up, Review, and Retrospective are largely similar to their standard Scrum equivalents. However, SAFe proposes additional best practices. One significant aspect is Built-In Quality, which consists of practices that should be followed for every increment. This concept resembles the Definition of Done in Scrum, although in Scrum, the Definition of Done is determined by the Development Team. While SAFe also employs a Definition of Done at the team level, it is essentially overshadowed by the concept of Built-In Quality.
Program Level
At the program level, SAFe scales the same elements used at the team level. Here, multiple teams work together to deliver a collective output, which can involve up to 150 people. The teams work to create a Program Increment, which is delivered after five Sprints (10 weeks).
The teams and stakeholders together form the Agile Release Train (ART). Agile Release Trains are aligned with a common business or technology mission. They plan, develop, and deploy together.
A key advantage of Agile Release Trains is their set frequency (about every 10 weeks). Business features that miss one train can catch the next. Releasing is typically decoupled from the development cadence.
The content for each Release Train, known as a Potentially Shippable Increment, is determined by a Product Manager through a Program Backlog. This Program Backlog contains most of the items that populate the Team Backlogs. The Release Train Engineer, equivalent to a Program Manager in SAFe, serves as the Scrum Master for the train.
A Program Increment begins with a Planning meeting attended by everyone from the teams. During this meeting, the vision and roadmap for the train are established. Teams then break off to discuss what they can achieve within the train while aligning with other teams. They plan several Sprints ahead at the feature level, which contrasts with Scrum, where planning is done one Sprint at a time to optimize empiricism. The teams’ commitments are then mapped on a Program Board, which also includes dependencies between teams.
Scrum Masters and the Release Train Engineer hold bi-weekly meetings to ensure that goals remain attainable. The aim is to have the entire train sprinting together, with no teams working ahead or falling behind.
At this level, there are four Sprints to deliver the Potentially Shippable Increment. The fifth Sprint is dedicated to hardening, innovation, and planning. This approach differs from standard Scrum. Hardening involves final verification and testing, innovation focuses on exploring new ideas, and planning includes the demo at the program level, maintenance of the train, and planning for the next 10-week cycle.
This level also introduces the architectural runway. During each 10-week cycle, teams are expected to lay down the tracks for the next cycle. This responsibility falls to the architect.
Large Solution Level
This level is intended for managing large solutions that cannot be handled by a single program (Agile Release Train). The larger solution is coordinated by a Solution Train, consisting of a Solution Manager, Solution Architect, and Solution Train Engineer. They align and coordinate multiple Agile Release Trains.
Portfolio Level
Portfolio Management directs the trains by allocating the budget. At this level, a Backlog of Portfolio-level Epics trickles down to the trains’ Product Managers. Kanban is used at this level to minimize overhead.
Four Configurations
SAFe offers four different configurations:
- Essential SAFe: Comprising the Team level and Program level.
- Large Solution SAFe: Comprising the Team level, Program level, and Large Solution level.
- Portfolio SAFe: Comprising the Team level, Program level, and Portfolio level.
- Full SAFe: Incorporating all four levels.
Here are some items where SAFe differs from Scrum: