This summer I visited Berlin for a conference, and for the first time I recognised the strong influence on my behaviour that can be explained by the broken windows theory.
I accidentally dropped some paper on the ground and for a split second I didn’t feel like picking it up. I did, of course, but with all the other litter scattered around, I felt like leaving it there wouldn’t have made a difference.
The theory was coined in 1982 by James Q. Wilson and George L. Kelling. They wrote an article titled “Broken Windows”, where they observed that if a window in a building is left broken and unrepaired, soon more windows can be broken, as it signals that no one cares.
A later study, published in 2008, tested whether people who see others violate one social norm become more likely to violate other norms too. In one of the experiments, 69% of people littered when there was graffiti on the walls, compared to 33% when there was none.
This is also related to social proof, where we observe others’ behaviour to understand what’s normal. With all that litter around, leaving my own rubbish behind suddenly felt less wrong.
The theory can be used as an analogy within other domains. I first heard about it in the context of software engineering. When there is messy legacy code in the codebase, there is less motivation to write clean code. Over time, the tech debt compounds. Now with LLMs, which write code quickly, the compounding effect can get much worse. Agents can use existing code as a pattern to follow, so any lower-quality parts of the code may spread into otherwise healthy parts of the project (Anton Zaides explained it well in the broken windows theory of coding agents).

A good strategy to prevent quality issues from spreading:
Act fast. Spot and fix the first signs of broken windows before they spread.
Think of working with AI as onboarding new people to an organisation: clear communication and enforcing high-quality standards remain an important part of the process.
Have you ever caught yourself lowering your standards to match the environment around you?
Thanks for reading,
— Michał
Post Notes
Every action, including maintaining high standards, is a vote cast in your parliament:
Discover Weekly
Content worth your time:
Podcast (Live Sessions)
Homepage | Spotify | YouTube | Apple Podcasts | Castbox | Pocket Casts
Connect
LinkedIn | Substack Profile | TopMate | X | Bsky



> Have you ever caught yourself lowering your standards to match the environment around you?
It's a tricky question since where we are headed from not writing code is not reading it, so the question is: if I'm reading the code now and will suggest all kinds of things that are based on my standards, will that be raising or lowering the standards of the quality that a model like Opus 5.5 wrote?
If this were a 100% human-written codebase, I could have a point, however, now that most of our codebase on a project is AI-generated, it's difficult to reason at the code level (since I didn't write the surrounding code either).