Coding Alone vs. Coding Under Observation
Description
A two-panel rage comic meme contrasting a developer's coding style in different situations. The top panel, labeled 'When I program alone', shows a distressed 'Y U NO' rage face next to a simple, uncommented line of code: 'c = a + b;'. The bottom panel, labeled 'When you program and someone looks at you', depicts a much more formal scene. It features two instances of the sophisticated 'Like a Sir' rage comic character with a top hat and monocle. The code shown is a simple addition function, but it's preceded by extensive C#-style XML documentation comments explaining the function, its parameters, and what it returns. The function itself, 'private int Add(int a, int b)', also includes an overly obvious comment: '// This line adds two ints'. The joke satirizes the performative nature of coding when being watched, where developers might add excessive documentation and follow 'best practices' to an absurd degree for even the simplest code, in contrast to the quick, unceremonious code they write when alone
Comments
7Comment deleted
The amount of Javadoc on a simple getter is directly proportional to the seniority of the architect looking over your shoulder
The moment someone peers over my shoulder, `c = a + b` collapses into `/// Combines additive monoids in ℤ; see RFC-32 for overflow semantics` - Schrödinger’s over-engineering: code observed, ceremony enforced
After 20 years in this industry, I've learned that the complexity of your code is directly proportional to the seniority of who's watching - junior dev walks by and suddenly you're implementing dependency injection for a calculator, CTO shows up and you're architecting a microservice for addition with full observability stack
The real tragedy isn't the lack of documentation when coding alone - it's that three months later, you become 'someone looking at you' when debugging your own undocumented code at 2 AM, desperately wishing past-you had worn the monocle
Coding's Heisenberg principle: measure simplicity alone, but observation instantly entangles it into verbose enterprise sprawl
Attach an observer and the method immediately implements IEnterprisey and emits XML - my most reliable use of the Observer pattern
Enterprise Heisenberg: c = a + b until someone watches; then it’s IAdditionService with XMLDoc, validators, three unit tests, and a Confluence page titled “Arithmetic Architecture.”