Programmers are Tiny Gods
In this series, I’m exploring the stories about work I find myself coming back to a lot. I call them Things I Learned the Hard Way.
I’ve already talked about designers and how their critique training makes them impossible to work with. Now let’s look at the other side of the coin: programmers.
In Genesis, God creates things in a certain order. Why plants before animals? I dunno. It just seemed right to Him. (Don’t worry, it’s just a metaphor.)
Programmers are the same way. In any programming language, there will be many ways to solve a problem. The right way to do it is a personal decision, made by the programmer, just like in Genesis.
Programmers are the Gods of their tiny worlds. They create something out of nothing. In their command-line universe, they say when it’s sunny and when it rains. And the tiny universe complies.
So it’s no wonder that, in team meetings, programmers can behave like fickle Gods. “No we couldn’t possibly do it that way,” they’ll say. And they may have reasons, or maybe it’s just not the way things are done in their universe.
So if you’re working with a programmer, you have to treat him or her like a God. You have to pray. You cannot issue edicts. You have to come on bended knee. “Here’s the problem I have. I need a solution. Please help.”
The good news is, programmers want their work to be used, and the good ones know that the design matters. So programmers and designers actually have the same goal: getting the stuff used. If each can honor the talents of the other, great things can happen.
A good technique I’ve found is to be very specific with the result I’m looking for, and the reasons why. “When a user clicks X, Y should happen immediately, because if there’s a lag, we’ll lose people.”
Like designers, if you give a programmer a problem with parameters, they’ll apply every bit of genius they have to solve it in the best possible way. If you tell them how to do it, you’ll suffer the wrath of an angry God.