Wednesday, April 6, 2011

A Diatribe on Being Humble While Misunderstanding Incompetently

I do not subscribe to the I'm in charge so I feel powerful mentality. In fact, I feel the opposite about the administrator and programmer role.

I take the role names more literally in their humblest interpretation. An administrator is more like just a lowly administrator mired in the details. A programmer is more like just a computer in the calculator sense of the word. Both are tools that business minded entrepreneurs can make good use of.

That is not to say that I think little of what I do when I am in those roles. But more of a right sizing of my ego and attitudes toward my work and how I interact with others. By thinking humbly I can allow myself the freedom to expect more of others and to allow myself to look for the solutions to business problems outside of the programming solution straight jacket.

There are certain conclusions I have come to that have helped me to solve what are invariably business problems.

Firstly, there are no little people AKA users. There are only clients and customers who are invariably right ;)

Secondly, the people who actually use your programs on a daily basis are the one's who are going to decide whether your program is truly useful or not. Bouncing your ideas off of them and getting their feedback is only going to help you to deliver what is needed rather than what was in the specification.

Thirdly, it is easier for you to replicate a feature in a location convenient for the client(not user, user is the derogatory of client or customer) than to have that client click through to the location you have hidden the feature. Click of O(1) as opposed to Click of O(n), as n goes to infinity. n being the number of times the client has to click to find the feature that they want available one click away.

Fourthly, asking people outside of the development team to be responsible for their work is not a cardinal sin. If a graphic designer delivers images that are not in the right palette or format or pixel size, it is not your job to write a software solution to fix. You simply need to point out the problem and do a little hand holding to explain the problem and suggest a non-programmatic solution. This point bears repeating. If the client is unable to to access your website because they are using a crappy browser from the 90's don't change your code to handle that browser. Simply point out the problem and suggest a solution. I'm sure this could be loosely interpreted as telling the client how high to shove it. But I am only reiterating my point which is asking non-techie's to do their job correctly and responsibly is ok, acceptable, and an all around good thing.The only way people will act competent is if they are asked nicely to be competent and shown how to be competent.

Fifthly and lastly, there are tons of incompetent people out there. You, including me, are probably one of them. It's not the end of the world. We all sometimes think if someone doesn't know what we know then they are incompetent. Trust me this is flawed logic. As a simple proof to yourself, tell me what number I am thinking of right now. Look now I know something you don't know. Should I conclude you are incompetent with numbers and math? It's only one number should I extrapolate that to mean maybe you will have trouble with more than one number? Like addition, subtraction, multiplication, and division. Surely you suck at guessing games and logical thinking. Otherwise you would have guessed it already. This may seem like a trumped up example. Which it is. But it is also true that humans are bad predictors of almost anything. Especially when they are incompetent enough to think they know more than you or conversely put, when you think you know more than someone else. It's a paradox that you see around you every day. Why does management seem so incompetent? Is it because they are incompetent or are you so incompetent that you can't understand what you don't understand? Watch out for this one. Everybody does it including you. That is why it is known as a paradox. It is also why I use a number guessing game as an example. No one thinks a "What number am I thinking of?" guessing game to be fair except children.