concept

Good Enough Architecture

Designing to what the situation actually requires rather than to what would be ideal, on the basis that unnecessary sophistication carries permanent cost.

The most common failure of capable architects is not under-engineering. It is solving problems the organisation does not have, at a cost paid every day thereafter in complexity, operational burden and onboarding time.

The questions that calibrate it: what scale does this actually need to handle, on evidence rather than aspiration? What is the cost of being wrong, and how expensive is it to change later? Who will operate this, and can they?

The judgement rests on reversibility. A cheaply reversible decision does not warrant sophistication — build the simple thing and change it when evidence arrives. A data model that will hold years of records warrants real thought. Spending equal care on both is a misallocation of the scarcest resource available.

Two specific applications:

Duplication is cheaper than the wrong abstraction. An abstraction built from one example encodes that example's accidents, and the second use case breaks it. Wait for the third.

Boring technology for anything undifferentiated. Novelty spends innovation budget better spent on the product, and it carries a hiring and operational cost that arrives later.

The counterweight, stated honestly: pragmatism is not an excuse for avoiding necessary work. The distinction is between complexity that serves a real requirement and complexity that serves an imagined one — and the test is whether the requirement can be stated as a scenario with a number.