Perspectives / 1 min read
Designing for the long run.
Build for the person who will inherit the next decision.
Leave a useful trail
I think of a durable system as one that remains understandable after the original conversation is forgotten. The people who inherit it should be able to find its purpose, its boundaries, and the reason behind its important choices. That does not require recording every discussion. It requires keeping the decisions that change how the system should be used.
A short decision record can do a surprising amount of work. I would include the problem, the chosen approach, the tradeoff, and the condition that would make me revisit it. The last part matters because a sensible decision can become an obstacle when its assumptions change.
Make change an ordinary operation
Long-lived systems need room for revision. I would look for places where a business rule is hidden inside a technical workaround, where a person carries an undocumented exception, or where a small change requires understanding every component. Those are useful signals for where to create a clearer boundary.
I would also make routine care visible. What needs review each week? Which dependencies can drift? How can someone tell that the information is becoming stale? Maintenance becomes easier to prioritize when it connects directly to the promise the system makes to the people using it.
Optimize for the next thoughtful change
The long run is difficult to predict, so I would avoid designing every possible future at once. Instead, I would make the next change easier to evaluate and safer to reverse. Clear ownership, readable evidence, and small releases help with that. A durable design does not eliminate the need for judgment. It gives the next person enough context to exercise judgment well, even when the conditions are different from the ones I started with.