The Plumber Problem: A Coder's Lament

Juan Villela

I came across John Siracusa’s most recent blog post, where he talks about “ The Plumber Problem”. It’s a phrase that describes the experience of watching a movie or reading a work of fiction that inaccurately depicts a subject area you know well. This inaccuracy distracts you and keeps you in the narrative. It’s a phenomenon I’ve experienced all too often as a developer, especially when portraying “hacking” in pop culture.

Let’s take a moment to consider the typical hacking scene. You know the one: a young, bespectacled genius sits down at a keyboard, types furiously for a few seconds, and then triumphantly declares, “I’m in!” Meanwhile, the screen is filled with rapidly scrolling code, 3D interfaces, and flashing lights. It’s all very dramatic, very Hollywood, and very, very wrong.

As someone who has spent years in the trenches of software development, these scenes are not just inaccurate; they’re painful to watch. They’re the equivalent of a plumber watching a movie where pipes are twisted in ways that defy the laws of physics. They’re a caricature, a gross oversimplification of a complex and nuanced field.

The reality of software development, in general, is far less glamorous. It’s a slow, methodical process filled with trial and error, debugging, and endless hours of research. No matter how fast you type, it cannot be accomplished with a few quick keystrokes.

But the problem goes deeper than just the mechanics of hacking. This is not just embarrassing; it’s damaging. It creates unrealistic expectations about software development and what it can achieve. It fosters a culture that values quick fixes and showmanship over thoughtful analysis and careful design. And it diminishes the public’s understanding of the real risks associated with cybersecurity.

I’m not saying that movies and TV shows need to be 100% accurate portrayals of software development. I understand they’re trying to tell a story, which sometimes requires a little artistic license. But there’s a line between creative interpretation and outright misrepresentation. And all too often, that line is crossed.

Yes, I know I’m being dramatic. But have you seen the last Mission Impossible movie?

See Also

Refactoring's Unseen Value

Refactoring is not just about cleaning up; it's about future-proofing the codebase. It's about making it easier for the next developer (or even future you) to understand what's happening. But companies don't usually reward this.

Tools of the Trade

A Pen Addict episode discussed the importance of having the right tools for optimal productivity and simple elegance to them. Here's a list of the most important tools I use daily as a web developer.

The WET Codebase

Early in our careers, we're exposed to several principles which are thought of as hard rules one must abide by. And while constraints can yield innovation, they shouldn't be at the cost of having a maintainable codebase.