brought you to this workshop. Is there something you particularly need help with? A challenge you have with creating an engineering strategy that you want help with? Maybe you’ve got the beginnings of a strategy and you want some feedback on it? Have you tried to bring in a technical strategy before but it’s stalled or not worked?
down delivery because teams are spending a signi fi cant amount of time navigating around outdated code Business strategy: Di ff erentiate through new features delivered and iterated rapidly
we have reliability issues for our customers. Business strategy: Target enterprise customers - who demand strong SLAs and expect reliability as standard.
… Why #1 Symptom … Why #2 Symptom … Why #3 Symptom … Why #4 Symptom Delivery is slow on the app because changes require deep support from the central Apps team. The mobile app is very complex, and hard for contributing teams to understand. Simplifying it has never been prioritised. Why #5 5 Why’s
changes require deep support from the central Apps team. The mobile app is very complex, and hard for contributing teams to understand. Simplifying it has never been prioritised.
slow on the app because changes require deep support from the central Apps team. The mobile app is very complex, and hard for contributing teams to understand. Simplifying it has never been prioritised. Delivery is slow on the app because changes require deep support from the central Apps team. This dependency exists because the app is structured in a way that prevents autonomous contributions. Simplifying it has never been prioritised.
on the app because changes require deep support from the central Apps team. This dependency exists because the app is structured in a way that prevents autonomous contributions. Simplifying it has never been prioritised. …because the maintaining team had enough internal knowledge to work e ffi ciently despite it.
no longer fi ts our growing organisation with multiple contributing teams. ++ Failure to address this has resulted in delivery bottlenecks and coordination overheads, limiting our ability to ship features rapidly, respond to user needs, and compete on product experience. Delivery is slow on the app because changes require deep support from the central Apps team. This dependency exists because the app is structured in a way that prevents autonomous contributions. Simplifying it has never been prioritised because the maintaining team had enough internal knowledge to work e ffi ciently despite it.
because changes require deep support from the central Apps team. This dependency exists because the app is structured in a way that prevents autonomous contributions. Simplifying it has never been prioritised because the maintaining team had enough internal knowledge to work e ff i ciently despite it. This structure no longer fi ts our growing organisation with multiple contributing teams. Failure to address this has resulted in delivery bottlenecks and coordination overheads, limiting our ability to ship features rapidly, respond to user needs, and compete on product experience.
app because changes require deep support from the central Apps team. This dependency exists because the app is structured in a way that prevents autonomous contributions. Simplifying it has never been prioritised because the maintaining team had enough internal knowledge to work e ff i ciently despite it. This structure no longer fi ts our growing organisation with multiple contributing teams. Failure to address this has resulted in delivery bottlenecks and coordination overheads, limiting our ability to ship features rapidly, respond to user needs, and compete on product experience.
deep support from the central Apps team. This dependency exists because the app is structured in a way that prevents autonomous contributions. Simplifying it has never been prioritised because the maintaining team had enough internal knowledge to work e ffi ciently despite it. This structure no longer fi ts our growing organisation with multiple contributing teams. Failure to address this has resulted in delivery bottlenecks and coordination overheads, limiting our ability to ship features rapidly, respond to user needs, and compete on product experience.
It explains how we got here 3. It answers “why” and “why now?” 4. It creates direction 5. It avoids wishful thinking Activity: Sketch and share your diagnosis 10 minutes Task • (5 mins solo) Sketch a diagnosis for your problem • (5 minutes small group) Share your thoughts on your diagnosis, what you still need to improve about it, with a couple of people at your table
to the diagnosis 2. They should clarify what not to do 3. They should be concrete enough to help someone make a decision 4. They should be consistent with one another
than reusing existing software Guiding principles: • Favour existing platforms over bespoke solutions. • Build new systems for re- use or extensibility. • Ensure existing systems are easy to contribute to. 1. Your principles should stem from your diagnosis
No Yes We will prioritise reliability improvements over adding new features until we reduce incidents by 80% 2. Guiding principles should clarify what not to do
Prioritise improvements to our CI/CD pipeline, especially where work fl ows require frequent manual intervention, or block independent team delivery 3. Guiding principles should be concrete enough to help someone make a decision
Yes 1. Every app release must maintain 100% stability and zero regressions. 2. Prioritise rapid iteration and experimentation in the app. No Yes 1. Every app release must maintain 100% stability and zero regressions. 2. Invest in robust automated testing and release validation pipelines.
to the diagnosis 2. They should clarify what not to do 3. They should be concrete enough to help someone make a decision 4. They should be consistent with one another
team owns the whole codebase [etc] Decentralise App ownership by assigning domain aligned teams clear responsibility for speci fi c modules to reduce delivery bottlenecks and improve code quality Diagnosis Guiding Principle 1
team owns the whole codebase [etc] Decentralise App ownership by assigning domain aligned teams clear responsibility for speci fi c modules to reduce delivery bottlenecks and improve code quality Diagnosis Guiding Principle 1 • Map out areas of the monolith to logical domains and identify ownership gaps • Agree and assign speci fi c code ownership for each module • Establish an Apps platform team and an Apps enablement team to support the work of the teams who have taken on parts of the monolith Concrete Actions
policy • They’re speci fi c and actionable • They work together • They address root causes, not symptoms • They show strategic investment • Are achievable in a meaningful timeframe • Map out areas of the monolith to logical domains and identify ownership gaps • Agree and assign speci fi c code ownership for each module • Establish an Apps platform team and an Apps enablement team to support the work of the teams who have taken on parts of the monolith Concrete Actions
minutes Decentralise App ownership by assigning domain aligned teams clear responsibility for speci fi c modules to reduce delivery bottlenecks and improve code quality • Map out areas of the monolith to logical domains and identify ownership gaps • Agree and assign speci fi c code ownership for each module • Update operational processes to re fl ect ownership • Establish an Apps platform team and an Apps enablement team to support the work of the teams who have taken on parts of the monolith Concrete Actions Guiding Principle 1
and framing of the critical challenge Principles - The general approach for overcoming the diagnosed challenge, o ff ering coherent direction. Concrete actions - coordinated steps designed to carry out the guiding principles. O ff ering focussed practical implementation.
the whole table, take it in turns to run through your kernel sketch. • Do not give feedback, just listen and think about what you can learn from how the rest of your table has approached their challenge. Share your: • Diagnosis • Principles • Actions
with Richard Rumelt’s work. Please evaluate the following technical strategy using his framework — especially focusing on whether it has: • A clear and insightful diagnosis of the problem • A well-de fi ned guiding policy that helps people make decisions • Coherent actions that reinforce each other and follow logically from the policy
Di ff erence and Why it Matters. Richard Rumelt • Peter M. Senge, The Fifth Discipline: The Art & Practice of The Learning Organization. • Playing to Win: Roger Martin