A loan against later

Think of it when someone says “we will fix it later”, or every change in one area takes longer than it should.

In everyday life

A plumber tapes a leaking pipe instead of replacing it, and saves an afternoon. Each later repair in that wall takes longer, because the next plumber must work around the tape, and nobody wrote down that it is there.

One case

To hit a launch date, a ride-sharing app hard-codedWritten directly into the code as a fixed value, instead of kept in settings or data. US dollars into 30 places instead of building support for other currencies. That saved 2 days. After launch, each fare change took longer than it should: 3 days, then 4, then 6. In November, adding Canadian dollars took 15 days, because all 30 places had to be found, fixed and tested.

The 2 days saved at launch came back with interest
The case, cell by cell1 cell = 1 fare change
Days the change should take
2222
Days it took
34615
Extra days paid since launch
20
Days saved at launch
2
Each change had to touch all 30 hard-coded places.

Every case

Every codebase carries some debt, and some of it is a good deal: shipping before a deadline can be worth more than clean code. The cost is the interest: every later change in that area is slower and riskier. Debt that nobody wrote down is the worst kind. Nobody plans to pay it back, and the interest grows as more code is built on top of the shortcut.

The word

Engineers call this

technical debtA shortcut that saves time now and costs time later, like a loan with interest. Fine when chosen on purpose and written down; costly when nobody knows it is there.

Take a shortcut on purpose. Write down where it is and what it will cost, and pay it back before you build much on top of it.

Where this idea leads

Skills that encode it

  • principle-model-the-domain pstackChoosing the right structure at write time is cheap; recovering it later reads as a refactor and gets deferred.
  • principle-redesign-from-first-principles pstackDo not bolt a new requirement onto the old design; redesign as if it was there from the start, then deliver it in steps.
  • show-me-your-work pstackKeeps a decision log, one row per decision with what, why and evidence, so a shortcut is written down where a reviewer finds it.