How to cheaply refine engineering strategy.
This is a work-in-progress draft!
The belief that strategy is complex often gets people in trouble. It’s appealing to believe that strategies fail due to detailed errors in decision-making, or the unanticipated move of an adversary, and maybe that’s true when it comes to grand company strategies. However, my experience is that engineering strategies fail for very mundane reasons. The most common of these mundane reasons is that executives assume their strategy is good enough and move to rolling the strategy out before validating it works.
migration however
However, in my experience most strategies fail because they skip the refinement step. Refinement solves a critical problem: senior leaders have a lot of business context, but they often don’t know how their own company works in the details.
Likely the most frequent cause of failed strategy is moving from diagnosis to the implementation phases (creating policy and operational mechanisms) without spending any time working on refinement.
Explain the general role of testing, mapping and modeling for writing strategy.
This is an exploratory, draft chapter for a book on engineering strategy that I’m brainstorming in #eng-strategy-book. As such, some of the links go to other draft chapters, both published drafts and very early, unpublished drafts.
Does refinement matter?
Yes examples of costly, mostly unsuccessfuly multi-year strategy rollouts – Uber’s routing strategy, Stripe’s Java rewrite, Calm’s microservices migration
Examples of successful refine: Starling and Puffin at Carta
Creating your toolkit
I want to share the toolkit that I’ve built over my career, which I find very useful. However, this is not the comprehensive or only set of tools you can pick. I highly recommend getting started with these tools that I’ve found useful, but also bring your own additions.
Testing strategy
Testing strategy: avoid the waterfall strategy trap with iterative refinement
Systems modeling
Refining strategy with Systems modeling
Constraint optimization as one subset (e.g. Phoenix Project) – maybe model some stuff from phoenix project?
Wardley mapping
Anti-pattern: pressure before plan
- erlang implementation at Yahoo
- agile rollout at Stripe
- uber rearchitecture
- stripe java rearchiture
- calm service rollout
- carta service rollout
Summary
..