Copyright by Gregory W. Hislop 1 INFO 324 Team Process and Product Week 7 Dr. Jennifer Booker College of Information Science and Technology Drexel University Introduction
Motivations for participating in FOSS 2Copyright by Gregory W. Hislop
Agenda FOSS roots and development –Why do we care? –What is FOSS? –Free/Libre/Open FOSS today –Scale –Impact How FOSS works –Structure and tools –Participating in FOSS 3Copyright by Gregory W. Hislop
Why this Lecture? Why do we care in INFO 324, Team Process and Product, about Free and Open Source Software (FOSS)? 4Copyright by Gregory W. Hislop
Why Study FOSS? Substantial IT industry segment –You may work on a FOSS project –You may need to consider implementing FOSS for your organization –You will use FOSS products And do now, at least via the Web Team process and product –Globally distributed software product teams –Globally distributed user communities –Innovative use of tools and techniques (rev mgmt) –Unmatched access to all process and product artifacts 5Copyright by Gregory W. Hislop
FOSS History Where did it come from? What does it amount to today? 6Copyright by Gregory W. Hislop
Computing History Computing started as a hardware business –Software was something needed to sell the hardware; not a product in its own right –Early software was Bundled with hardware and not separately priced –Often with source code included Exchanged free among users of particular machines –Software as a business emerged in the 1960’s and more so in the 1970’s But a lot of software was still exchanged for free and source code provided 7Copyright by Gregory W. Hislop
Computing History Early approach to software meant –Free exchange of ideas, not just software –Excellent opportunities to learn, modify, adapt Over time, software emerged as an industry –Software came to be seen as valuable –Software was separately priced –Source code was not distributed Or access was strictly limited –Lock in software with vendor extensions 8Copyright by Gregory W. Hislop
Free Software Foundation Richard Stallman –MIT Media Lab Thrived in a tradition of shared source code Sharing ended as software became proprietary –Founded Project GNU in 1984 Goal: re-create / extend software sharing Goal: Provide an alternative to vendor lock-in Goal: GNU operating system –Foundation for complete environment of free software 9Copyright by Gregory W. Hislop
Free Software Foundation Free software –“free as in free speech, not as in free beer” –Freedom vs. price; libre vs. gratis See FSF Free Software Definition – Linux built on GNU –Provided the kernel –Much of the rest existed –GNU/Linux as a more correct name 10Copyright by Gregory W. Hislop
Free Software Definition Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software. Four freedoms –To run the program, for any purpose –To study the program works, and change it –To redistribute copies –To distribute copies of your modified versions 11Copyright by Gregory W. Hislop
Legal Mechanisms Problem: how to implement free software within the legal system Options –Proprietary software License strictly limits user rights –Public Domain Rights surrendered Product may be modified or re-packaged and presented as proprietary –Copyleft – the open source solution © 12Copyright by Gregory W. Hislop
Legal Mechanisms Copyright – general legal mechanism for protecting intellectual property writes for written material, including software Copyleft – using copyright plus restrictions to preserve rights and then share them –“making a program (or other work) free, and requiring all modified and extended versions of the program to be free as well.” Implementation: GNU General Public License 13Copyright by Gregory W. Hislop
Open Source Initiative (OSI) FSF was (is?) perceived as being anti- business OSI is an alternate conception –Similar principals to FSF But FSF would not agree with this –But with greater freedom to combine FOSS and proprietary software –More emphasis on leveraging peer development and sharing 14Copyright by Gregory W. Hislop
FOSS Today What has resulted from all this noise about FOSS? 15Copyright by Gregory W. Hislop
FOSS Today versus 16Copyright by Gregory W. Hislop
FOSS Today Many credible products; some market leaders 17Copyright by Gregory W. Hislop
FOSS Today Substantial software industry force –Apache, Linux, Firefox –Open Office, Gimp, Notepad++ –Targeted applications 18Copyright by Gregory W. Hislop
FOSS Today Scale –Hundreds of thousands of projects And growing 300,000 in SourceForge –An estimated 800,000 developers –Most projects don’t succeed Darwinian development Average number of developers per project: 1 Quite similar to commercial products 19Copyright by Gregory W. Hislop
FOSS Participation Why do people participate in FOSS projects? 20Copyright by Gregory W. Hislop
Motivation of Individuals Source: FLOSS Developers Survey 2002, graph from R. Glott, A. Meizsner and S. K. Sowe, "Phase 1: Analysis of the informal learning environment of FLOSS communities," Copyright by Gregory W. Hislop
Motivation of Companies Not all contributors are volunteers! % of contributions by paid employees Business case –FOSS for competitive position IBM support for Linux, hedge versus Microsoft –FOSS service providers Cluster of companies support every large FOSS application –FOSS to distribute development costs Red Hat Fedora to develop Red Hat Enterprise Linux –FOSS to build market share Google and Android 22Copyright by Gregory W. Hislop
Social Motivation - Humanitarian FOSS FOSS projects that exist to meet some social need –Healthcare – OpenMRS –Disaster management – Sahana –Economic development – Mifos ( finance) –Education – Sugar Labs –Accessibility – Gnome Accessibility See: 23Copyright by Gregory W. Hislop
FOSS Process – Things to learn Control –It’s not a free-for-all Community –We’re all in this together Communication –Open isn’t just source code 24Copyright by Gregory W. Hislop
Control Misconception of FOSS as “Free contribution by anyone” –NOT! –This would be chaos Need for control creates a hierarchy –Version control enables and enforces –Committers (approves changes) –Contributors –Others 25Copyright by Gregory W. Hislop
Control and Community “Contributor Mountain” –Client/customer (base of the mountain) Use in isolation –Seeker Connects to community for answers on using –Collaborator Contributes bug reports, feature requests, … –Contributor (peak of the mountain) Moves project forward (code, verify bugs, docs, release) Relied on by the community 26Copyright by Gregory W. Hislop
Community Clients and developers as part of a spectrum –Not “us” vs. “them” (user vs. developer) Assumption that people can move from passive “user” to active participant –Even without technical skills See: “Why we won’t call you a ‘user’.” – 27Copyright by Gregory W. Hislop
Community Openness to new participants –Especially if you approach the project reasonably Advancement via accomplishment –Fairly blatant meritocracy Check and balance –Control of commit authority Real point of control for moving the product –Ability to fork project (not a typo) Limits autocratic power 28Copyright by Gregory W. Hislop
Communication More communication is generally better Multiple channels –Highly distributed participation Less elaborate; more immediate Rollback mechanisms available (e.g. in a wiki) –Synchronous and asynchronous (IRC vs. Wiki) –Low and high bandwidth Explicit provision for lurkers (IRC) –Replaces hallway conversations and discussion in the break room –Allows for serendipity and learning by osmosis 29Copyright by Gregory W. Hislop
FOSS Tools Communication and coordination –Mailing List –IRC –Bug / feature request tracker –Wiki and developer Web Control –Revision Control system –Distribution, packaging –Testing –Continuous integration servers Community –Public Web face 30Copyright by Gregory W. Hislop
FOSS and You Consider climbing “contributor mountain” Excellent learning opportunities –Reading lots of code – good and less so –Interacting with experienced developers –Watching and working in a large project Marketable skill set –FOSS in general –Particular tools and technologies –Experience with global distributed software development 31Copyright by Gregory W. Hislop
Getting Started in FOSS Many projects welcome new participants –And not just coders: testing, documenting, etc Some FOSS participants don’t suffer fools gladly All FOSS participants are busy already Do your homework! Allow time to work your way into a project –Start by listening and learning –Begin with small tasks 32Copyright by Gregory W. Hislop
Learn About the Project Technologies, product size, history, direction Licensing Release history and plans User community size and activity Key developers and organization Corporate involvement Processes 33Copyright by Gregory W. Hislop
Read and Lurk Use the available documentation Get the product, read code, try it Join lists and IRC channel Look for entry points for new participants –Is the project supportive of new participants? 34Copyright by Gregory W. Hislop
Start Doing Something Useful Pick something small –Bug fixing –Testing –Adding to documentation Ask questions as needed –Research first –Be clear and detailed –Be polite 35Copyright by Gregory W. Hislop
Exercise: Browsing a forge 1.Go to: 2.Use the Search feature in the center of the screen to view applications in an area of interest to you (e.g., gaming, sports, or facebook). 3.How many projects are there in this category? 4.How many different kinds of applications are there? 5.How many different programming languages are used to write software in this category? 6.List the top four programming languages used to write programs in this category. 7.How many of the projects in this category are written in ? What do you think that the statuses below mean? –Inactive –Mature –Production/Stable -Beta -Alpha -Pre-Alpha -Planning 36Copyright by Gregory W. Hislop
In Your Future... For next week –FOSS Field trip Blog about it 37Copyright by Gregory W. Hislop