The Pragmatic Programmer
Your Journey to Mastery
The big idea
Don't live with broken windows. One neglected flaw — a sloppy shortcut, a bad design, a bug you keep meaning to fix — signals that nobody's minding the place, and the rot spreads fast from there.
Why it matters
Hunt and Thomas borrowed the idea from criminologists who found that a single unrepaired broken window in a building invites more vandalism — because it broadcasts abandonment. Software decays the same way. It's rarely one catastrophic decision that wrecks a codebase; it's the small ugly compromises nobody pushed back on, each one making the next one feel normal. The first hack lowers the bar for the second.
Use it today
Find the one broken window you've been stepping around — the pile on the desk, the half-finished doc, the awkward function everyone avoids — and either fix it or, if you can't right now, visibly board it up (a note, a ticket, a FIXME comment). The point is to signal that someone still cares.
Drop it in conversation
“There's a broken-windows theory for code, not just cities — the first thing you let slide quietly gives everyone permission to let the next thing slide too.”
In real lifeA kitchen with one dirty pan left in the sink somehow ends the night with a full sink; the first pan made it okay. A shared spreadsheet where one person stops following the naming convention soon has five formats in it. A new hire copies whatever the existing code does — so the shortcut you took last month becomes the house style. Fixing the small stuff early is less about the small stuff and more about the standard it sets.