7 Steps to conquer 'Essential SAFe'
Back in 2011, an article was published by Wall Street Journal called, "Why Software is eating the world", written by Marc Andreesen, co-founder of Netscape. Seven years on, we see the truth of it all! Software is driving business in nearly every vertical. Uber in transportation, Spotify in music entertainment and AirBnB in rentals are few classic examples. The pressure is on the IT of any enterprise to pitch in the right capabilities at the right time, to be adaptable and materialize any innovation to beat the competition. Hence, the bottom-line is IT should be Agile.
When there are small teams, managing small number of products, enterprises can easily embrace agile through Scrum and Kanban. But, this is rarely the case. Businesses are managed by large products, involving complex technology platforms and managed by distributed teams. To tackle such a complex scenario, a method called Scaled Agile Framework for Enterprises (SAFe) was conceived by Dean Leffingwell, co-founder of Scaled Agile, Inc. with the sole objective of guiding large teams in their Agile journey!To know more on SAFe and its configurations, check out our knowledge base, Agile Scaling Frameworks.
'Essential SAFe' is the basic configuration of the SAFe framework that helps a team of 50 to 125 members plan, execute and deliver large software incrementally.
It makes us wonder how few great enterprises succeed in being innovative, competitive and achieve 100% agility! There is no magic in it! It is pure successful implementation of core agile principles across the enterprise!
As complex as it may sound, here are 7 easy steps explained through the analogy of a cargo ship and its crew that will help you understand and wade through Essential SAFe for your enterprise.
Step 1: Set up an Agile Release Train
What is an Agile Release Train?
An Agile release train is a long lasting, cross-functional and self-organizing team of agile teams, who are aligned to a common business objective. These ART teams work together to deliver a fully tested working software in fixed short iterations.
On-board the Ship's crew
Right from the time a ship leaves the dock until it reaches its destination, the success of the entire journey depends on the commitment, collaboration and self-organizing traits of its crew members. The ship's crew is like a cross-functional team of teams, starting from the captain, engineers to stewards and even cooks, as they work closely to make this journey a success.
In an Agile scenario, how do you ensure that 100 odd members deliver a working software within the defined timeframe? Just like our ship's crew, these members have to be organized into stable, long lasting, cross-functional team of teams. These include business stakeholders and people from architecture, infra teams, system teams and so on. Such 'Team of Teams' is referred to as an 'Agile Release Train' or ART. The ART plans, commits, executes and delivers together and are always aligned to a common vision!
ARTs deliver solutions incrementally, over a series of fixed-length iterations called a Program Increment (PI) time-box.
The members of this 'Train' start at one point, which is the 'Program Increment - Start Date', and move towards the same end point, the 'Program Increment - End Date', carrying along all the required artefacts namely, code, package and related deliverables.
Figure 1 : The key roles in an ART
Step 2: Define the Program Vision and its Objectives
What is a program vision and its objectives?
Vision is the aspirational and achievable goal aimed for! It provides the context and purpose of the product or solution, which forms the basis for the near-term business decisions. Objectives are precise, realistic, time-bound targets that should be achieved to fulfil the aspiration.
Set goals for your cargo voyage
Every ship has a clear cut vision before it sets out on its voyage. It could be either to provide a cruising experience to the passengers on vacation or to ship cargo as part of a business deal. Every crew member will be aware of the ship's goals and it is based on these that the working and operations of the crew is determined.
In the same way, to deliver better, an ART should be clear about the big picture or objectives that it is trying to achieve. Vision is the overarching goal aimed for, the reason for creating the product or system. It provides a continued purpose in an ever-changing world, motivates teams and facilitates effective collaboration.
Typically, a 'Vision Board' represents various dimensions of a vision like target groups, market segments, user needs and so on. A vision is mostly defined by business stakeholders and product management team and shared with the train. To achieve the vision, a set of 'Business Goals' or 'Objectives' are laid out along with the key results to be validated at the end of every Program Increment. While vision is where we want to reach, objectives form the path towards realizing it.
Step 3: Manage Program Backlog
What is a program backlog?
A Program Backlog is a laundry list of features from different business sources, which are prioritized and taken up for execution to deliver business value.
Cargo orders that top the list
A ship can receive cargo orders from different sources. The prioritization of cargo orders is carried out to decide, which one is loaded first and how the orders are arranged. This is done based on the size, type (perishable/breakable/liquids) of the cargo, keeping in mind the various destinations of the goods and so on.
With your ART in place and vision and objectives laid out, the next logical thing to do is to think of ways to get there! To do this, the product management team comes out with the entity called 'Features' that are intended to address customer needs and deliver business benefits. The 'Program Backlog' is the holding area for upcoming features. The items in these backlogs result from research activities and active collaboration with various stakeholders. It also contains the enabler features, which are non-functional in nature. All features are prioritized based on size and value estimates. Each agile team in an ART pulls relevant features from the 'Program Backlog' into their respective 'Team Backlogs'. The features are defined in such a way that they can be delivered in one program increment time-box.
Step 4: Define Program Increments
What is a Program Increment (PI)?
A Program Increment is a fixed time-box for planning and building a logical set of prioritized features, demonstrating business value, and validating them through faster feedback.
Around the world in 80 days
Every ship voyage has a fixed time period within which the journey should be completed and the cargo delivered at the destination. This includes the loading of the cargo at the dock and unloading it at the destination without any damage to the cargo! At the end of the journey, the complete intact cargo is delivered!
A Program Increment (PI) is a time-box during which an ART delivers a set of logically completed features! A PI, also known as a 'Product Release', typically consists of a set of iterations with each iteration ranging from 1 to 2 weeks. Hence, a PI can span over 8 to 12 weeks. At the end of every iteration, incremental value in the form of a working, tested software is delivered and at the end of every release, a complete integrated logical solution is demonstrated to the stakeholders.
A PI is initiated by a PI Planning session and is ideally followed by four execution iterations, concluding with one Innovation and Planning Iteration.
Step 5: Manage PI Planning
What is PI planning?
PI Planning is an all-inclusive planning event, where all teams of the ART participate, align to a common objective, plan and commit what the ART will deliver during the PI.
Carry what you can
A cargo ship delivers goods to different destination points over and over again. The amount of cargo that a ship should carry on a single voyage is decided by the type of the vessel, cubic capacity of her compartments destined for the cargo and the equipment on-board to carry out the loading and off-loading! The Chief Officer of the ship should plan optimally, keeping in mind the different destinations and ship's capacity such that the cargo that delivers the maximum value in that time frame is considered first for shipment, followed by the next important and so on. This type of planning is called 'Capacity based planning', which forms the crux of PI planning.
PI planning is a cadence-based, face-to-face event that serves as the heartbeat of the ARTs, aligning all teams on the ART to a shared vision. For geographically distributed ARTs, the event may occur at multiple locations simultaneously, through constant audio and video communication between the sites.
PI Planning includes a standard agenda, starting with a presentation of business context, vision and program backlog with top features. This is followed by breakout sessions where teams create their iteration plans and objectives for the upcoming PI. This event is facilitated by the 'Release Train Engineer' (the first officer) and includes all members of the ART.
During such break-out sessions, each team pulls the most important features from the program backlog, breaks them into stories and estimates the stories through story points. The estimated stories are planned into iterations based on the 'Team Capacity'. The team capacity is the average number of story points that a team can complete in an Iteration. In this way, all teams in an ART plan the stories based on the overall ART capacity.
The output of a successful PI planning session are detailed iteration plans with features and stories to be built by the agile teams.
Step 6: Execute PIs
How to develop on cadence and release on demand?
ART teams develop in a regular, predictable schedule or cadence, through short fixed iterations, enabling predictability right from planning up to delivery of the product increment. Given this reliable cadence of PIs, the ART teams can release the accumulated value through the developed software, as desired, to the market, anytime within the PI.
Let the journey begin
Once the journey begins, each crew member completely fulfils the assigned duties, every single day! Be it the captain, who makes sure that the ship is on the right course, or the mechanic, who monitors and repairs any faulty parts or even the cook, who makes sure that the food is on the table for the entire crew! At the end of the day, the work accomplished by all the crew members help to steer the ship forward, mile by mile towards its destination!
Post PI Planning, each of the agile teams start executing the delivery in iterations. All the stories are tested and executed within the iteration and the teams update the progress of stories on a daily basis. At the end of each iteration, the teams form an integrated system, which is demonstrated to all the stakeholders.
At the end of the four iterations, a potentially shippable product or a program increment is demonstrated to the stakeholders, followed by a decision taken on the release.
ARTs also undergo retrospection to reflect on the misgivings and what went well during the release and what can be improved for a smoother delivery in the next release.
Step 7: Measure progress and outcomes
How are delivery outcomes tracked?
Ensure the "system always runs", by tracking your ART and evaluate progress of the features through burn-down charts, cumulative flow diagram and specific metrics at team and ART level as required.
Stay on track
As the journey progresses, the captain keeps a track of whether the ship is moving in the right direction towards its destination. The progress is measured using navigational maps, GPS receiver and gyro compass against set parameters. This will allow the captain to validate the ship's course and if required, change the direction. Every voyage is incomplete without measuring what part of the objectives were met and what weren't!
In agile, the true measure of any delivery progress is the review of the working software at the end of every iteration and release. It is also important to measure the outcome achieved through the product, taking into account the value delivered in the market. Hence, as releases progress, there should be a visualization of how many business goals are met with respect to the work done. This is achieved by logging the key results achieved against the set targets, once the product is released into the market.
What's more in store?
Going a step further here! How is Essential SAFe implemented in the real world? Jile as an Agile DevOps product will help enterprises to practise Essential SAFe for team of teams of sizes ranging from 50 to 125 members! Register now for the free webinar to explore more! To get hands on Jile, register for a free trial today!