Estimated Reading Time: 5 minutes
I just shared my perspective that SAFe isn’t a hard-coded methodology and while it gives you a comprehensive and to some even overwhelming set of practices, there are still a lot of choices.
My old friend Sutap suggested: Would be great if you can share examples around how SAFe is not a one size fits all framework. Examples/ case studies will really help. From experience, enterprises typically have very different projects: from large programs running for years with say once in a quarter releases (say customer A) to enhancement requests released very frequently (but unsteady pipeline: say customer B) to fixed scope fixed timeline regulatory projects (customer C). Would love to hear how SAFe will handle such (and maybe many more) scenarios.
(Sutap and I worked on a scaled agile transformation in one very big enterprise where we saw all of those and more …)
So here are a couple of examples/case studies, some real and some semi-real. I’m not trying to explain every concept I mention here as the goal is to portray the optionality, not teach you SAFe. (If learning SAFe is your goal, come to an Implementing SAFe class or go read SAFe distilled…). without further ado – here goes:
When an enterprise like this implements SAFe they would probably have different Agile Release Trains (ARTs) for each one of those programs. All those ARTs would work on a Program Increment (PI) cadence like all Scrum teams work on a sprint cadence. But each of those ARTs might have a different style of PI.
The ART serving Customer A might naturally have a quarterly PI. The ART serving Customer B might have a quarterly PI or maybe a shorter 8-week PI or maybe even shorter (yes – despite the fact that SAFe says 8-12 weeks! herecy!).
The ART serving Customer C might have a quarterly PI. A would release every quarter. B might release every iteration, C might release to production only every 2-3 PIs.
The Program Kanban for each of them might look different to reflect the different budgeting/analysis/governance mechanism each customer uses and the different “road to production” downstream from development. For one customer a 3rd party SI might have developers/testers on the feature teams with the enterprise. For another customer it might be hard to integrate the SI’s people into the agile teams so a combination of internal Feature teams and a few Component teams with people from the SI might be the right approach at least initially. In other cases the SI might not even be willing/structured to collaborate at this level and would be considered a “Supplier” at the Value Stream level.
The infrastructure the enterprise has for customer A might be advanced enough that Continuous Integration (CI) exists and there’s no need for a System Team. For Customer C it might be too early and the System team is needed both for performing the integration as well as starting to figure out how to achieve CI. Maybe in Customer C the System Team is just focusing on improving the CI and is also working on achieving Continuous Deployment capabilities (CD). In Customer B it might be the case that there’s both a System Team and a DevOps enablement team each focusing on different stages in the delivery pipeline.
PI Planning itself might look different. The level of predictability needed in A is high and the backlog and ART are stable enough to enable it so PI planning is pretty classic. In B it is not THAT important and actually much harder to achieve so PI Planning focuses more on main dependencies and projects saving significant capacity for emerging enhancements throughout execution while using PI Objectives to make sure the business and the ART are aligned on which enhancements to focus on as they emerge. In C due to the fixed scope fixed timeline the backlog SHOULD be even more stable than A and we would probably spend more time on estimating the features in the Program Backlog and building a roadmap to see whether we have a converging plan or need to invest more resources. Even earlier in this type of project, when doing the portfolio-level business case for this sort of epic we would need to do more analysis and estimation than for epics for customer A. And the features for customer B might actually not have any Program/Portfolio Epic above them.
For customer C it might make sense to have one roadmap for the 3 ARTs working on the project. For customer A it might make sense to have separate roadmaps since each ART is working with a separate business “tower”.
Here are a few other examples from other contexts:
- How to deal with multiple small value streams – sometimes it makes sense to aggregate them into one Agile Release Train (ART) – especially when you want to be able to have one Program Backlog in which you prioritize those two value streams against each other and allow the ART to focus on a specific value stream/product for a while. Sometimes it makes sense to actually have a few smaller ARTs even if they are really small to the point of being mini-ARTs – in case the investment/funding for each value stream is quite stable/separate and the teams working on the different products are separate as well.
- Should a critical core technology group that is common to multiple products be considered a separate ART? Should the different products and this core technology group be on the same Value Stream (VS) level to allow coordination in Pre/Post PI Planning? Should the products be in different VSs because that’s the only connection? Should this group be split into teams that each join a different ART? Sounds like the right “Agile” move but on the other hand what if prioritizing what this core technology group works on across the different products is a key portfolio-level decision? if so, having a team per ART actually decentralizes control of this key resource TOO much.
- For some ARTs pair-working would make sense 20% of the time. For other ARTs that are currently scaling up their capacity by bringing in more people (Think the program working for customer C which just found out they need to add 3 more teams over the next PI to deliver the fixed scope project on time) they might go into pair-working 80% of the time initially to accelerate knowledge sharing and then go back to 20%.
- In some cases the Scrum Master will be a technical lead inside each Agile Team. In other cases they will be one of the Managers working with the ART each covering 2 teams.
Enough questions, configurations, and options? I think so…
It would be great to have “one size fits all” for all of those. And maybe you can find some SAFe consultants that would tell you that’s the case. The good ones will at least make sure you understand there are open questions and multiple options. The best ones would be able to share from their experience what worked where, the upsides and downsides, and be able to help you figure out what configuration to try as well as guide you in inspecting and adapting on your way to figuring out the SAFe configuration that’s best for you.