Slide 1: Making Open Source Work
J Aaron Farr Sep 2008
Slide 2: Me
Slide 3: Aaron
Slide 4: farra @ apache . org
Slide 5: Director Apache Software Foundation
Slide 6: Co-Founder ower ade
T J
! "
Slide 7: www.cubiclemuses.com
Slide 8: Apache Software Foundation
• Independent US non-profit • Volunteer organization • Virtual world-wide organization • Currently hosts more than 50 software projects • More than 1000 contributors and almost 300
members
• Began as the Apache Group in 1996 • Incorporated as the ASF in 1999
Slide 9: Apache Committers
Slide 10: Apache Committers
Slide 11: Apache Committers
Slide 12: Apache Committers
Slide 13: Apache Committers
Slide 14: Apache Members
• Foundation shareholders • Elected by peers • Currently 272
Slide 15: Virtual World-Wide Org
North America South America Europe Africa Australia Asia
Slide 16: Org Chart
FOUNDATION MEMBERS BOARD
OFFICERS
PROJECT MANAGEMENT COMMITTEES (PMC)
COMMITTEES
COMMITTERS
Slide 17: Org Chart
Board Members
9 Members Elected Annually
• • • • •
Committees Legal Security Public Relations Infrastructure Conference Planning
Slide 18: Free & Open Source Software
Licenses Community Code Landscape
Slide 19: Relevance
Slide 21: It’s “impossible to avoid”
- Gartner 2007 Study
- Open source impossible to avoid, Gartner says”, Network World http://www.networkworld.com/news/2007/092007-open-source-unavoidable.html
Slide 22: By 2011, 80% of all commercial software will contain open source code.
- Open source impossible to avoid, Gartner says”, Network World http://www.networkworld.com/news/2007/092007-open-source-unavoidable.html
Slide 25: SourceForge
180,000+
`
Slide 26: Commercial Support
Slide 27: Commercial Support
• IBM • Sun • Intel • Apple • HP • Dell • Novell • Oracle • Motorola • Google • Yahoo •
Slide 28: Commercial Support
• IBM • Sun • Intel • Apple • HP • Dell • Novell • Oracle • Motorola • Google • Yahoo • Microsoft
Slide 29: What is Open Source?
Slide 30: Open Source describes a software license that ensures certain freedoms.
Slide 31: Open Source Definition
• Free Distribution • Source Code • Integrity of Author’s Code • No Discrimination • Distribution of License • Not specific to a product • Not restrict other software • Technology Neutral
Slide 32: Free Software Definition
• run the program, for any purpose • study how the program works, and adapt it to your needs • redistribute copies so you can help your neighbor • improve the program, and release your
improvements to the public, so that the whole community benefits
Slide 33: What’s the difference between free software and open source software?
Slide 34: License and Philosophy
Slide 35: Free
Slide 38: Who’s freedom? What freedom?
Slide 39: Free vs Open Source
FREE SOFTWARE OPEN SOURCE
• •
Freedom of the code Source code will ALWAYS be available and can never be restricted.
• •
Freedom of the developer Code CAN be included in proprietary works under certain conditions.
Slide 40: Licenses
Slide 41: OSI Approved
Academic Free License Adaptive Public License Apache Software License Apache License, 2.0 Apple Public Source License Artistic license Artistic license 2.0 Attribution Assurance Licenses New BSD license Computer Associates Trusted Open Source License 1.1 Common Development and Distribution License Common Public Attribution License 1.0 (CPAL) Common Public License 1.0 CUA Office Public License Version 1.0 EU DataGrid Software License Eclipse Public License Educational Community License,Version 2.0 Eiffel Forum License Eiffel Forum License V2.0 Entessa Public License Fair License Frameworx License GNU General Public License (GPL) GNU General Public License version 3.0 (GPLv3) GNU Library or "Lesser" General Public License (LGPL) GNU Library or "Lesser" General Public License version 3.0 (LGPLv3) Historical Permission Notice and Disclaimer IBM Public License Intel Open Source License Jabber Open Source License Lucent Public License (Plan9) Lucent Public License Version 1.02 Microsoft Public License (Ms-PL) Microsoft Reciprocal License (Ms-RL) MIT license MITRE Collaborative Virtual Workspace License (CVW License) Motosoto License Mozilla Public License 1.0 (MPL) Mozilla Public License 1.1 (MPL) NASA Open Source Agreement 1.3 Naumen Public License Nethack General Public License Nokia Open Source License OCLC Research Public License 2.0 Open Group Test Suite License Open Software License PHP License Python license (CNRI Python License) Python Software Foundation License Qt Public License (QPL) RealNetworks Public Source License V1.0 Reciprocal Public License Ricoh Source Code Public License Sleepycat License Sun Industry Standards Source License (SISSL) Sun Public License Sybase Open Watcom Public License 1.0 University of Illinois/NCSA Open Source License Vovida Software License v. 1.0 W3C License wxWindows Library License X.Net License Zope Public License zlib/libpng license
Slide 42: OSI Approved
Academic Free License Adaptive Public License Apache Software License Apache License, 2.0 Apple Public Source License Artistic license Artistic license 2.0 Attribution Assurance Licenses New BSD license Computer Associates Trusted Open Source License 1.1 Common Development and Distribution License Common Public Attribution License 1.0 (CPAL) Common Public License 1.0 CUA Office Public License Version 1.0 EU DataGrid Software License Eclipse Public License Educational Community License,Version 2.0 Eiffel Forum License Eiffel Forum License V2.0 Entessa Public License Fair License Frameworx License GNU General Public License (GPL) GNU General Public License version 3.0 (GPLv3) GNU Library or "Lesser" General Public License (LGPL) GNU Library or "Lesser" General Public License version 3.0 (LGPLv3) Historical Permission Notice and Disclaimer IBM Public License Intel Open Source License Jabber Open Source License Lucent Public License (Plan9) Lucent Public License Version 1.02
64
Microsoft Public License (Ms-PL) Microsoft Reciprocal License (Ms-RL) MIT license MITRE Collaborative Virtual Workspace License (CVW License) Motosoto License Mozilla Public License 1.0 (MPL) Mozilla Public License 1.1 (MPL) NASA Open Source Agreement 1.3 Naumen Public License Nethack General Public License Nokia Open Source License OCLC Research Public License 2.0 Open Group Test Suite License Open Software License PHP License Python license (CNRI Python License) Python Software Foundation License Qt Public License (QPL) RealNetworks Public Source License V1.0 Reciprocal Public License Ricoh Source Code Public License Sleepycat License Sun Industry Standards Source License (SISSL) Sun Public License Sybase Open Watcom Public License 1.0 University of Illinois/NCSA Open Source License Vovida Software License v. 1.0 W3C License wxWindows Library License X.Net License Zope Public License zlib/libpng license
Slide 43: 3 Kinds
Slide 44: Give Me Credit Give Me Code Give Me Everything
http://rollerweblogger.org/page/roller?entry=gimme_credit_gimme_fixes_gimmem
- Dave Johnson
Slide 45: Give Me Credit
• Software “Commons” • Derivative works can re-license • May have some conditions • No warranty • Credit to original authors • Apache License, BSD, MIT
Slide 46: Give Me Code
• File or derivative based conditions • Original author may have special rights • Differentiate between source and binary • Larger works may be re-licensed • LGPL, Mozilla (MPL), Eclipse (EPL/CPL)
Slide 47: Give Me Everything
• Copyleft • Share and Share Alike • Derivative works remain under original
license
• GPL
Slide 48: License Scope
Virus Index
Slide 49: License Scope
Virus Index
AL
MPL
GPL
Slide 50: Can I Relicense?
AL
MPL
GPL
Slide 51: Can I Relicense?
AL
MPL
GPL
Slide 52: Can I Relicense?
AL
MPL
GPL
Slide 53: Can I Relicense?
AL
MPL
GPL
Slide 54: Can I Relicense?
AL
MPL
GPL
Slide 55: Can I Relicense?
AL
MPL
GPL
Slide 56: Can I Relicense?
AL
MPL
GPL
Slide 57: Can I Relicense?
AL
MPL
GPL
Slide 58: Can I Relicense?
AL
MPL
GPL
Slide 59: Why is that important?
Slide 60: Many developers don’t read licenses.
Slide 61: Open source developers need to be aware of the licenses they use.
Slide 62: The right license depends on the code and the community.
Slide 63: Licenses encourage certain behaviors, discourage others.
Slide 64: community
Slide 65: http://xkcd.com/225/
Slide 66: Cathedral vs Bazaar
Slide 67: Cathedral
Slide 68: Cathedral
Slide 69: Bazaar
Slide 70: Bazaar
Slide 71: Community Culture
Cathedral
Bazaar
Slide 72: Community Culture
Cathedral
Bazaar
Slide 73: Who
Slide 74: Contributors
Users
Developers
Slide 75: Path to Contribution
User Involvement Public Contributor Developer
Slide 76: Meritocracy
Slide 77: Meritocracy
Govern of Merit It’s about what you do. Those who do, decide .
Slide 78: Commit Bits
• When? It depends. • In Apache, when contributor shows
consistent commitment
• The ASF averages 15 new committers a
month, but most of that is through new projects entering.
• Many projects only add 2 committers a year
Slide 79: When to Commit?
Slide 80: Commit Then Review
Slide 81: Review Then Commit
Slide 82: Consensus Decision Making
• Most decisions made on mailing list without
voting, sometimes by way of lazy consensus. Yes +1 Abstain 0
• Voting rules
No (veto) -1
• For releases, 3 +1’s required, no vetos • A -1 veto requires proposal of alternate
solution
Slide 83: Open Communication
• Communication is done online. • Email lists are preferred form of
communication.
• Most communication is publicly archived. • Most lists are open to any subscriber.
Slide 84: Responsible Oversight
• Security is mandatory • Ensure license compliance • Release only high quality software • No abuse of Apache brand or community
Slide 85: Peer to Peer
• We work with people, not companies. • Committers and members should hold one
another with respect.
• All votes hold the same weight. • Community over code.
Slide 86: The Apache Way
• Meritocracy • Peer to Peer • Consensus decision making • Open, online communication • Responsible oversight
Slide 87: A Note on Size
• Most developer communities are small • Even with large developers, most of the
votes for a release
development is usually by a small number of developers
• Apache requires minimum of 3 independent
Slide 88: 5"*)(B)*72C* (* )(2* 9"%2* 6* E"63425* 626* &7* "3%* 25* ":* 9"62* ?37A."
0.0
0.2
0.4
3B7)&)B)&D2* %"J29)/*0(2* 4?53&)26* )"* 2$* EB$* 12* )* 5":)CB%2* %2B5"7G*C2* )"* '&D2* )(2* E&'()* 12* &B4* #%"J29)5* * B* #2%:29)* 2* DB%&B)&"7* K=* &5* 632* B76* R<<*
Q&%5)G*C2*2IBE&72*#B%)&9&#B)&"7*&7*'272%B)&7'*9"62/**Q&'3%2*S* #4")5* )(2* 93E34B)&D2* #%"#"%)&"7* ":* 9"62* 9(B7'25* TD2%)&9B4* BI&5V* D2%535* )(2* )"#* `* 9"7)%&13)"%5* )"* )(2* 9"62* 1B52* T("%&F"7)B4*BI&5V/*
Apache’s Long Tail
0.6
0.8
1.0
Fraction of MRs Fraction of Delta Fraction of Lines Added Fraction of Lines Deleted
1
5
10
15
50
100
388
Number of individuals
Feilding, Herbleb & Mockus, 2000 Q&'3%2*S/**D5-$16(6.)07B-$27:0/79607&*$&3$1&*0/79607&*:$0&$05-$ http://opensource.mit.edu/papers/mockusapache.pdf
*
1&2-$9):-?*
Slide 89: Linux 2.6.20
50% of the changes where made by 2.5% of the developers
Who Wrote 2.6.20? http://lwn.net/Articles/222773/ by corbet
Slide 90: What Does That Mean?
It means a huge number of contributors (741) who made thousands of small contributions
Slide 91: Community > Code
Slide 92: Why Community
Factor of Success
Time
Slide 93: Why Community
Code Factor of Success
Time
Slide 94: Why Community
Code Factor of Success Community
Time
Slide 95: code
Slide 96: Code Characteristics
• Directly useful to developers (itch) • Common standards • Composable • Consistent • Improvable
Slide 97: Composability
... codebases that are more modular or have more option value increase developers’ incentives to join and to remain involved in an open source development effort; and decrease the amount of free-riding in equilibrium.
The Architecture of Participation: Does Code Architecture Mitigate Free Riding in the Open Source Development Model Baldwin and Clark, 2005
http://www.people.hbs.edu/cbaldwin/DR2/BaldwinArchPartAll.pdf
Slide 98: release early release often
Slide 99: tools
Slide 100: Tools shape the code and the community.
Slide 101: The Secret Sauce
Slide 102: Secret Sauce
• Website or Wiki • Source Code Repository • Bug Tracker • Mailing List
Slide 103: Secret Sauce
• Portal • Repository • Issue Tracker • Mailing List
PRIM
Slide 104: Secret Sauce
“Every successful open source project I know uses PRIM. Every closed source project I know, doesn't. ... People wonder how open source projects manage to create high-quality products without managers or accountability. The answer: we're accountable to our infrastructure. PRIM is the open source secret sauce.”
http://jroller.com/TedHusted/entry/prim
- Ted Husted
Slide 105: Source Code Repository
• Controls access to source code • Keeps track of all changes • Allows for branching and merging of changes • Allows multiple people to work on the same
code at the same time
Slide 106: Source Code Repository
Git Bzr Mercurial
SVN CVS
Slide 107: Source Code Repository
Centralization
Git Bzr Mercurial
SVN CVS
Slide 108: The Secret Sauce is Free sourceforge.net code.google.com trac
Slide 109: Making Open Source Work
Licenses Community Code Landscape
Slide 111: The LAMP stack
Slide 112: Linux Apache Mysql PHP / Perl / Python ...
Slide 113: Apache powers half of all websites on the internet.
Slide 114: HTTP Server ActiveMQ Ant APR Beehive Cayenne Cocoon Commons DB Directory Excalibur Felix Forrest Geronimo Gump Hadoop Harmony HiveMind HttpComponents iBATIS Incubator
Apache Projects
Jackrabbit Jakarta James Labs Lenya Logging Lucene Maven Mina MyFaces ODE OFBiz OpenEJB OpenJPA Perl POI Portals Roller Santuario ServiceMix Shale
SpamAssassin STDCXX Struts Synapse Tapestry TCL Tiles Tomcat Turbine Velocity Wicket Web Services Xalan Xerces XML XMLBeans XML Graphics
Slide 115: Desktop
Slide 116: Linux
Slide 118: Gnome (GTK) KDE (QT)
Slide 119: Cross Platform
Slide 120: GTK wxWidgets Java
Slide 122: Mobile
Slide 127: Why could this matter to you?
Slide 128: Open Source provides high quality free tools for education and business.
Slide 129: The dot com and web 2.0 innovations would not have been possible without free and open source software.
Slide 130: FOSS commoditizes core foundation technologies, forcing innovation up the stack and enabling new markets.
Slide 131: New user documentation is always welcome.
Slide 132: Translations are especially welcome.
Slide 133: Local Events
Slide 134: BarCamp Hong Kong
September 9 http://www.barcamp.hk
Slide 135: Thank you
Slide 136: Resources
• farra@apache.org • www.cubiclemuses.com • Slides: • Cathedral and the Bazaar by ESR • In the beginning was the command line by Neal
http://cubiclemuses.com/cm/
Stephensen