βRemember, code is your house, and you have to live in it.β - Michael Feathers π
— Programming Wisdom (@CodeWisdom) April 19, 2017
This is the best metaphor I know for promoting or defending software quality.
We do live in our codebases: shoddy software engineering has direct, easily-visualised analogues from construction and house maintenance.
For instance, I’m sure you’ve seen these pull requests before1:


Furthermore, the episode “Hurrican Neddy” from season 8 of The Simpsons is a parable of a failed software project, where feature delivery is prioritised at the expense of maintainability.



Homer: Your beautiful kitchen, Ned, just as you remember it.
Ned: Was that, uh, was that toilet always next to the refrigerator?
I often think of the toilet in the kitchen often when reviewing code, when an issue is addressed by shoving code into a place where it really doesn’t belong.
It’s a useful metaphor - it will serve you well in the struggle to keep a large codebase maintainable2.

-
I first saw the fan image in a tweet by @isoiphone. I can’t find the tweet I saw the bricks image in - please let me know if you know it. ↩︎
-
Anthropomorphic dog image from a Gunshow strip called “On Fire” ↩︎