Nov 14, 2005

Programming, Metrics and Creativity.

I started writing code when I was in 8th Standard in North Point programming a BBC micro using LOGO. Computer Science was my 6th subject ( elective) for my 10th class board exams. That's where I learnt the history of computers as well as programming in Basic. While learning the history, I used to think why is it called Comp Science when we were also learning history. As part of project work I wrote a game - a totally original work considering that almost all the class was writing quizes based on multiple choice questions ( like KBC ) .

After that, people influenced my parents to get me to take Physics, Chemisty , Bio and Maths for 12th class ( I wanted comp science). So, the next 2 years were spent away from comps.

College came and I was in Electrical Engineering. During the classes on machine theory, I used to think how nice it would be to write a computer program to do all the messy calculations which I usually used to get wrong! After college I again started to work with comptuers by joining WIPRO as a systems engineer.

Now, 7 years later, I am in a managers role.

In India it seems that everything gets laid down the way it would be in a govt company. After 1-2 years you become a senior engg.. you work on stuff you really don't want to as the managers above you don't see what you can do, but just on the headcount in the project. In all fairness, I would say that I did have managers who understood what we programmers wanted and such projects always fared much better than those where Managers were only concerned about potraying the figures of the metrics council. However, at this time, I have become a manager as it was the 'right' thing to do ... in indian society parlance. And now, I am regretting it everyday.

Why ??

I think that the the whole problem here arises because people still insist on seing software development as a factory assembly line situation. They assume that every action can be broken down to the smallest activities which can be exactly measured in time. Why ? I think it is because computer studies is taken as a science - which by its own meaning means exactness. So, we have a large number of companies coming up which provide certification in the form or CMMi and TL9000 or ISO certifications.

However, that is not software development. Software is an artform. And art cannot be quantized. Its thoughts. You think of something and you create that. Its not a factory , as you are not repeating the actions over and over again. In fact, anything which can be repeated is programmed so that the program does it itself ( but here in India I still see a lot of things being done manually when they should be automated). Art always means that different people produce different stuff ( think Van Gogh , Michaelangelo ). Science on the other hand , by the way of deductions says that you will get the same answer ( output ) by whoever works - the basis on which the current system of companies are being built.

This is a basis for failure. Managers in companies think they can easily replace people ( a concept pushed by things like CMM), and it will have no repurcussions. But you cannot replace a Michaelangelo by Mr Smith. And the Michaelangelos of software will only be what they are if they are given the creative freedom.

Everytime a programmer writes code - he is creating something new. It may be similar to what was produced - but it is never same. Think of a car being created ... everytime a new one. That's what programming is all about.

Can the production industy predict how fast they can create a new car starting from scratch ? Nope.

Then why does this insane expectation from Developers ?

So, now we have substandard programs written under conditions of short deadlines leading to failed products. People get disillusioned and leave the companies to go to other companies and find better work conditions.

Look at the current condition in the software world. In india , developers would like to get into companies like Google - as they offer something every geek wants - freedom to be creative. In fact its because of this freedom that Google has grown. They did not give in to the demands of the corporates and have reached this pinnacle, and still seem to be going upwards. They have the policy of getting the best minds - birds of a feather - remember ?

But companies who are going the traditional way are having problems of attrition, discontent. Many companies in India also want to do everything the Microsoft way. They have a love for the MS Project software and try to use it ( unsucessfully ) to get things done on time. I once asked my manager why we use Project - to which he said it was the best tool available. If that was so - then why is it that the next version of Windows is now almost 2 years delayed I asked. He had no answer.

Companies and the current breed of managers seem to worship the tools and metrics. People come secondary. Creativity does not exist. And then people wonder why Indians don't perform in India but work better abroad.

Its a convulated world we work in.

Thankfully there are a few companies who seem to think the correct way. Google is one. Others I would like to work in are blizzard, fogcreek and Good .

No comments:

Post a Comment