What Changed in How We Ship Software
Automation delivers value only after the underlying process is understood. Automating a broken workflow simply produces broken results faster and with more confidence.
Every abstraction has a cost, and that cost is paid by whoever has to debug through it. Good abstractions keep the escape hatch visible and documented.
What this means in practice
Teams often optimise for the demo rather than the decade. The result is architecture that photographs well and collapses under its first real load.
The most useful internal tools are rarely impressive. They are small, specific, and owned by the people who use them daily.
None of these ideas are new. What is new is how expensive it has become to ignore them at scale.
Benchmarks measure what is easy to measure. They rarely capture the thing that decides whether a system is pleasant to work with on an ordinary Wednesday afternoon.
Version numbers are a promise, not a measurement. What matters is whether an upgrade can be undone on a Tuesday afternoon without convening a war room.
Most tooling debates are proxies for a disagreement about ownership. Settle who owns the outcome and the tool choice becomes obvious in about ten minutes.
Every few years the industry rediscovers the same lesson: the systems that survive are the ones that are easy to understand at three in the morning when something breaks.
Latency budgets are a form of product design. Once you accept that, caching decisions stop being purely technical and start being editorial.
Documentation is not a chore that follows the work. In practice it is how the work becomes durable enough to survive staff turnover.
Observability spending tends to lag incidents by about one quarter. The teams that get ahead of it treat logging as a first-class feature rather than an afterthought.