Notes on
The Unicorn Project
by Gene Kim
| 4 min read
Summary of Key Points
- The First Ideal — Locality and Simplicity
- Design things with locality. Create simplicity - otherwise, it’ll be hard to get work done.
- Locality means that an area of code is delegated to one place only, not scattered across the code base.
- Design things with locality. Create simplicity - otherwise, it’ll be hard to get work done.
- The Second Ideal — Focus, Flow, and Joy
- How work feels is important. We should be doing work in small batches, ideally single-piece flow, where we get fast and continual feedback on our work.
- The Third Ideal — Improvement of Daily Work
- Improving daily work is more important than the daily work (similar point made in The Phoenix Project)
- The Fourth Ideal — Psychological Safety
- This ideal is required to solve problems. If it isn’t there, people will withhold bad news, which stops the cogs from turning.
- When something goes wrong, focus on the ‘what’, not the ‘who’.
- Every incident is a learning opportunity.
- Blameless postmortems are after-action analysis of what went wrong. Focus on “what”, not ‘who’.
- Remember the Agile Prime Directive: “Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand” - Norm Kerth
- Saying ‘I should have done X’ or ‘If I had known about that, I would have done Y’. Hindsight is perfect. You won’t know while you’re in the crisis - so saying things like this won’t do you any good.
- The Fifth Ideal — Customer Focus
- Does it matter to the customer? Does it benefit the customer? Would they pay us for it? If not, consider not doing it.
Highlights & Notes
Complected is something simple turned complex. It’s the opposite of simplified.
Software Design
You want loosely coupled systems. It’s easier to switch out or modify parts that way. If you don’t, you’ll be stuck doing small things. It’s like untangling braided strings.
Code deployment lead time, code deployment frequency, and time to resolve problems are predictive of software delivery, operational performance, and organizational performance, and they correlate with burnout, employee engagement, and so much more.
“Simplicity is important because it enables locality. Locality in our code is what keeps systems loosely coupled, enabling us to deliver features faster.
Locality is introduced as a term. It means that an area of code is delegated to one place only, not scattered across the code base.
Technical Debt
A definition of technical debt by Ward Cunningham: ‘technical debt is what you feel the next time you want to make a change.’
Technical debt usually refers to things we need to clean up, or where simplicity should be restored/created.
It’s important to pay technical debt.
The Toyota Andon Cord
At Toyota, they implemented a rope which, when pulled, stops the assembly line.
If anyone encounters a problem, they’re expected to ask for help - even if this means stopping the assembly line.
When the cord is pulled, a manager will ask why. Then, they’ll help solve the problem.
The result is that they learned and solved problems quickly.
This highlights the importance of the improvement of daily work. Cultivating learning in an organization is what enables innovation and excellence.
The Three Horizons
Popularized by Geoffrey Moore, who is famous for Crossing the Chasm. Coined in The Alchemy of Growth.
It’s about having a solid core and also investing into the future by through innovating and placing small bets.
Horizon 1 is your core, already successful business. It’s where things are known and predictable. This is what you already do.
However, these fade over time. Profitable business attracts competitors. Therefore, horizons 2 and 3 are important.
Horizon 2 is a growing portfolio adjacent to your main business. It’s where battle-tested ideas are incubated. Most of these will come from Horizon 3.
Horizon 3 is about innovation and learning. You explore lots of ideas. Take small bets. Prototype ideas and get fast feedback.
You want to figure out whether the idea solves a real customer need, if it’s technically feasible, and if there’s a financially feasible engine of growth.
So, in essence: Do customers want it? Can we make it work? Is it financially viable?
If I had to assign a word to each horizon, I’d say ‘Resilience’, ‘Survival’, and ‘Exploration’ for horizons 1, 2, and 3, respectively.
Core and Context
Coined by Geoffrey Moore.
Some businesses may understand the Three Horizons, but they aren’t able to invest properly in the next generation of innovation. They underinvest in Core, because they’re controlled by Context.
Cores are the central competencies of the organization. It’s what your customers pay for and what your investors reward.
Context is everything else. Cafeterias, shuttles between buildings, and all other things you do to operate. These can be mission-critical. For example, HR, payroll, and email. But it’s not what your customers pay you for.
If you become too burdened by your Context, you can’t properly invest in your Core.
Liked these notes? Join the newsletter.
Get notified whenever I post new notes.