Estimation: Why It Fails and What Works Better
Why software estimates are systematically wrong in the same direction, and the practices that produce more useful forecasts than a single number ever could.
Category
15 articles
Why software estimates are systematically wrong in the same direction, and the practices that produce more useful forecasts than a single number ever could.
What each SOLID principle actually asks of your code, shown with realistic examples instead of Animal-extends-Dog toys.
How the strangler fig pattern lets you replace a legacy system incrementally behind a routing layer, avoiding the failure modes of a big-bang rewrite.
Docs organized around questions instead of topics, with explicit freshness and ownership, are the ones that stay accurate and get reused.
Why undocumented architectural decisions get relitigated endlessly, and how a lightweight ADR practice preserves the reasoning without becoming bureaucratic.
Monorepos and polyrepos both work at scale — the real decision is which trade-offs your organization is already equipped to absorb.
Release flags, experiment flags, and ops flags need different lifecycles — a flag system without a removal process always accumulates debt.
A practical framework for versioning APIs and deprecating old versions without breaking clients you don't control or can't even see.
The testing pyramid was always a proxy for a cost trade-off — here's the trade-off itself, and when the pyramid's shape doesn't apply.
Technical debt taken on deliberately with a repayment plan gets paid back; debt that accumulates silently almost never does.
Characterization tests pin down what legacy code actually does, bugs included, so you can refactor safely without a real specification.
A name is a promise about behavior, cost, and side effects — bad names mislead quietly, and that cost compounds across every reader.
How trunk-based development and merge queues reduce integration pain compared to long-lived feature branches, and what they require to work in practice.
Why code review that works at five engineers breaks at fifty, and the concrete conventions that keep review fast and fair as teams grow.
Why most postmortems produce a document nobody acts on, and what separates a blameless postmortem process that genuinely prevents repeat incidents.