Skip to main content

Ship every sprint as though it were your last

Imagine your decisions and the circumstances that ensue as a directed graph—the many possible worlds of your choices. Without care, the wrong choice may prune a whole range of more prudent options, such that only foolish choices remain.

There is a special risk to decision making in groups. Perhaps you agree to a trade-off, taking on risk in favor of an immediate benefit preferred by someone else. With good intentions, all parties agree to how the risk will later be mitigated. But that plan lasts only as long as the memory and continuity of stakeholders. When circumstances change, sensible plans can be mortally wounded by one utterance of the words “pragmatic” or “sunk-cost fallacy”. And that’s how a compromise leaves a system compromised.

It’s even easier to kick risk down the road in software, which seems so pliable compared to the physical world. Outside of safety critical applications, an unreliable feature produces swearing and lost work, rather than factory recalls or injuries. Yet, as software eats the world, too many business processes are built on a substrate of fundamentally dodgy code. People will learn to work around shoddy applications, but doing so ingrains wasteful habits that turn into superstitions. Unfixed bugs create operational scar tissue, which then wastes human potential on bullshit jobs.

Ship software as though this is your last chance to touch the code. Someone else might be stuck with it for a very long time.