Sunday, August 15, 2010

Independence Day

I’m getting excited when ever India (or any other country) celebrates Independence day because i do care about individual freedom, freedom of thoughts and freedom of everything. I started writing this blog with in my mind to compare India 1947 to India 2010. But I'm not going to do it because India grown mammoth levels in many fronts, comparing with olden times gives us frisson and repletion. When my generation(current leading generation) were kids, studying in school we didn’t imagined this much growth, that giving me nervous about how we(current generation) going to handle this unexpected or unprepared growth of India.


Indian constitution was designed to bring every one in to main stream, in other words equality and education to all and social justice, very basic socialism point of view. As far i know, the spirit of Indian constitution is not supported or instrumented for India’s growth which we are enjoying last decade. Now we need to connect the dots, that is one side an ignorant generation and other side poorly written constitution(in terms of growth). Due to this disconnect, India is facing a big time probity issue now.It is not a big issue, first of all, we need to point out, what are the impacts and reasoning of this disconnect.


Rich is getting richer and poor is getting poorer
This is global phenomena but severity of India's domain is unacceptable level. The fundamental issue, as always we don't know how to transform success of one place to other. For example, Mumbai was considered business vibrant  city even before current growth but we don't know how-to implement those success to other parts of India in a big bang scalable model. Now this generation also just following the old style model of "static localized growth". City is the only one have to grow all others are considered second class places, the mentality will backfire us sooner than later.


Lack of social thinking
As i said, we were raised to get to find and fill up food for me and my family. I don't think it was not a wrong thought process because the state of India was like that. Feeding a large family with 3 times (some) quality food and other emergency expenses are very tough. But now situation changed, we should think about others and help others. Actually when ever i say help others, people thinks that we have to send money to poor people but my point is, giving money is not a big help. What we need is educate them about their rights, right to ask information, right to ask education, right to ask government/other NGO,. All the basic rights and how-to are really important than giving them some money which eventually spend for some wrong reasons also. This generation should change their thought process of living in the old post British India days to the current new India.


Less Emotional More Logical
Since we saw the two faces of India and as i mentioned in first para, we tend to replete with our success. We try to become emotional and stop thinking about future growth. But just come out of your city or towns and visit some places just 100KM outside of your city, you can realize that how small we are and we are just starting this journey of  growth and still a long way to go. Never rest and never think that we are done, we are still $1 trillion economy.

Happy Independence Day.

Sunday, August 01, 2010

De|Bug|er

We are living some where in starting to mid-point of technology revolution, still a long way to reach ‘apogee’. But the effect of technology is enormous, from fast food ordering system to NASA Space Shuttle orbiter maneuvering controlled by technology.Every-where and  every-one depends on technology in one way or other. Just look back a decade ago, the nightmare we faced during Y2K era, we were thought world going to be standstill. But thanks to ‘Sang-Froid Debuggers’ emerges from various part of world to make our life easy by providing timely solutions. 

Whether we like it or not, since technology is immature, no bible like guide to develop code, no process (if we have one, people tend to hide behind it) the systems we develop comes with some risks. One of the main risk involves are A)Manual intervention to avoid some possible bugs B)code issues hence system acting weird when some conditions met.

The risk (A) can be mitigated easily but what about (B), to make things worse, most of time the system’s knowledge base may not even exist when some bugs appears.In my experience, there were some bugs took 12-18 months to fix it,of course from very legacy code. But i think we have to do somethings creatively to decrease process time.

Here are some steps to become Sang-Froid Debuggers(assume new developer on a old legacy system without any knowledge base around)

1. Code Psychology : 
One of the most and foremost way of finding and fixing is, understanding developer’s psychology in terms of how s/he writes code,his/her thinking pattern and his/her deviation from “standard” way. The best of doing it is by reading code from left to right, for software developers reading code is most productive than documents.

2. Team Enthusiasm : 
Next level to become ‘Sang-Froid Debuggers’ is understanding teams enthusiasm,of course we may not know until we found some design documents or some real time stories from current co-workers. First of all what i mean by team enthusiasm, (please read 2 nd para first 2-3 lines) due to that each team try to develop system different ways. Some of them very enthusiast towards open source. If that's the case, try to understand, how tightly the system integrated with open source components and start documenting each one’s known issues. Based on my experience, most of the “late hard to fix bugs” were from open source components, mainly we don’t know how to use it.

3. Raising Flags
We all want to fix bugs which are assigned to us by only us but sometimes we need help from others. It is better to ask help from others whenever we needed. I knew some horror stories like one guy took 3 months to troubleshoot an issue, he couldn’t but the other guy did it with in 3 hours. It was not because the first guy was bad, second guy experienced the same or similar issue elsewhere.

4. Early detection and prevention
If we did better work on points 1 and 2, smart developers can sense the system vulnerabilities, start documenting it and start enlighten others.Start some brainstorming for prevention of unwanted bugs from legacy system.