- 1. Overview
- 2. SAFe principles
- Take an economic view
- Apply systems thinking
- Assume variability; preserve options
- Build incrementally with fast, integrated learning cycles
- Base milestones on an objective evaluation of working systems
- Visualize and limit 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
- 3. SAFe practices
- 4. The 4 levels of the Scaled Agile Framework 4.5
- 5. Conclusions
- References
Read time: 6 minutes
1. Overview
Nowadays, almost all software development teams are familiar with at least one or more Agile methodologies such as Agile Scrum, Lean Software Development, Kanban, Extreme Programming, Crystal, Feature Driven Development (DSM), or Dynamic Systems Development Method (DSDM).
A new approach that has been emerging in the past two years is SAFe, the Scaled Agile Framework, which is mainly suited for large enterprises seeking to scale beyond just a single Agile team. SAFe promotes alignment, teamwork, and delivery across multiple Agile teams, helping organizations deliver new solutions, services, or products in the shortest possible time with the best quality.
In this article, I will try to offer an overview of SAFe with a focus on its principles, practices, and the four levels of it with their events, team roles, and artifacts.
2. SAFe principles
The framework is based on nine important Lean-Agile principles. These principles must be followed so you can deal with the challenges that the software development industry faces nowadays in order to produce complex systems and software that may require millions of lines of code, working across complex multi-platform environments.
Take an economic view
Always start by doing the work that will deliver the most value. Do not hesitate to change plans if deemed necessary by business economics.
Apply systems thinking
Always keep in mind that you have to optimize the system as a whole and not only the components that your team is working on. Also, take into consideration the fact that the system operates in an end-user environment.
Assume variability; preserve options
We live in a world of rapid changes, where there is nothing that remains immutable from design to implementation. Maintaining multiple options for a longer period in the development cycle can help the product evolve in the right direction.
Build incrementally with fast, integrated learning cycles
Deliver working features frequently, in a series of short iterations. For each iteration, integrate everything done in that release to have a working system as a whole. Delivering at a high rate allows businesses to use these releases as minimum viable products (MVPs) in order to get them to the market faster for testing and validation. The results of the early feedback allow the Business Owners, Product Management, and Product Owners to take faster business decisions.
Base milestones on an objective evaluation of working systems
Integration points provide a way for business owners, developers, and customers to evaluate a solution frequently. These regular evaluations provide fit-for-purpose, financial and technical metrics that need to be known in order to ensure that continuing the investment will produce the expected return.
Visualize and limit WIP, reduce batch sizes, and manage queue lengths
In order to be successful, an enterprise has to optimize its processes so that it can deliver new system capabilities quickly, even if this requires them to reduce batch sizes in order to be in line with the actual capacity of the teams. It is also very important to manage queue lengths for new features that might allow the product to transform its concepts into cash faster.
Apply cadence, synchronize with cross-domain planning
The most important part of the Scaled Agile programs is the overall alignment and synchronization between the teams. The best way to achieve this is to reduce dependencies, control variability, facilitate trade-offs, and get alignment in face-to-face planning meetings on a regular basis.
Unlock the intrinsic motivation of knowledge workers
The main responsibility of Lean-Agile leaders is to develop the team and people that develop the program.
Giving individual objectives is usually a source of internal competition and abolish the cooperation needed to achieve the larger aim of the whole system. Providing a high level of autonomy can lead to a high level of employee engagement, motivating them to do the right things for both the product and business. Because of the high level of autonomy of teams and individuals, it is encouraged to have team agreement documents as general guidelines for developers in each team.
Decentralize decision-making
The most effective teams are those that are allowed to take decisions by themselves, allowing them to quickly address issues or opportunities that the team might encounter in the development cycle. Decisions that are strategic and have an economic impact on the product and business are justified to be centralized in the decision-making group. Since both types of decisions can be needed at any time during the program, it is best to have a written agreement on how to deal with each decision that needs to be made.
3. SAFe practices
SAFe for teams uses most of the Agile practices. The main frameworks that inspire the SAFe practices are Kanban, Scrum, and sometimes Extreme Programming.
Many of the SAFe teams choose to work with Kanban as their basic framework. The Product Owners manage the Teams Backlogs. The Scrum Masters are responsible for ensuring the team lives agile values and principles and follows the processes and practices that the team agreed they would use.
These practices, including collective ownership, pair work, coding standards, quality-first, and Continuous Integration help the SAFe Teams to efficiently deliver high-quality customer value.
4. The 4 levels of the Scaled Agile Framework 4.5
In SAFe we have different implementation levels: Portfolio, Value Stream, Program, and Team. At each of these four levels, we have different Roles, Events, and Artifacts.
4.1. Team level
Roles
At the team level we have the following roles:
- The Agile team
- Product owner
- Scrum master
Events
The main events at the team level are:
- Sprint planning
- Backlog grooming
- Daily Stand-up
- Execution
- Sprint demo
- Sprint Retrospective
- Innovation and planning
Artifacts
- Team Backlog
- Non-Functional Requirements
- Team PI Objectives
- Iterations
- Stories
- Sprint Goals
- Built-In Quality
- Spikes
- Team Kanban
4.2. Program level
Roles
- DevOps
- System Team
- Release Management
- Product Management
- UEX Architect
- Release Train Engineer(RTE)
- System Architect/Engineer
- Business Owners
- Lean-Agile Leaders
- Communities of Practice
- Shared Services
- Customer
Events
- PI(Program Increment) Planning
- System Demos
- Inspect and Adopt Workshop
- Architectural Runway
- Release Any Time
- Agile Release Train
- Release
Artifacts
- Vision
- Roadmap
- Metrics
- Milestones
- Releases
- Program Epics
- Program Kanban
- Program Backlog
- Non-Functional Requirements
- Weighted Shortest Job First (WSJF)
- Program PI Objectives
4.3. Portfolio Level
Roles
- Enterprise Architect
- Program Portfolio Mgmt
- Epic Owners
Events
- Strategic Investment Planning
- Kanban Portfolio(Epic) Planning
Artifacts
- Strategic Themes
- Enterprise
- Portfolio Kanban
- Portfolio Backlog
- Non-Functional Requirements
- Epic and Enabler
- Value Stream
- Budgets(CapEx and OpEx)
4.4. Value Stream Level
Roles
- System Team
- Release Management
- Solution Management
- UEX Architect
- Value Stream Engineer(RTE)
- Solution Architect/Engineer
- Shared Services
- Customer
- Supplier
Events
- Pre and Post PI(Program Increment) Planning
- Solution Demos
- Inspect and Adopt Workshop
- Agile Release Train
Artifacts
- Vision
- Roadmap
- Metrics
- Milestones
- Releases
- Value Stream Epics
- Value Stream Kanban
- Value Stream Backlog
- Non-Functional Requirements
- Weighted Shortest Job First (WSJF)
- Value Stream PI Objectives
- Capability
- Enabler
- Solution Context
- Value Stream Coordination
- Economic Framework
- Solution Intent
- MBSE
- Set-Based
- Agile Architecture
5. Conclusions
SAFe is the best Agile Framework to improve your team`s delivery in large-scale programs where multiple teams are working together on massive epics.
Teams that have already mastered Scrum and Kanban will easily get familiar with SAFe. The Agile team members will be able to master its internals in a short time, with just a few hours of training and reading, but for the rest of the roles like Scrum Master, Product Owner, Release Manager, Architect, Release Train Engineer, etc., it is highly recommended to attend at least the basic SAFe for teams training program and to take the exams specific to their roles.
References
SAFe 4.5 Introduction Overview of the Scaled Agile Framework® for Lean Enterprises - August 2017
4 biggest challenges in moving to Scaled Agile Framework (SAFe)
SAFe Methodology Tutorial: What is Scaled Agile Framework