Opening Minds Sunday, September 28, 2008

This article was first published in Anweshi, newsletter for Amrita School of Engg.

Open source is becoming increasingly accepted worldwide and gaining momentum. This essay evaluates key benefits of collaborative model over traditional development. The following discussion is meant to be a “mind-opener” and identify specific obstacles that need to be addressed in the using Free and Open Source Software (FOSS) development.


BROOKS' LAW VS. LINUS' LAW


Not introducing ourselves to open source is often the result of limits and boundaries in our mind. In order to understand,explore and overcome these boundaries, we discuss two competing paradigms.


The traditional method of collaborative development is often called the “Brooks' Law” (after Frederick P. Brooks, author of The Mythical Man-Month ) which can be summarized as “Too many cooks spoil the broth”. This paradigm assumes a small and select circle of experts innovate,design and create software where most of the developers are expected to give little or no feedback to improve the overall design. Brooks argues, when there are N contributors involved,the work performed also scales to N, complexity and vulnerability to mistakes also rises to N square,considering number of communication paths between contributors. Conversely, Brooks' Law predicts “a project with thousands of contributors ought to be a flaky, unstable mess”, as Eric Raymond states.


On the other hand, open source paradigm assumes that quality is a result of massive collaboration. It did overcome the limits postulated by Brooks' law. The explanation lies in the “Linus' law”,in honor of Linus Torvalds, who took open source to mainstream by developing the Linux kernel, the success of the open source model in developing the Linux kernel shows the result of collaborative development. Linus' law in its informal version stated as “Given enough eye balls, all bugs are shallow”. The key to success in collaborative-development model is the identification of solutions for quality and distribution of tasks over large population rather than the usual hierarchical approach.


Contrasting characters of traditional and open source approaches


Traditional Approach

Open Source Approach

Brooks' Law

Linus' Law

Hierarchy

Network

Experts

Peers

Teams

Communities

Cathedral

Bazzar

Perfection

Improvement

Construction

Evolution




CHANGE TOWARDS OPENNESS


The conceptual foundation of collaboration can be clearly illustrated using the Indian fable of blind men and elephant. In this, a powerful leader summons a group of wise men- all of whom happened to be blind- to his castle, to confront them with an elephant, an animal which none of the wise men has encountered before. They were asked to touch the elephant and describe what this creature resembles. Each of these men are able to perceive only some part of the animal and described that as the characteristic of the whole animal. This led to a fierce argument between these men and everyone was convinced that he is right and everyone else is wrong- because none of them was able to perceive the whole animal and view his part as a portion of the whole animal. It is obvious, the need for collaboration and sharing information.


MOTIVATIONS TO CONTRIBUTE


User needs software both work related and non-work related. Most of the time the innovation is community driven and not a result of research by a corporation. The top single reason to contribute to projects is based on enjoyment- related intrinsic motivation: “Project code is intellectually stimulating to write” and improving programming skills stands the second reason. These are motivations apart from the leading giants like Sun Microsystems,Red Hat,Novell and many others,Google contributes a lot to the open source by its Summer of Code contest which acts as a medium for students being mentored by the open source companies, these corporates also have employees paid full time on open source projects while sharing their work with the peers and continuously improve the software. This model works on Linus' law in first place, also there is a dedicated team working on the same software which brings clearly defined work flow and collaboration to the fullest extent.


Lessons from community driven innovation


1. Keep it simple – The procedures of within the community is to be kept simple

2. Find passionate people. To drive change, you need passion. You need people who understand and are excited about the change.

3. Involve me, and I will understand. Cultural change cannot be forced; it can only be facilitated. Nothing is as powerful a teacher as first- hand experience.

4. Start small, grow fast. Start small with a limited scope and the mission to solve a concrete

problem. Demonstrate value; then grow.


Open Source is the Heart of the Internet


There would be no Internet without open source. You might not notice that every time you use Internet you use open source directly or indirectly. It is being used in the critical parts of the Internet, which includes mail routing,domain name system and the key component of TCP/IP stack.


TCP/IP, the core protocol code of the Internet, is distributed under a Berkeley open source license and included in Windows and IBM mainframes as well as UNIX and Linux.


Sendmail was written as open source in 1975 and is still the most used mail server program.

BIND, the program that maps server names to IP addresses, has been an essential component of the Internet since 1981.


Apache is the most used Web server, with approximately 60 percent share (Netcraft).


Linux is the operating system used by most Apache servers.


Mozilla Firefox, the browser that was formerly Netscape, is the #2 browser in

use (after Internet Explorer). Google's Chrome is just released and is open source, competes with other browsers in the market.


Dot Coms


Name any giant on the web, these companies have been heavy consumers of open source starting with apache and lot of others,

Amazon.com is an extensive Linux user, having converted from UNIX. The main online Amazon system is developed in C++. Amazon also uses Perl heavily for data integration.


Yahoo! is a heavy FreeBSD user. It also uses PHP and Perl languages, moving more to PHP, and the MySQL database. The high-volume Yahoo! Mail is all open source.


Google uses thousands of small commodity servers running Linux. Their home-grown systems management is written using the C++ and Perl development tools. They also use Python extensively. Google also started making use of Open Solaris.


Akamai is the company which drives most of the Internet. The thousands of servers that Akamai has placed around the world to cache and accelerate content all run on Linux.


Why not consider alternate operating systems?

...or why consider Linux a developer platform? Its for desktop users also!


The latest Desktop and Enterprise versions of Linux distributions have a GUI interface for almost everything and often looks very much like Windows Control Panel. Linux is more up-to-date than you expect. The user experience is “cool” with Linux's Compiz desktop effects are as competitive as on Windows Vista. It is possible to turn desktop workspaces into a rotating cube(in fact you can have a wallpapers on bottom and top of cube also) ,painting fire across your screen,making rain drops fall on your desktop and flip application windows like the cover-flow in iTunes and iPhone. The quality of applications is very good and the performance is great, for example Ubuntu 8 having all desktop effects enabled,in idle state will consume just around 330MB or less of RAM which makes linux efficient also, bunch of viruses which affect the windows platform could cause no harm on Linux. Not everything available on Windows is available in Linux, but the gap is closing in with an improving software called Wine(winehq.org) that allows users to install and run windows executables and installation files.





Wouldn't it be great if you'd just pop open magic software finding-utility and select the software you need and it install itself instantly. Linux has long offered software repository, an easy way to find and install new programs. Most distros(A distro

is a version of Linux,each having different set of applications, mostly from different vendors) ship with their package managers, a popular one is Ubuntu's synaptic package manager. Most of all, there are lot of Linux distros like Fedora,RedHat, Ubuntu, OpenSUSE and lot of others, you have the freedom to choose from any one of them. Open Solaris is also an option, its a UNIX variant from Sun Microsystems. In fact there are nearly 300 Linux distributions released officially all of which are special in their own way.


Future or Fad?


Open source is likely to face threats from product advertising by giants, we haven't seen them advertising yet , they could build myths by advertising. This could be done in many ways, implying that


  1. Open source is insecure

  2. Open source is like theft, like illegal download

  3. Open source destroys jobs


At this point we have a problem, because there is almost no advertising budget. In fact open source has not grown through branding. How would open source pay for such a fight?


We cannot conclude that open and closed systems are equal. The OSS phenomenon has enormous potential that will act as a catalyst for new organizational model and networked economy and the key facilitator bridging the “Digital Divide” .

0 comments: