Ah India, how I love thee one day and absolutely abhor thee the other. But I am not here to talk about politics or the recently concluded UP elections but I want to talk about technology and India. Today, I saw a few tweets about how well Indians are doing in Silicon Valley and also learned that one of the founders of Foursquare (an idea and a company I deeply admire) is Indian (or of Indian origin).
Back online we also see many posts of how mediocre Indian technologists are. It always makes me wonder of how a college graduate when placed in India stuggles with basic programming and in the US he goes on and makes a fortune for himself.
Like with most things, I thought and thought for days about this dichotomy and then I tried to find the answer within myself. One of the words I could conjure up was "Compromise".
Now I have lived for a while in UK, Japan and US and what struck me most was the difference in "Quality" of everyday products. When I landed in Manchester for the first time (and that was my first flight and my first trip outside India), I was standing at an intersection as this buz whizzed past me and I was just awestruck at the poster on the bus. What hit me was that it was such high quality paper that could whither the incessant rain of Manchester and still shine through. On the other hand using the same analogy, the buses back in India are not so pretty. Compromises are made on every front either on account of cost cutting or through plain old corruption.
We as kids in India are taught to "adjust" and "compromise". For example, take a train ride, even if you have a booked seat (more like a bench) you will be asked to adjust or accomodate others. There is a constant struggle of resources be it education or parking slots and one has to constantly adjust. Offices cram in far more employees than planned and you can be termed as inflexible if you complain. The existence of a road even if it is a pothole-ridden one is celebrated. Most of our lives we compromise or are asked to compromise one way or the other. Recently, someone shared a video of the state of IIT hostels, it was not pretty viewing. From my own experience, my student days were far from decent quality living.
I think all these factors slowly creep in one's system and it becomes second nature to cut corners and make compromises along the way. Of course, these are broad sweeping generalizations but these would be hard to contradict if one looks out of the window.
It is with the same mindset that one completes engineering and secures a job. Futhermore hierarchical and manager driven organizations make it hard for a technologist to excel in his craft. Becoming a manager after 4 years of programming is seen as natural progression and a road to greater things.
If you step in a traffic jam as soon as you step out of home and travel ten kms in one hour it becomes very difficult to come to office and deliver high quality software. I think efficiency breeds efficiency and art inspires art, if a developer sees a well planned city and a well planned route probably he is inspired to write better software. I would find it hard to imagine a guy like DHH who is so obsessed with quality, living in Gurgaon and writing Rails.
To end my rant, what do we need to do to induce kickass product development in India or to make the next Facebook. I think we need to provide students and programmers a free open space where they no longer have to deal with any compromises. Allow people to work from home, let them live in Goa or Pondicherry or Ranikhet and write code. Improve the quality of life of the developer (be it through reducing commute or paying a better salary) and most probably the quality of code will improve.