Sunday, June 11, 2006

When programming is not fun

Last Monday I completed my first year of my employment. My boss asked me how did it all go? How much you enjoyed the work, if you leave the money part? I replied I enjoyed 40% of my work. So what about rest 60%? Well, those were all just work, neither fun nor I enjoyed. That made me thinking why it was not all fun doing coding? My reasoning is you don't code always, you get to do other things also to make your code work, to make it part of a salable product. Here are some of the most boring things I came across while programming..

Most boring and time sucking thing is bug fixing. Wise man says Bug fixing is never fun, it's just work. I totally agree with that. But while fixing bug I try to motivate myself by looking at other side of the coin. If I write a piece of code, it's my responsibility to make it work. This sense of responsibility greatly reduces the sense of boredom, at least for me. But debugging code written by others can never be fun, particularly if the code is not readable, not indented and not documented well.

Another irritating thing is change of specification. Earlier I quoted Computer programmer creates their own world! But real world is bit more real perhaps. A programmer's ultimate aim is to see his program being used by others. But others don't only use it they also give feedback. Accordingly you need to add more features and that leads to my first observation as each new feature introduces a new bug. And also often you need to change in fundamental specification depending on the user reaction. That is really painful. Irony is - no longer you yourself are the creator of your world, but you are creating a world in collaboration with your users. Democracy is not always good I guess!


One of the great philosophy of Java is write once reuse every where. But reuse of a third party tool often leads to a pathetic situation. You write your code using some third party tool assuming some particular behavior. After that you found your code doesn't work. Some digging reveals the third party tool doesn't work as you expected. Some time you can argue that my misunderstanding created problem for me. But what if I really find a bug in that tool? (what is often the case). Why should I suffer for other's bad program?

One more, but may not be the last, cause of irritation comes when you take over some other programmer's code. If it's not written well, It's damn damn painful to figure out what's happening there.

May be there are some more situation when programming can't be fun. But these are the things came into my mind..