Challenges
Patching FOSS in India
Solving the fundamental structural problem of the free software movement in India
A multilog of developers, evangelists and students
The discussion was started in the panel discussion on '10 years of linux in India' on day 2 of FOSS.IN 2006 and continued on day 3 with a BoF on 'Patching FOSS in India'.
BoF details
Day 3 (26 Nov 2006) 2:00 pm
Moderators: Thaths/Fred
Lack of awareness
Contributions will come only if people are aware of what is happening in this field. Now a days it is very easy to get a job in IT field for engineering graduates. After getting job, I am seeing a big problem among our IT professionals. They are only interested(?) in doing their projects in their office. And not at all bothered about what is happening in the tech world. They are only interested in salary. They are not knowing that the technology they are working is subjected to change and it is must for an IT professional to get updated. These are some people who are working for money only(I would call them dumb users ). I know many colleagues(software engineers) in my office, who never saw an operating system other than windows.
Then there are some other people who are interested in FOSS and interested in studying new things and experimenting.Our major IT human resource is concentrated in big IT companies.We know that most of the Indian IT professionals are working late night. 90% of them are working more than 10 hours a day. Only a small percentage of people are finding time to learn and contribute(I know that finding time is a matter interest). I think this is a major reason for less contribution from IT professionals. I think awareness is the first thing, then comes learning with interest. Then only contribution will come.
Complacency
Big IT boom in India gives people jobs easily; and when you do a cosy job, you lose half of the motivation. It is a case of innovation being killed due to complacency.
Social Setup
As a society, there is a lot of pressure on people to be successful immediately; and success here means making money. This means that if one were to tread the road not taken, one has to withstand the pressure from friends, family, relatives blah blah blah. What adds to this is the lack of knowledge about FOSS and such things among the common folks (read one's parents, relatives etc).
The whole atmosphere around is counterproductive to innovation and risk taking. Those who fail are not looked upon well by the Indian society. What matters to the society in India is success; the means does not matter.
We also are not trained to think in a creative manner. Succumbing to authority comes more natural to Indians rather than being free and think freely. Of course there are exceptions, but in general as a rule.
"perfect job = government job and perfect computer means computer with windows". just as the indians believe that government job is the most perfect job and some thing well respected, they also believe that windows is the only operating system. ask 10 people about linux 4 will ask "what's that?" and 4 may perhaps say "well that is a very difficult thing and just used by students as either time pass or just to learn unix commands because it is in there college book so what to do". this is the situation. and yes success here means money so "why should I use linux? why should I give my source code under gpl?" the only technology that could break the dirty shackels of microsoft is java. again because there is huge money and big jobs in java as far as indian IT Industry is concerned. ask the programmers around you "do you know python and do you use zope?" again 7 out of 10 will say "python is a snake and in marathi zope means going to bed ". so the problem lies in excepting the long root of truth and reality. people in india think that good things can only happen in dreams and revolution is some thing for the leaders for doing politics. why should I leave the so called "WELL TESTED AND PERFECT WINDOWS " and take up what you call as "VIRUS FREE STABLE AND PERFECT SYSTEM THAT TO WITHOUT PAYING ANY THING?" people here believe that innovation is nothing but a hobby and waste of money and time.
Education System
Also, we are to blame to quite some extent. Our education system does not encourage free thinking, or even thinking for that matter. It is learn by rote. IMHO, all CS/IT courses in india are more of History courses.
Students in most institutions (exceptions are IITs, IISc, NITs, et. al.) live in their own shell, without any exposure to the real world or the industry. So, they don't have the technical know-how or skills for any development, let alone FOSS development.
There is a _huge_ gap between academia and the industry (exceptions are IITs, IISc, NITs, et. al.), so the academia folks have absolutely no idea what the industry is doing. Industry is more focused on servicing international clients, for obvious reasons.
Financial Constraints
Secondly getting exposure in the various international forums is not cheap. What I mean by this is, there is only some extent to which you can learn from books. To learn more, you need to first do something, understand what happens, why it happens, interact with experts. This happens by writing research papers, participating in various conferences. Most of them are very expensive by Indian standards.
Bandwidth
DVB (glug-bom):Connectivity. Contributing to FOSS in terms of code does require decent connectivity.
Only available in metros? Lack of introductory materials in an easily accessible (printed) form.
KG (glug-bom): no no no. I know projects that have used email to develop. Biju Chacko made major contributions to XFCE on slow diallup. Bad connectivity makes things more difficult and time consuming, but if you want to do it, you will do it.
Philip Tellis (glug-bom): nonsense. it never stopped me and all I had was a VSNL student account. If you have any connectivity at all, that's sufficient.
Consumer Mentality
We should encourage people develop a producer culture.
Develop a "Good User" culture.
(a) A good user reacts to all glitches by filing a "Good Bug Report" --- (need a link here on how to write good bug reports).
(b) A good user reacts to inactivity on her bug by the maintainer by providing a fix :-)
(c) A good user does not hesitate. If you fear that you will make a mistake and do not speak that will be a mistake.
Perfectionist attitude
People wait for perfection before release.
No patches and many forks
Hesitation to submit patches upstream.
Lack of awareness about bounties
Google Summer of Code, Redhat scholarship, Novell internship, NRCFOSS projects ...
Even with all these challenges we have some contributors which we can be proud of.