A team is planning a new payment service. Six laws apply directly. Their type determines how to use each.
Mathematical constraints — cannot be circumvented:
L1 (Amdahl): The team wants to scale horizontally to handle peak load. First: measure the sequential fraction of the critical path. If the database accounts for 80% of request latency, adding application servers produces less than 1.25× speedup regardless of how many are added. This is a physics constraint. Horizontal scaling is the wrong investment until the bottleneck is addressed.
L3 (CAP): The payment service must choose consistency over availability during a network partition. Not negotiable for financial data. Every distributed data store in the design must be configured for consistency — the choice cannot be deferred to operations after launch.
Human behaviour tendencies — can be mitigated:
L6 (Brooks): The project is three weeks late. A senior engineer is being reassigned to help. Brooks’s Law predicts this makes it later — not because the engineer is incompetent, but because onboarding costs exceed their contribution in the near term. Mitigation: assign them to a parallel track with no integration dependency on the critical path until the current cycle closes.
L7 (Hofstadter): The estimate says four weeks. It accounts for development only. Add time for integration testing, security review, load testing, deployment, and the three problems that will appear only in staging. Validate the estimate against what the last comparable project actually took, not what it was planned to take.
Design warnings — can be heeded now, not after launch:
L9 (Goodhart): The team is measured on “P99 latency < 200ms.” Watch for responses that optimise the metric by removing slow paths from measurement rather than fixing them. Once the metric becomes the target, it stops measuring what you care about.
L14 (Hyrum): Every field in the payment API response that is visible to external consumers will eventually be depended upon by someone. Decide now what is a stable contract and what is an implementation detail that should not be in the response. Once external callers exist, reversing this decision costs weeks of migration work.