You fix the bug, but the system still feels brokenYou find a naming inconsistency, a missing error case, a loop that could be tighter. You fix it in forty minutes and open a PR. But as you wait for review, something whispers that this one patch changes almost nothing. The architecture still creaks. The database still has no indexes on the most-queried columns. The auth layer still copy-pastes secrets into logs. You are rearranging deck chairs while the ship rolls. So you close the PR, and the forty minutes sit in your head as wasted motion.
OLD SCRIPT DETECTED
“Fixing small bugs feels like rearranging deck chairs on the Titanic”
Try this response:
“This bug is fixable. The system's shape is separate.”SEE THE PRACTICE
Build a response for this thought—and one move to prove it.
THE THOUGHT
“Fixing small bugs feels like rearranging deck chairs on the Titanic”
YOUR RECORDED RESPONSE
“This bug is fixable. The system's shape is separate.”
ONE PRIVATE MOVE
Find one small bug in the codebase that has no architectural dependency—a typo, an error message, a missing null check. Fix it entirely, including a test. Send it as a PR without justifying why you did not fix the system instead. Do not respond to comments that ask why you…
The patch that never stops the leak
Small improvements feel like complicity with the wreckThe inherited system has visible, systemic problems. And when you fix only the small bugs, you appear to accept the wreck. Other engineers point at the architecture and ask why you do not fix it. You defend the current design because admitting it is broken feels like admitting you should have rewritten it weeks ago. The small fix becomes evidence that you are not doing enough, and doing anything smaller than a full rebuild starts to feel like enabling the decay. So you aim for the grand rewrite instead—and the small bugs never get fixed at all.
One surgical fix proves you know the differencePick one small bug that has no architectural dependency. Fix it completely. Write a test. Send the PR without mentioning the system's larger state. The point is not that this fix is enough; it is to establish in code and in your own thinking that you can tell the difference between a surgical improvement and a rewrite fantasy. Over three months, ten such fixes add up. They are not the ship being salvaged; they are evidence that you understand what you own and what you do not.
TRACE · 01/04
How this script runs you
- You leave small bugs unfixed because fixing them feels like pretending the system is healthy when it is not.
- A four-hour refactor to improve clarity feels wasted because the whole architecture needs to change.
- You defend the broken system's design to others, treating any improvement smaller than a rewrite as complicity.
SOURCE_LOCATED · 02/04
The hidden rule underneath
The Legacy Inheritance Script
If the system is fundamentally broken, then fixing small things means I accept it as it is. Every patch I do not make is proof I refuse to pretend it is healthy.
FORGING_REPLACEMENT · 03/04
Replacement lines (record these)
- This bug is fixable. The system's shape is separate.
- One fix does not require me to defend the architecture.
- Small improvements and big problems can coexist in what I work on next.
Generated per person in the app — these are the flavor, not your script. Yours is built from your exact words.
INSTALL · 04/04
The protocol, on one card
When I think
“Fixing small bugs feels like rearranging deck chairs on the Titanic”
I say
“This bug is fixable. The system's shape is separate.”
Then I do one thing
Find one small bug in the codebase that has no architectural dependency—a typo, an error message, a missing null check. Fix it entirely, including a test. Send it as a PR without justifying why you did not fix the system instead. Do not respond to comments that ask why you…
STATUS: READY_TO_INSTALL
Wipe this thought4 minutes. Your voice. Free.
The wipe protocol
- Write the thought exactly as it plays: "Fixing small bugs feels like rearranging deck chairs on the Titanic". Word for word — the wipe targets the sentence, not the vibe.
- Trace the rule and the avoided action. What does this thought conveniently excuse you from doing?
- Record the replacement lines below in your own voice. Speak like you mean it — no recording, no install.
- Run the loop: play it every morning and night, log one proof action a day for 7 days.
Straight answers
Does this mean I should ignore the system's broken architecture?
No. It means the architecture is one problem and the small bug is another. Fixing the small one does not erase the big one or claim it is acceptable. It does prove you can distinguish between them—which is what rewrite fantasies actually lack.
What if my manager asks why I am fixing small things instead of rebuilding?
Because the architecture is a multi-quarter conversation and small fixes are working code today. One does not need permission to improve details while larger questions are still being asked. And the small fixes give you more context for knowing what a rebuild would even look like.
Doesn't doing small fixes just perpetuate the broken system?
A broken system gets perpetuated by nothing happening at all. Small fixes show you are paying attention and understand what is reachable now. A rewrite that never ships perpetuates it just as thoroughly—with more certainty.
Related old scripts
Related self-checks
Related science
Researchers to explore
Related mechanisms
The research behind this script
- Postmortem Culture: Learning from Failure — Google SRE, Google SRE Book, 2016
- Invisible Labor in Open Source Software Ecosystems — Champion et al., arXiv, 2024
- Stack Overflow 2025 Developer Survey: Trust in AI at an All-Time Low — Stack Overflow, 2025
- A Mosaic of Perspectives: Understanding Ownership in Software Engineering — arXiv, 2025