Thursday, 24 December 2009

Industrialization of IT

I am not very knowledgeable about this and so am open to corrections. Industrialization resulted in goods being manufactured fast and cheap due to economy of scale. Make 10000 units at once and you could save a lot of money by buying the raw material at once and using a decent set of machines. This led to more supply and things being available at a lower cost. There were countries that were big time consumers and then there were countries which were big time producers. The producers soon started to make more money selling these goods and started consuming themselves. Due to increased demand the prices increased and many things happened. And we now find ourselves facing today. Whether today is good or bad depends on who you ask. For me it is a mess simply because we cannot sustain it.

So, when I heard about strategic industrialization of software services industry - my blood boiled.

I have been in meetings where we go with an estimate of x number of guys working for y number of days and x*y being the total cost. The estimate is arrived at assuming that we can use our fresh catch of resources to get the things done fast by leveraging our prior experience and reusable artifacts. Then the client asks - "can you do this thing any cheaper and any more faster?". Thats another occasion when my blood boils.

A computer is a machine that we invented to execute a know set of logical steps repeatedly, at a speed that has been growing over the years and produce a repeatable result. But the logic itself needs to be arrived at with sufficient optimization built in in order to produce a decent result. And this requires a capable mind.

Agreed that past learnings and best practices can be leveraged, combined with a certain level of ability on part of the person creating the logic - we can get a good product that can be fine tuned. But, people forget that
  • The learning required and the amount of time needed to come up with a solution to a problem differs from problem to problem and cannot be put into s strict mathematical equation
  • A certain amount of intuition and common sense are needed along with ability and leverage to be able to produce a workable result
  • What works once will not work everywhere else
  • And finally, the human element involved here is a big factor that affects the final result

Software development, testing or for that matter maintenance cannot be compared to a car assembly. Even a car, which has few hundred parts, after being assembled with precision instruments and coming with extensive manuals on how to maintain it, and with suitable tools only runs as good as the owner and the mechanic are. A bad mechanic can screw a perfectly new car, and a bad owner can screw it much easily if he does not pay attention or run it properly. Software is a much more complicated piece of work and more easily prone to the error of the human element.

IT cannot be industrialized.

The industry has come down to a level where the vendors, based wherever they are in the world are charging the lowest possible to get projects done and still make a margin. All of them are quoting in the same range of price and soon will not be able to go anymore low. They are losing their price differentiation.

They will then start looking at the new differentiator - productivity. This depends on experience, expertise. And this is where the kinks in the armor will start to emerge. Not everyone can learn at the same rate. Not everyone will be able to get the same amount of work done in the same amount of time. Some will just not get it. Some will pull their hair, smoke a few cigarettes and go mad. After all we are human.

So from the crowd will emerge those who survive - the fittest. And when Darwin's theory shows itself in the IT industry, there will be a rush, a competition for these fit and productive men and women who can deliver what is needed in the time that is there. And sadly they cannot be cloned. They cannot be cast into reusable entities that provide the leverage to run IT businesses at a lower cost. And thus the cost will increase. We can no longer mass produce software at the low cost.

Well we could stop going lower or trying to find a new differentiator and stay with the current situation reaching an equilibrium - but thats not what the vendors got into business for - they would rather shut shop and exit.

So it is destined that we walk down the path to our doom.

Someone said somewhere that quitting when things are good is not s sign of being a loser.

0 comments: