Friday, December 12, 2008

How A Programmer Goes Through Work And Life

I am a programmer by trade. I write ERP software for retail chain stores. It's a decent living.

As a programmer, any code I write has to be completely unambiguous. Everything must be as literal as possible. As many likely scenarios that I can think of which may be encountered by a user must be recognised, accounted and prepared for. My code structure is crisp, clean-cut and heavily commented, so that programmers after me can read my notes and have a clearer idea of what my code is trying to do. It may not be the most optimised or fastest code out there, but it is certainly well-planned and can be figured out easily enough by anyone else.

When customers put in a request for a new function, I interview them by trying to find out exactly what they want. I set parameters and software limits, trying to gauge their scope, their uses, possible points that they may have neglected to include. Once I list it all out to them, and they agree that nothing has been left out, I start work. I make sure that my software fulfills all their requirements. If I cannot, then I meet up with them to explain the problem and work out an alternative. Everything must be clear, literal and detailed to a certain degree. I do this because I hate repeating work, which wastes time and frustrates both myself and the customer. Thus it pisses me off greatly whenever the customer changes their expectations halfway, or signals get crossed and I misunderstand what it was they actually wanted.

In a way, I apply the same values and principles in life. I go about every day based on routine, clear instructions and boundaries, and performing tasks with an expected end result or goal in mind. Unfortunately, unlike code, the world and the people in it rarely follow predictable patterns. It is this kind of unpredictability that lands me in all sorts of trouble and makes life difficult.

I must admit that I have an appalling lack of instinct, especially with regards to other people. I miss obvious facial cues and subtle undertones in conversations. I am lousy when it comes to inventing things on the fly, which makes it very obvious to anyone when I attempt to embellish the truth or outright lie (so I never bother to - everyone finds out nearly instantly anyway).

When the unexpected happens, especially if its for the first time, (a car accident, winning a prize, dog goes missing) I find myself caught more flat-footed than others. I get tongue-tied, struck dumb, I flap my arms around ineffectually, I get frustrated and unnecessarily angry. Being caught unawares, or having something negative happen outside my initial expectations is something I hate very much. It offends my sensibilities. It shouldn't happen. I did it exactly the way I was supposed to do it, so why is everything falling apart? Why can't everything be systematic and clear-cut, like a well-defined scientific experiment? Follow the instructions and any established scientific fact can be replicated and proven, consistently.

I wish life was more like this.

No comments: