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'.
Day 3 (26 Nov 2006) 2:00 pm
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.<ref>Santhosh Thottingal in plus</ref>
The country has the second largest number (second only to USA) of RHCEs/RHCTs and Linux awareness (or lack of it) is not really the case in point. - Sankarshan Mukhopadyay
For the past couple of years, my day job has been consuming 80% of available time, the rest I have to spend with my family and care for their needs. With very little time left for other activities (related to FOSS, hobbies, etc), it is an uphill task to sustain the interests, manage time for FOSS activities. I got registered for the recent FOSS.in/2006 but could not attend it, even though it was spread over a week-end. Am seriously thinking of giving up my day job to work as part-time consultant and involve myself in FOSS activities and spend quality time with my family and kids, even if it means I have to earn less than the current pay. - [Ram]
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.<ref>Sameer Kelekar in ilug-goa</ref>
"If being complacent means that you lose your coding skills then the skills were not honestly obtained." - Sankarshan Mukhopadyay
"I'm not sure, if my almost-insignificant issue comes under the topic of complacency. But Indian Software Engineers work for an astounding 10 hours per day , on an average. So, after 10 hrs of sitting in front of the PC, dealing with pressure deadlines , a competition for that coveted onsite opportunity or even a genuine passion for the work, coming home and again coding free software is definitely not for the weak-hearted. That is to say the least for people who spend most of their weekends and vacations inside the cubivle as well. This is opposed to our colonial cousins who more often than not have a 8-hour day and a 5-day week." - Raseel.
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).<ref>Sameer Kelekar in ilug-goa</ref>
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.<ref>Sameer Kelekar in ilug-goa</ref>
" I would say that the infrastructure and the social environment that encourages the high wire act of risk taking is not really in place. Folks invest in stocks nonchalantly, yet figuring out how to strike out a business venture is still that arcane art of black magic."- Sankarshan Mukhopadyay
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.<ref>Sameer Kelekar in ilug-goa</ref>
"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.<ref>Krishnakanth Mane in glug-bom</ref>
[Ram]: This is no bashing of the people but record of my personal observations. "Should I do my software builds on Unix?, Oh!, no, U*x is painful to use blah, blah..." I have heard statements on similar lines from engineers / developers citing the ease of use in WINDOWS. Personally, I got introduced to U*x in the early part of my career while working for a systems integration company@Madras (with customers in IIT, Madras). Luckily, this proved to be a boon for a person like me, who had previously no exposure to Computers, even though there were compulsory papers on basic computer science as part of my engineering currciulum. And am talking about curriculum that was 10 years back and the little / no infrastructure in Govt college where I studied.
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.<ref>Dhaval Giani in ilug-goa</ref>
What is required is actually a revisit of the syllabus and teaching basic facts which would equip the students to learn on the job. The training courses which the big companies (Infosys, Wipro, TCS etc) put their new recruits through can be taken as either they don't expect the system to output required knowledge or they don't expect the system to be up to the mark when it comes to educating the students.<ref>Sankarshan Mukhopadyay in his blog</ref>
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.<ref>Shakthi Kannan in glug-bom</ref>
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.<ref>Shakthi Kannan in glug-bom</ref>
The lack of contributions is not because we have bad students - it because we have a bad system that needs fixing. And needs to be fixed in an evolutionary way. One of the things that happens when you wish to change a monolithic system that was created to serve a different need (read: create an army of clerks and later on administrative service boxwallahs) one would like to understand the ramifications of the manifestations of change. The short and sweet story might be to look at the following points:
- Revision of the curricula at the high school level
- Encouraging more "relevant" industry interaction (and not "lip service")
- Establishing local mirrors for various FOSS operating systems<ref>Sankarshan Mukhopadyay in his blog</ref>
"Here's what I think needs to be addressed when talking about education at the collegiate level. Do note, I hold the belief that we don't have bad students - the sheer numbers of Indian students doing exciting work in the US, UK, ANZ regions are proof enough. What I think is that we have a system that is flawed since it was created to meet a different demand set. And what I additionally think is that instead of fixing the system from within we are trying to put in patches that might just take the car across the culvert but never over the highway that our country is trying to rush through." - Sankarshan Mukhopadyay (list below)
So, where's the list of that needs to be done ? Here goes:
- Catch them young: Start off a culture of code sharing and more importantly coding in small module bits that can be integrated to projects
- Encourage industry to talk: Encourage and in fact aggressively court the industry to be part of both the curriculum designing process as well as the curriculum content delivery methods
- Teach the methods: Teach the methodology for collaboration of content i.e. be it documentation, source code or patches. Teach students how to do it, wherefrom to learn, whom to turn to and why it is important to have peers review the work
- Teach FOSS: Put in a module for FOSS that talks about programming techniques rather than programming languages. Think about integrating and incorporating pieces from SICP and HTDP along with the GNU Coding Standards in order to ensure the output of quality of code
- Setup Linux Labs: Deceptively simple to setup if one has servers and reasonable bandwidth. Includes setting up of a Version Control System for code commits, a staging server and a development server, a couple of OS mirrors or at least their update mirrors (local) and a few workstations. Set them up on the network, get the network services up and running, put in place a nice printer (one that will take in duplex heavy duty print jobs) and you are reasonably done.
- Encourage content sharing between institutions: Take a look at OCW from MIT and figure out if the same can be easily applied in the current context
- Allotment of marks, could be avoided, and an end term / semester project with viva-voce to grade the student is better. Marks for theory, marks for practicals, marks for assignment / tutorial, isn't better for teaching / learning FOSS.
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.<ref>Dhaval Giani in ilug-goa</ref>
There is a disagreement to this view as well. The one good thing FOSS does is democratize the process of inclusion. Sure enough there are barriers to entry in some aspect but nowhere is the entry barred. <ref>Sankarshan Mukhopadyay in his blog</ref>
[Ram]:One may start with contributions (good content matters) to online and print magazines, like for example, linuxgazette SysAdmin. This would surely provide the necessary confidence to the individual and push them forward to do much more.
Connectivity. Contributing to FOSS in terms of code does require decent connectivity.<ref>Devdas Bhagat in glug-bom</ref>
Only available in metros? Lack of introductory materials in an easily accessible (printed) form.
Some people think this is not an issue including Kenneth Gonsalves and Philip Tellis
"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." - Kenneth Gonsalves in 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." - Philip Tellis in glug-bom
We should encourage people develop a producer culture.
Develop a "Good User" culture. <ref> Kapil in the discussion page of the same article article </ref>
(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.
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 ...
We don't have rockstars
"Why are there are no FOSS *Rockstars* from India - people who are larger than life (taj might qualify). And there are FOSS contributors to be found India, but as shres put it bluntly - "contributors are hard to find" - the whiteboard at foss.in is proof that there are enough." Gopal V
"Do we need evangelists right now ? No, but we need mentors and they would only come out of the folks contributing. Some would make good mentors, some not so good, but we need them all the same. We don’t need rockstars - they tend to complicate things." Sankarshan Mukhopadyay
"We have one - Abhas Abhinav of deeproot" - Kenneth Gonsalves
Sources and notes
Indian FOSS Contributors
Even with all these challenges we have some contributors which we can be proud of.