How to drive a bus
Many, many years ago, early in my tech career, before I could afford a car, I took the bus to work every day. This being Kanata (then a separate city from Ottawa) it meant a four-block walk to the bus stop followed, typically, by waiting at least 35 minutes for the bus that came every half hour. (Yes. 35 minutes or more for a twice-hourly bus. Did I mention this was the beginning station for the route? I didn’t? Consider it mentioned now.)
The bus driver
There was one bus driver who I seemed to be cursed to always get. The bus I needed to catch to get to work on time was his bus. This bus driver hated the public as far as I can tell. If you greeted him as you got on the bus you got ignored stonily on a good day; on a bad day you got a hateful glare that made you wonder if you were going to be next in a bizarre series of ritual murders.
This guy was a real piece of work. He glared at you if you got on the bus. He glared at you if you got off the bus. He turned beet red, looking like he was just this side of an aneurysm if you dared to signal your intent to get off at the next stop. Heaven help you if you delayed him for three seconds at a stop!
That’s what I did once, you see. I showed up late (for the first time since he’d started the route) and came running to the bus stop just as he’d thrown the bus in gear. He literally had to stop for three seconds to open the door, let me on, and carry on moving. This was too much for him.
“Next time come to the bus stop on time!” he scolded me.
My back went up. I turned to him and said, in a clear, loud voice, “Listen, asshole. You’ve got a real attitude problem given that without riders you don’t have a job.” I then proceeded to my seat.
To cut a long story short (too late!) he slammed on the brakes and refused to move the bus unless I got off. I refused to get off. The other passengers supported me, however, so his peer pressure thing didn’t work out. (We’d been comparing notes on this guy for several weeks, you see, and nobody liked him one iota.) The passengers filed off the bus, several of them giving me supportive pats on the shoulder while glaring defiantly at the driver. They just waited for the next bus while I waited for what came next.
The rest of what happened (I got driven to work personally by the guy’s supervisor and he was never on that route again) is irrelevant to my point. My point is that this guy had the wrong attitude as a bus driver. He thought—incorrectly—that his job was to drive the bus. It wasn’t. His job was to drive people and the bus was the means to that goal.
By confusing what his job actually was he focused on the wrong things. Delays were interfering with his incorrectly perceived job instead of being, you know, the whole point of his job. I’m sure he thought he could do his job perfectly if it weren’t for all the customers…
And here’s where I get personal
This error is typical of people in the software industry. (That’s software industry. If you’re a researcher the status is obviously different.) Indeed I’d guess that the Chambers Constant (that’s 99.44%) of software developers share this guy’s attitude. “If only the users weren’t so stupid then I could do my job!”
Don’t believe me? Ask yourself this question: when was the last time you used a term like “luser” non-ironically when talking about the people who use your software? When was the last time you sat down and listened to a user complaint (say in a bug report) without rolling your eyes at the injustice of having to support such a dunderhead? If you’re like most of the people I’ve worked with or interacted with over the years—and that number’s well into the multiple hundreds scattered across three continents (North America, Europe and Asia)—you’re probably rolling your eyes now because you know what’s coming next and you want to get your defensive eye-rolling and dismissal going before you see the punch line.
What comes next
Because, you see, just like the job of a bus driver isn’t driving a bus, the job of a software developer isn’t developing software. The job of a software developer is solving user problems using software. Those “lusers” who irritate you so? They’re the entire reason you’re in the fucking industry. If you lose sight of that you’re no better than that asshole bus driver. Indeed, since you’re presumably educated and/or intelligent, you’re likely a worse asshole than that bus driver.
If you can’t cope with this fact do yourself, your co-workers, and your customers a favour and find another job. Software development just isn’t for you.