Monday, September 21, 2009

Promotion Vs Growth

In my definition, growing in software industry means, solving the customer's problem in less time and cost for the customer in long term as well as short term. Computerization came with the message that, it saves lot of time and money for the customer. So, the measurement for growth also should be saving time and money for the customer.

Some time back, If I can write some code in 10 days, and now if I can write the same or similar in 5 days, that is also growth. But, that is just one minor aspect of the growth that I am expecting. The actual growth that I expect is not a reduction of 10% or 20% or even 50%. If there was a problem that takes 30 days some time back, now, it should be solved in one day. That kind of savings I expect. To get that kind of savings, most of the time, we have to depend on simple design, using right features of right technologies in right way.

In the last one and half years, I have spent some time in solving problems of few people/organizations with my software skills. Those problems can be categorized into two types. For the first type, I have given a very obvious solution which solves their problem. They may say that, it was obvious and anybody can do that. But, they only have to tell, why they waited for me to implement, and they did not implement themselves. For the second category of the problems, I solved more than 90% by using vim. Vim is not a programming language, but it solved most of my problems.

Those who saw my work, gives reasoning that, since I knew VIM, so I could do it, and it is not a big deal. My question is simple, can anybody do the same in less time or not? If there is somebody, then I would be interested in learning from them on how to do it in less time. I don't care anything else.

How can I reduce the cost and time of the customer in long term as well as short term? This is what I want to learn, and in this direction, I want to grow. But, growing in this direction requires very simple thinking, and when the task is accomplished, it looks very obvious and anybody can do it.

In most of the companies, the promotion requires proving the technical excellence by doing complex work. But, the goal of everyone should be reducing the time and cost for the customer, which means most of the time, they have to do by simple design and use the features of existing technologies most of the time. Both are little bit contradictory.

Due to this, it may be difficult for people in technical track to get promotion after a level, unless everything else supports them (like managers and directors understanding them, and company has process to give promotions even if they don't do complex design etc.)

As long as somebody is getting the feedback that, "You have not done any complex work to get promotion", they are in right track for their growth. If they get promotion, then they should think, why they got promotion. What is the other way to implement the same functionality, so that it takes less effort. Most probably, if they do that with simple design and less effort, it would lead to not getting promotion.

No comments:

Post a Comment