I'm an Ass because I give a Shit

Developers get a bad wrap for being difficult to work with. We are often percieved as assholes. We don't mean it, it's not our fault, it's how we are wired. We spend our working lives looking for flaws. It's the only way to build good software. We weren't always this way. When we started, we were optimistic. We thought everyone was competent. Why would anyone put letters in a field meant to show the price of a product? Why would anyone enter a negative age? We didn't check for these things. We got burned. There is always someone who enters a value, or uses a program in a way it wasn't meant to. So, we spent a lot of time writing code that validated input. We thought it was bullet proof. We prevented the user from entering garbage data. We underestimated people's stupidity. Which reminds of us the "God builds a better idiot" joke. Over time, our applications and programs became more complex. And with more complex programs, came more complex problems. Not only are we having to protect against bad input, but now we have to ensure the application works if someone unplugs the network cable, or the computer crashes, etc. The initial problem is a simple solution, but keeping that solution working in all the uncertainty is the new problem.

What this translates into, is a hyper-critical outlook on EVERYTHING. We choose our words carefully. We point out flaws not just in the systems we work on, but in everything we see. I do this way to much. I'm looking at a small 4" fan on my desk. Now, first, I find it silly it even needs a sticker on it that shows you're not to stick your finger into the blades. However, there are two major flaws with this sticker. First, the grate has openings approx 4 millimeters wide. The only people with fingers that tiny are newborns. Now, there are two more issues with that. First, they wouldn't understand the picture showing the warning. And second, while their fingers would be small enough, they wouldn't reach the blade. So the picture should really be showing you not shoving something else in, not showing a finger fitting through the grate. The second, and more important flaw to this warning is that the sticker is on the fan blade. The only time you can read it is when the blade poses no risk! When the fan is on, the sticker is spinning and impossible to discern as it rotates at several thousand rpm. It doesn't bother me that someone did this. It bothers me that several people saw this after the fact, and didn't see the issues...they left it. So many projects and products suffer from this.

My last job frustrated me to no end. There were literally hundreds of little things that on their own were absolutely insignificant on their own. But they added up. When I decided to leave it was very difficult to explain that there was no one cause, and thus, no way they could actually keep me there. I'd be told to relax, that those things weren't important, but they were. We wasted so much time and money on these little things, that I could see the huge potential we had wasted because of all these little things that were out of my control. I was an Ass because I gave a Shit. Had I went numb, and not cared, those things wouldn't bother me. But I cared about what I did. I wanted to do a good job. I strive for perfection and have high standards for myself.

I don't expect perfection from everyone, but I do expect you to want to improve. I do expect you to care about what you do. It's not coming from a place of negativity, which it's often misinterpreted as. It's coming from optimism. I see the potential, and I want to push people towards it. I want to realize the potential I see. Is that to much to ask? Does that make me an Ass? If so, I'll wear the label with prid. I'm an Ass.

Written on August 31, 2012