Conceptual
Login

A Decision You Cannot Undo Deserves More Analysis Than One You Can

Not every decision deserves the same amount of thought, and treating them alike is how teams run slowly and still get the important ones wrong. Sort each decision by what undoing it would cost. Some are cheap to reverse: a cache setting, a library behind an interface you control, a threshold in a configuration file. You should decide those fast, with the information you already have, and change them when you learn more, because the cost of deciding slowly exceeds the cost of being wrong. Others are expensive or effectively impossible to reverse: the shape of your stored data, the boundary between components that many teams then build against, a public interface other people depend on, a datum you begin collecting about users. Those deserve written options, a walkthrough and a decision record, because the way out is a migration rather than an edit. Reversibility is a property you can also design in: putting a supplier behind an interface you own, or keeping the old path running beside the new one, converts a hard decision into a cheap one, and that conversion is itself often the best move available. You can now sort a list of pending decisions by reversal cost, spend your analysis on the expensive end, and name at least one way to make a hard decision softer.