Came across an interesting post about how programming changes one's life. It's probably true for most of the professions that need some special skill. They tend to take a life of their own inside you.

Summarizing the post in one line; programming job makes you more "anal"ytical and obsessive.

The kind of programmers that it talks about are the hardcore ones, the industry doesn't have many of those. The post is fairly lengthy and I don't completely agree with it, nevertheless, makes an intersting read.

When small is big

"In grand scheme of things, small things matter because they are indicative of situations in which big things are being done" (said who? me, of course)

I will explain this with two examples that are close to my heart:

Code Quality: Listing down two very common issues that you will come across:
- Absence of documentation in code (Code comments or javadocs/interface definitions)
- Improper variable names

Apparently they have no impact on the code itself, but more often than not it describes the situation in which the code was written. There are multiple possibilities. Code written by a careless programmer with no constraints or written by a good programmer with time constraints and so on. And none of these are favorable.

Broken support System in an organization/project: Its easy to ignore small hiccups (just like punctuations) in support services, since they don't have much to do with the revenue collection directly. If you find yourself struggling to keep up your regular services at an acceptable level, there is a bigger problem to handle than just fixing those day to day issues. Its not about that one thing remaining incomplete, its about fostering an attitude; "its ok to have things incomplete". If overlooked, these things become a norm and end up destroying the culture.

The idea here is, to use small things as god sent warnings about bigger problems. They are the just the symptoms indicative of the actual (bigger) problem.

Breaking it up

I was talking to someone and I said "I will take a break from work for some days" but then I asked myself, will I, actually? Thinking about what it would mean to take a break from work, here is what I came up with. Taking a break is about not having to use the following words:

- issues
- Structure
- efficiency
- Quality
- risk
- Next steps
- performance

and, not touching a key board, of course. Feel free to add your words/activities to the list.

iConic Lessons

I read the biography of apple supremo Steve Jobs (iCon) few weeks back. I picked the book thinking I'll pick up a lesson or two myself. Sounds lame, but don't we always pick biographies for this very reason. So, I will be talking about the lessons from the book in this post.

Lesson # 1: is the outcome of Lesson number 2 which is described next. It states - "I can find reasons to keep me away from effort in most of the scenarios"

Lesson # 2: No matter how smart you are, how hard you work, to be really successful you have to get lucky one or more times to take you a notch up. There are many smart and hard working people bumping their asses all around, not earning anything, not even a compliment, since they never get their lucky break. To summarize you got to be lucky to make it big, so think hard before you start working hard.

So making it big is like a lottery and you have to get lucky to win it. But then to win a lottery you need to buy tickets, and may be lots of them to improve your chances. At last here is my positive lesson. Thanks Steve.