Open Source Software Development Overview OSS OSSD OSSD Future vs PSD Free OSS ? “Software that gives users rights to run, copy, distribute, change and improve it as they see it, without them asking permission from or make payments to any external group or person”. -Mitre FOSS report 2002 Free as in “Freedom” Freedom to study the code Freedom to improve the program Freedom to run the program anytime, for any purpose on any machine. Freedom to redistribute. Free Speech not Free Beer Open Source Software ? Open source software is FreeOSS that uses any license approved by the Open Source Initiative (OSI) from their list of approved open source licenses www.opensource.org/licenses/ Free OSS Licenses GPL 55% Apache 8% BSD 7% Other 30% Free OS Software Apache BIND Emacs FreeBSD Ghostscript Jakarta Jboss LaTex Linux MySQL Open Office Perl Samba Sendmail Snort Squid Don’t get confused FreeWare ShareWare Public Domain software PDS + License = Open Source Software Why OSS ? Customizable Improvable Redistributable. Runs Everywhere, for everyone. Transparency. Free !!! Next…. OSS OSSD OSSD Future vs PSD Surprising !! How can the technical work of dozens, or even hundreds, of developers be coordinated without the usual project management apparatus? How do useful, well-designed products emerge from the individual actions of widely-distributed developers, with minimal central planning and relatively impoverished communication? The OSS Developer WAY ! Discuss the “itch” with a few Code Development starts Create website and “announce”. Community evolves Functionalities added Feedback and Communication flows Basic Open Source Software Development Process Manage Configuration Develop OSS Code Download and Install Communicate Experience End-Use Read, Analyze and Redesign OSS Community Development Process Assert RequirementsDesign Communication is Informal!! Community communications – Threaded discussion forums – Email (list servers) – Newsgroups – IRChat/Instant messages – Community digests (“Kernel Cousins”) People involved Some tools OSSD into commercial world IBM considers it important – Customers ask for it – Developing in open community leads to innovation – Develops open standards Linux today Why is OSSD successful ? Collaboration is decentralized.Integration is controlled Too many resources to fail So many eyeballs looking at the code Self-motivated , self-assigned programmers. Large scale Peer Review User Driven requirements Next…. OSS OSSD OSSD Future vs PSD It differs a lot ! Different Paradigms Cathedral vs Bazaar To name a few – Assignment of work – Change Management – Testing & Bug Fixing Assignment of work You assign (Baby Sitter) – Laggard – Sit inside the boundary I pick (Parent) – More responsibility – More care – Avenues for exploration – Quality product Change Management Is this a feasible methodology ? Can it be imbibed by PSD ? Testing and Bug Fixing PS Industry spends 40% of time on testing and bug fixing. – White box testing – Black box testing In OSSD it is a community process – Bugzilla – IssueTracker Strengths and Limitations of OSSD Strengths – Cheaper – Runs for Everyone , Everywhere Limitations – Product structure and Comprehension – Effective ways of incorporating requirements of non-developer users? – With larger scale, will coordination needs force adoption of “commercial” development techniques? – How to collaborate on “big” features? – How to respond to unanticipated events PSD better ? Scaled projects Time Factor Equal Priority to every module Quality Next…. OSS OSSD OSSD Future vs PSD Software Industry is changing Competition Client is no longer passive Have to deal with drastic changes Developer takes the centre stage Short iterations Dynamic Distributed OSSD + PSD is it possible Can XXSD evolve from OSSD and PSD which enables – Managing of distributed projects – Addressing Dynamism of Software Industry – Architecture where different organizations can work on a common problem for mutual benefits. – Providing quality software Questions for you Is OSSD a substitute for PSD ? Are bugs left unsolved in OSSD? OSS is where some person or a small group contributes a major part and then people come in and start contributions. How long would such a model last ? What happens if everyone becomes an OSS developer ? Is OSSD geographically distributed PSD ?