Karachi   ->   Sweden   ->   Karachi, again   ->   Dubai   ->   Bahrain   ->   Karachi, once more   ->   London and Leeds

Thursday, September 15, 2005

Being a Numbers Guy

"What is the length of a Boeing 747 airplane?" asked Saleem Mirza, Software Development Manager at Techlogix during my interview there. I was surprised at this question because we were having serious technical discussion till that point. I thought for a moment and replied, "100 meters." He enquired further, "Not more than that?" I was confused and stepped back, "I am not much into airplanes and flying."

Fast forward...A few days ago, I was reading Jon Bentley's Programming Pearls, a highly recommended book for programming interviews at various software companies, including Microsoft. The 7th chapter starts as,

It was in the middle of a fascinating conversation on software engineering that Bob Martin asked me, "How much water flows out of the Mississippi River in a day?"

What is the use of knowing such stuff? Nothing. Then why is it important to be able to answer such questions?

It's all about your ability to estimate within reasonable bounds: Suppose, I tell you that one of my friends is 9 feet tall. Instead of being amazed, most probably, you will exhibit disbelief. What if I tell you that Pakistan's software export is $6 billion? Your reaction should be the same because it's way beyond a reasonable value.

Good estimates result in better planning and they are the basis of fruitful discussion. If you could regard the above two statements as "unreasonable" it was probably due to some comparison that you immediately performed in your head. Perhaps, you know that the world's tallest man is less than 9 feet. Similarly, you probably know that India's total software export is $8.8 billion and Pakistan's figure should be a fraction of it. In fact, Pakistan's total export (not just software) is stated to be at $12 billion.

Ebay recently decided to buy Skype for $2.6 billion. This figure is actually too high. I double checked it before telling it to my friends. I was pleasantly surprised when some friends showed disbelief.

Knowing some standard figures is very important because that's what actually becomes a reference for comparison and helps you come up with an estimate. How high is the ceiling of your room? What time is it? How far is Karachi from Islamabad? Even if the exact answer is not known, one should try to give a good estimate.

It's dumb to state a figure in millions when it should be in billions, or vice versa. I'd have exhibited that much dumbness quite a few times. It's better to remain silent if you have so much confusion about what you are going to say. I believe estimation is amongst the things that one can improve with a little practice. Just try to remember when you come to know of a "standard statistic" and always do comparison before coming up with an estimate. The idea is even more important for software developers who are the worst when it comes to estimating time and effort.