Patterns
Things that keep happening in software systems and to the people who build them. Use them to diagnose problems. They make poor instructions.
How to use them. Use them as lenses. When something looks familiar, ask which pattern you are seeing. Conway's Law, Brooks's Law, and Goodhart's Law each name something common enough that recognising it saves time.
How they get misused. Treated as causes when they are descriptions. "It is just Conway's Law" explains nothing on its own. Naming the pattern starts the conversation.
-
Pattern Conway's Law The shape of your software ends up matching the shape of how your teams talk to each other.
-
Pattern Team Topologies Four kinds of team (working on a stream of value, building a platform, helping others, or owning something complicated). Three ways teams can interact (working together, providing a service, or helping someone learn).
-
Pattern Brooks's Law Adding people to a late project makes it later.
-
Pattern Goodhart's Law Once a measurement becomes a target, it stops being a useful measurement.
-
Pattern Pareto Principle (80/20) About 80% of effects come from about 20% of causes.
-
Pattern The Ninety-Ninety Rule The first 90% of the code takes 90% of the time. The last 10% takes the other 90%.
-
Pattern Gall's Law Complicated systems that work always grew out of simple systems that worked.
-
Pattern Second-System Effect The replacement for a successful small system tends to be over-built.
-
Pattern Dunbar's Number A person can maintain about 150 stable relationships.
-
Pattern Bus Factor The number of people you would have to lose before the project was in serious trouble.
-
Pattern Hype Cycle / Amara's Law We overestimate how much a new technology will change things in the short term. We underestimate how much it will change things in the long term.
-
Pattern Cost of Late Defects (Boehm's 1:10:100) A defect found during design costs roughly 1 unit to fix. Found during testing it costs 10. Found in production it costs 100.
- Pattern Metcalfe's Law The value of a network grows with roughly the square of the number of users.
- Pattern The Peter Principle People get promoted to the level at which they stop being competent, and then they stay there.
- Pattern The Ringelmann Effect The bigger the group working on a shared task, the less effort each person puts in.
- Pattern Technical Debt Shortcuts taken today add a cost that has to be paid later, with interest.
- Pattern Westrum's Typology Three kinds of organisational culture, distinguished by how information flows. Pathological hoards it. Bureaucratic routes it. Generative shares it.
- Pattern Build-Measure-Learn Build the smallest thing that tests your idea. Measure what happens. Learn what to do next.
- Pattern Cost of Delay The economic value lost by waiting one more week to ship something. Often higher than the cost of doing it badly.
- Pattern The Innovator's Dilemma Successful companies fail at disruptive innovation precisely because they listen to their best customers and protect their existing business.
- Pattern Crossing the Chasm There is a gap between early adopters of a new technology and the mainstream market. Most new products die in it.
- Pattern Dynamic Reteaming Teams change shape over time. People join, leave, split, and merge. Treat reteaming as a normal practice.
- Pattern The Surgical Team A small team of high-talent specialists, organised around a chief programmer, outperforms a larger mixed team on coherent work.
- Pattern Hexagonal Architecture (Ports and Adapters) Put the domain at the centre. Surround it with ports (the contracts the domain offers) and adapters (the code that connects ports to the outside world).
- Pattern Pace Layers Different parts of a system change at different rates. Fast layers innovate. Slow layers stabilise. Each layer constrains and is constrained by its neighbours.
-
Pattern Hofstadter's Law It always takes longer than you expect, even when you take this rule into account.
-
Pattern Parkinson's Law Work expands to fill the time you give it.
-
Pattern The Lindy Effect The longer something has been around, the longer it is likely to stay around.
- Pattern OKRs (Objectives and Key Results) A method for aligning effort. Objectives describe what to achieve. Key Results describe how you would know.