Just as you can split the world between smokers and non-smokers, or perhaps survivors and non-survivors, or people who have jumped out of a plane and those who have not, etc, it is possible to split the internet-dwelling public into two distinct groups:
Those who write software and those who complain incessantly about the software others have written.
I see it every day: “The iPhone can’t send MMS.” “Gmail’s filters just missed some spam. FAIL.” “Fail Whale sighted!” “AWS could have at least contacted us before losing all of our user’s avatars.”
It’s relentless; eternal. That is, at least among groups of individuals who are users rather than creators of software.
Sure, you see programmers complaining about software. Hell, they complain about software louder and more frequently than their non-programmer contemporaries. But it’s a very disctinct, different kind of whimper.
A programmer complaining about software is akin to an astronaut expressing concern with his flight suit, rather than wishing his ship could reach Mars in under a half an hour or have cup holders installed in every seat.
And when a programmer finds a problem in his current toolset, he fixes it and passes the changes along. It strikes me as a little bit of a shame that the “Patches not Tickets” mentality can’t spread beyond Open Source and into an overall fix-your-problems-your-damn-self mentality that helps everyone, regardless of medium.
I read an article somewhere that I would never be able to find again now where the author compared users of software to drivers of a car and developers of software to mechanics.
I think I dig that analogy. I really do, except for the fact that developers of software are less like auto mechanics and much more like MacGyver meets John Cusack.
Think about it. There are heart-racing thrillers out there where the protagonist sprints around a city solving one little problem after another in order to save the world (Bruce Willis), but there’s something that runs way, way deeper.
You can’t make a good movie without a hefty dose of kickass problem-solving.
Hell, you can’t even live an interesting life or have a not-dull day if the desire to solve problems quickly, efficiently, and kick-assedly isn’t engrained deeply into your being somewhere.
It’s not what seperates the men and the boys; it’s so much more than that. Solving problems is quite literally what seperates us as humans from animals, and I would argue that every aspect of suspense, excitement, and catharsis that can be found in humanity is a direct result of problem solving.
Think about it. John Cusack doesn’t get the girl at the end of his movies for being charming or handsome (rookie mistake), but because he’s a ninja of a problem solver. He’s a true hacker. “Handsome gentlemen gets girl by being handsome” doesn’t work as a movie because it’s boring. There’s no excitement!
So instead John Cusack hacks the situation in front of him, studies the girl, studies his environment and his adversary, and hacks and hacks until he gets the girl.
Killer.
The only point I’m trying to make here is that you can’t be an interesting person who does interesting things unless you’re in the business of solving problems, and developing computer software is the most literal application of problem-solving methods you can find in our society.
When you’re in the business of writing software, you’re paid only to solve problems. Fix small bugs, develop massive systems, think of new ways to improve stability and performance, help fix problems of communication and connectivity, the list goes on and on and on.
This is why programming is not, well, “just typing.”
And when I said a literal application of problem-solving, I meant it. It’s not “I solve the problems of communication between manager and employee” or “I solve the problems of bringing new products to market.”
It’s literally “This piece of code would not properly execute when I sat down this morning. Now it runs like a bat out of hell.”
I’m happy to be in the business of solving problems. I’d rather be a John Cusack than a Bill Murray. And all it takes is a computer.

