2

Code runs on people

 2 years ago
source link: http://rachelbythebay.com/w/2021/09/05/clever/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Code runs on people

I wrote this a couple of years ago in another context, but it looks like it's still just as applicable today, so I decided to bring it out from behind the permission curtain. This originally was only visible to coworkers who happened to look at my feed. Now it isn't.

Code runs on people. Please keep it simple.

"Everyone knows" that code is something you type into a computer, that gets interpreted by a computer, and is run by a computer. But that's not really the end of it. Before that, it's being "run" on whoever's working on it. After that, it's "running" on whoever's digging into it to fix a bug or add some feature.

You can throw all kinds of wicked, nasty, complicated, Klein-bottle-wannabe tricks into code and the computer will shrug and slog on through it.

Try feeding that same mess to a human and you will have a variety of problems. We see them every day, and, unfortunately, we /create/ them every day.

Nobody will ever have more state about the code than the original author at the time of creation. Everything after that pales in comparison. If it takes an hour to figure out what's going on, well, that's an hour that wasn't spent doing something else more useful and interesting.

I get that some people like to show off. They want to demonstrate just how far they read into the spec of their favorite programming language. They want to impress future code tourists who will come through and marvel at their cave paintings -- the generations to come who will puzzle out the meanings of their scribbles.

We get it, you're clever. But the business doesn't need clever. It needs code that is only as complicated as absolutely necessary to get the job done. Anything else is just wasted effort.

Personally, I'd rather be remembered as that person who left behind "really boring utilitarian code that just sat there doing its job" than someone who created "a breathtaking gleaming spectacle that's also totally opaque and unmaintainable".

If a problem calls for clever, okay, then have at it. But I bet it doesn't. Most things really don't. Be honest with yourself, and with your future coworkers. It makes for a healthier environment.

I think this was originally written as an indirect response to some "clever-wielding" that had been witnessed on one of my tours of duty in some infrastructure team. It's not clear that it had any positive effect, though. These things are hard to measure after the fact, particularly once the "look how high I can pile up the clever" culture has infected a team thoroughly and it starts being rewarded.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK