We Write Code for Two Audiences—with Two Different Priorities

“[Users] don’t care about your code—they care about results.”

That’s a controversial statement I found on this dev.to post. It got some virtual stones in the comments from “Clean Code” police officers. I used to be one too. I’ve changed my mind about it.

We don’t write code for the sake of writing code.

We write code to accomplish something for others:

Connecting them with loved ones in the case of Facebook, finding a romantic partner on Tinder, or getting a good and cheap room on Airbnb. Even for boring enterprise software, it’s about happier clients and more sales.

That’s what matters most to the users of Facebook, Tinder, Airbnb, and even boring enterprise software.

The other day, the VP of a software company I was contracting with taught me a lesson about Clean Code and other best practices:

“Clean Code is for us when we have to fix problems and deal with our own mess…users don’t care about that.”

It was a lesson I won’t forget, especially coming from a VP of a software company who had been a coder too.

We write code for humans. For two audiences: our future selves and end users.

Both audiences don’t necessarily intersect. Both audiences don’t care about the same things. For us and our future selves, it’s about maintaining code quality to add new features and solve bugs. For end users, connecting with loved ones, finding a romantic partner, getting a cheap room, and keeping clients happy and sales high. They care about what our code could do for them, not about the code by itself. Quality is there to support that mission.