Upload
society-of-women-engineers
View
57
Download
5
Embed Size (px)
Citation preview
Navigating the Seas of Open Source ProjectsTips and Tricks for Surviving
the World of Open Source
Aditi Rajagopal
Who am I?● IBMer
○ 2 years - Rochester, MN○ IBM Container Service (Bluemix)○ Open Source Technologist○ Inventor - 5 Patents Pending○ Community Developer &
Evangelist
● University of MichiganClass of 2014○ BSE Computer Engineering○ Entrepreneurship○ SWE
Who are you?
Novice Programmer interested in Open Source
Experienced Programmer interested in
contributing to an Open Source
Project
Professional in IP Law interested in
Open Source
Somewhere in the middle
Professional interested in learning the
applications of Open Source in
industry or research
Agenda
● Background○ What is Open Source?○ Where did this phenomenon come from?○ Why has it been successful?
● Current Trends○ Who uses Open Source & How?○ What is an Open Source Community?
● Contributing○ What skills do I need to contribute?○ How do I get started? ○ Contribute today!
What is Open Source?
“Open source software is software that can be freely used, changed, and shared (in modified or unmodified form) by anyone. Open source software is made by many people, and distributed under licenses that comply with the Open Source Definition.”
Imagine it is 2001….
(1) An encyclopedia that was commissioned by a company and curated by a team of professionals that users had to pay for
(2) An encyclopedia curated by hundreds of volunteers that was completely free to all users
Which do you think would be more successful?
● Launched in 1993 for $395● For sale on multiple CDs or a
DVD Then available online with an annual subscription
● Discontinued in 2009
● 100 full-time editors and more than 4,000 contributors
● Print copies from 1768-2010● Switched to online only after
2010
Wikipedia - Fast Facts
Forced Encyclopedia Britannica to stop printing
books after 244 years in the
business
5,256,499 articles in English
Wikipedia
Over 70 billion site views this
year
87.5% of students report having
used Wikipedia for their academic
work
6th most visited
site
Available in 280+
languages
Students have created or
improved over 37,000 articles
The Cathedral vs.
The BazaarThe 2 schools of thought on Software
Development
“[...] the most important software [...] needed to be built like cathedrals, carefully crafted by individual wizards or small bands of mages working in splendid isolation, with no beta to be released before its time.”
The Cathedral vs.
The BazaarThe 2 schools of thought on Software
Development
“[...] release early and often, delegate everything you can, be open to the point of promiscuity [...] No quiet, reverent cathedral-building here—rather [...] a great babbling bazaar of differing agendas and approaches [...] out of which a coherent and stable system could seemingly emerge only by a succession of miracles.”
Why was Wikipedia successful?
According to Larry Sanger, one of the founders of Wikipedia:
1. The content will always be free for users2. Contributors focus on the content, and spreading quality information3. Anyone can contribute4. Making edits is easy5. Radical collaboration, continuous improvement and delivery; don't sign articles.6. Offer unedited, unapproved content for further development7. Neutrality8. A core of good people9. The Google Effect (SEO)
What is an Open Source Community?● A highly motivated community dedicated to building, maintaining
open-source projects with a variety of collaborative tools and initiatives.
● An ecosystem of developers, strategists, evangelists and customers focused on looking out for the best interests of the software.
● The governing body behind all decisions related to the open source project
● Benevolent Dictator for Life (BDFL)
Who Uses Open Source?
● Enterprise Companies● Startups● Government Agencies● Small businesses● Schools● Librarians● Students
Basically everybody!
1. Security - “Given enough eyeballs, all bugs are shallow”2. Reliability - Continuous Development3. Quality - Peer Reviews + Several contributors, can fix bugs as you see them4. Customizability - Pick and choose features and change them to fit business needs 5. Support - Big community dedicated to producing an excellent product6. Flexibility - Can opt in or opt out for upgrades, no set infrastructure requirements7. “Try Before You Buy” - No cost to try it out first
What are some Benefits of Open Source?
What types of Software Communities are there?
Commercial For-Profit Closed
Source Projects
Free (Non-Profit) Open Source Projects
Hybrid
What are challenges Open Source Communities and Contributors Face?
Open Source doesn’t necessarily
mean Free
Open Source use and contribution
requires knowledge
Open Source is rapidly changing
Open Source may not fit your
business model
Open Source doesn’t guarantee intellectual control
Open Source can be a wild west
environment
Open Source is ‘owned’ by someone
Open Source projects can have several competing agendas/parties
What would you like to do?
Write a book (or blog) using
Open Source tools
Contribute to an existing
Open Source Project
Create your own Open
Source Project
How can I get started?
What skills do I need to contribute to an Open Source Project?
1. Curiosity and an eagerness to learn2. Courage to ask questions3. Basic knowledge of version control (git, svn, mercurial)
What do I need to do to contribute to an Open Source Project?
1. Identify a project you would like to contribute to2. Determine the organizational structure of the project
○ Are there maintainers?○ Who is the owner?○ Is there a place to ask questions? (IRC, Google Groups, Email List, Facebook
Group, Twitter)○ How do they track bugs and issues?○ Do they have guidelines on how to contribute?
3. Basic knowledge of version control (git, svn, mercurial)
A Case Study
Description: a free and open cloud computing software platform (IaaS). Consists of various components (compute, storage, networking) that manage datacenter resources.
“Owners”: OpenStack Foundation (nonprofit)
License: Apache License 2.0
Founders: Rackspace & NASA
Development Cycle: 6 month (time-based) release cycle
Projects: 38 subprojects
Developers: 6,344 contributors
Review Model: Git + Gerrit
Language: Python (primarily)
Companies: 300+ Contributing Companies
Top 10 Contributing Companies: Red Hat, Mirantis, HP, Rackspace, IBM, Cisco, Google, OpenStack Foundation, VMWare, Intel)
Would you like to make your first contribution to an open source
project today?