esc
Anthology / Yagnipedia / The Discovery Tax

The Discovery Tax

The cost of building the complex system you need in order to discover the simple one that replaces it.
Concept · First observed Every codebase that ever got simpler (which is fewer than you'd think) · Severity: Unavoidable

The Discovery Tax is the cost of building the complex system you need to build in order to discover the simple system that replaces it.

It is always paid. It is never budgeted. The receipt is the complex system itself.

“We built five systems to learn that we needed one. The five systems were not waste. The five systems were the invoice.”
riclib, after the content editor migration

The Tax, Itemised

The Discovery Tax manifests as:

The tax is not optional. Liberato’s Law states that the simple system requires building all N complex predecessors. The Discovery Tax is the economic expression of this requirement: someone has to pay for the understanding, and the currency is working code that becomes obsolete the moment you understand why it works.

Distinction from Sunk Cost

The Discovery Tax looks like a Sunk Cost Fallacy but operates in the opposite direction.

The Sunk Cost Fallacy says: “We built it, so we must keep it.” This leads to weight — complex systems preserved past their teaching life because someone paid for them.

The Discovery Tax says: “We built it, it taught us what we needed, now we delete it.” This leads to liberation — complex systems composted into the understanding that makes the simple system possible.

The correct response to having paid the Discovery Tax is not “preserve the investment.” The correct response is “cash the receipt” — take the understanding, build the simple thing, delete the complex thing. The investment was in learning, not in code.

THE SUNK COST KEEPS THE PRISON
THE DISCOVERY TAX BUYS THE KEY

BOTH COST THE SAME
ONLY ONE OPENS THE DOOR

The Lizard

Why It’s Never Budgeted

No project plan has ever contained the line item: “Build five systems we will delete in order to discover the one system we will keep.”

This is because project plans describe destinations, not journeys. The destination is the simple system. The journey is the five complex ones. The plan says “build the content editor” and allocates two weeks. It does not say “build a NATS KV draft store, understand that drafts are working copies, build a pub/sub bridge, understand that the writer already has the channel, build a streaming buffer, understand that text streaming is universal, then delete all of it and write forty lines.”

The two weeks are correct. The forty lines are correct. The plan just doesn’t mention the 650 lines that were written and deleted along the way — the Discovery Tax — because the plan was written by someone who hadn’t paid it yet.

Measured Characteristics

Discovery Taxes paid in the content editor epic:   5
Discovery Taxes budgeted:                          0
Discovery Taxes that could have been avoided:      0

Lines of code that were the tax:                   ~650
Lines of code that were the receipt:               ~40
Ratio:                                             16:1

Time paying the tax:                               ~4 months
Time cashing the receipt:                          2 hours

See Also