Sixteen weeksscene 34 / 34~3 min

The debts we carry

2014 is still down there.

In 2014, two founders and three engineers built Traversal in eleven weeks, in Ruby, as one big application. It sold. It grew. It is still down there.

The oldest screens of the organizer portal still run on that 2014 code, and that code is a Concept · lights on your maplegacy systemAn old system still running something important: built for a different era, understood by few, and frightening to change precisely because it matters. Not an insult; it means the system succeeded long enough to become load-bearing.. Say the word carefully. It is not an insult. Legacy means the system won: it succeeded long enough to become load-bearing, and its authors are long gone, and changing it now is surgery on a stranger’s heart.

The eleven weeks left marks. Corners cut to hit 2014’s dates are still charging interest, and that accumulated cost is Concept · lights on your maptechnical debtThe accumulated cost of past shortcuts: code that works but is fragile or wrongly shaped for what the product became. It charges interest, every nearby change costing extra, until the principal is paid down. Taking it on deliberately can be right; never repaying is the sin.. The metaphor is exact enough to do arithmetic with. Every feature that touches the old screens costs half again as long, and that surcharge is the interest payment, made monthly, forever, until someone pays the principal.

Paying, patching, and carrying

Paying principal has a name: Concept · lights on your maprefactoringImproving code’s internal structure without changing its external behaviour: same features, cleaner insides. Invisible to users by definition, which is why it must be defended in roadmap meetings by its future payoff., improving the insides while the outside behaves identically. Invisible to users by definition, which is why Priya defends it in roadmap meetings with the only argument that works: everything near the cleaned part gets faster to change. Two sprints of this act quietly went to it.

Around the edges live the Concept · lights on your mapworkaroundA fix that routes around a problem instead of solving it: the manual step, the restart-it-Tuesdays, the special case. Fine as triage, dangerous as permanence, since workarounds calcify into load-bearing mysteries.s, the routed-around problems, and Traversal’s oldest is beloved: a scheduled restart of one Ruby process every Tuesday, cause unknown, author departed, removal never quite worth the risk. Fine as triage. Load-bearing as permanence. Every company has a Tuesday restart, and asking what ours is will make any engineer smile darkly and start talking.

And the whole quiet category, updating dependencies, patching holes, feeding the pipelines, paying the interest, is Concept · lights on your mapmaintenanceThe ongoing work of keeping software alive: updating dependencies, patching security holes, fixing small bugs, paying debt interest. Typically the majority of a mature product’s engineering time., the majority of a mature product’s engineering hours and approximately none of its press releases. Training, in other words. Sixteen weeks of unglamorous miles so that one Sunday can look effortless.

Which is where this act has been pointing all along. The features are built, the rehearsal held, the debts are known and carried. Week twelve ends with the roadmap showing one item in bold: Harborview. Case, somewhere across town, runs twenty miles and feels, for the first time, ready. Nobody at Traversal would use that word yet. Act III is the freeze.

End of scene

This scene covers: technical debt, legacy system, refactoring, maintenance, workaround

Back to the story

The language landscape