SlideShare a Scribd company logo
Jim Jagielski
@jimjag
The Apache Way
Lessons Learned about code,
community and collaboration
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
About Me
➡ Apache Software Foundation
➡ Co-founder, Director, Member and Developer
➡ Director
➡ Outercurve, MARSEC-XL, OSSI, OSI (ex)…
➡ Developer
➡ Mega FOSS projects
➡ O’Reilly Open Source Award: 2013
➡ European Commission: Luminary Award
➡ Sr. Director: Tech Fellows: Capital One
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Agenda
➡ Introduction
➡ Overview of the ASF
➡ The What and Why of “Open Source”
➡ The Lessons Learned by the ASF - The Apache Way
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
The ASF
➡ ASF == The Apache Software Foundation
➡ Before the ASF there was “The Apache Group”
➡ The ASF was incorporated in 1999
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
The ASF
➡ Non-profit corporation founded in 1999
➡ 501( c )3 public charity
➡ Volunteer organization (The ASF doesn’t pay anyone to
work on Apache projects)
➡ Virtual world-wide organization - Membership of Individuals
➡ Exists to provide the organizational, legal, and financial
support for various OSS projects - let the developers
develop
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Structure of the ASF - legal
➡ Member-based corporation - individuals only
➡ Members nominate and elect new members
➡ Members elect a board - 9 seats
➡ Semi-annual meetings via IRC
➡ Each PMC has a Chair - eyes and ears of the board
(oversight only)
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
ASF “Org Chart”
Development Administrative
Users
Patchers/Buggers
Contributors
Committers
PMC Members
Members
Officers
Board
~450
9
~160
~4500
~2000
Technical Oversight Organizational Oversight
PMCs
(TLPs)
~150
Elects
ReportsAppoints
Creates
&
Updates
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Issues with Dual Stacks
➡ Despite clear differentiation, sometimes there are leaks
➡ eg: PMC chair seen as “lead” developer
➡ Sometimes officers are assumed to have too much power if
they venture into development issues
➡ “hats”
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
The ASF’s Mission
➡ Provide open source software to the public free of charge
➡ Provide a foundation for open, collaborative software
development projects by supplying hardware,
communication, and business infrastructure
➡ Create an independent legal entity to which companies and
individuals can donate resources and be assured that
those resources will be used for the public benet
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
The ASF’s Mission
➡Provide a means for individual volunteers to be sheltered from
legal suits directed at the Foundation’s projects
➡Protect the ‘Apache’ brand, as applied to its software products,
from being abused by other organizations
➡Provide legal and technical infrastructure for open source
software development and to perform appropriate oversight of
such software
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Vision Statement
➡ The Apache Software Foundation provides support for the
Apache community of open-source software projects.
The Apache projects are characterized by a
collaborative, consensus based development process,
an open and pragmatic software license, and a desire to
create high quality software that leads the way in its field.
We consider ourselves not simply a group of projects
sharing a server, but rather a community of developers
and users.
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Vision Statement,
Take 2
➡ Community created code
➡ Our code should be exceptional
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Why Open Source?
➡ Access to the source code
➡ Avoid vendor lock-in (or worse!)
➡ Much better software
➡ Better security record (more eyes)
➡ Much more nimble development - frequent releases
➡ Direct user input
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
The draw of Open Source
➡ Having a real impact in the development and direction of IT
➡ Personal satisfaction: I wrote that!
➡ Sense of membership in a community
➡ Sense of accomplishment - very quick turnaround times
➡ Developers and engineers love to tinker - huge opportunity
to do so
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Open Source FUD
➡ No quality or quality control
➡ Prevents or slows development
➡ Have to “give it away for free”
➡ No real innovation
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
What is Open Source?
➡ Open Source Licensing
➡ OSI Approved
➡ Free Software
➡ As in Free Speech, not Free Beer
➡ Open Source Methodology (secondary)
➡ ala, the Apache Software Foundation
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Open Source Licenses
➡ Give Me Credit
➡ AL, BSD, MIT
➡ Give Me Fixes
➡ (L)GPL, EPL, MPL
➡ Give Me Everything
➡ GPL, AGPL
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
The Apache License (AL)
➡ A liberal open source software license - BSD-like
➡ Business friendly
➡ Requires attribution
➡ Includes Patent Grant
➡ Easily reused by other projects & organizations
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
License Differences
➡ Mainly involve the licensing of derivative works
➡ Only really applies during (re)distribution of work
➡ Where the “freedom” should be mostly focused: the user or
the code itself
➡ Be careful when mixing licenses!
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
One True License
➡ There is no such thing
➡ Licensing is selected to address what you are trying to do
➡ In general, Open Standards do better with AL-like license
➡ If wide adoption is important to you: again AL.
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
The Apache Way
➡ Although the term is deprecated, “The Apache Way” relates
to how the ASF (and its projects) work and operate
➡ Basically, the least common denominators on how PMCs
operate
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Why focus on ASF ?
http://webmink.com/essays/#OBR
http://www.zdnet.com/blog/open-source/
oracle-gives-openoffice-to-apache/9035
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Basic Memes
➡ Meritocracy
➡ Peer-based
➡ Consensus decision making
➡ Collaborative development
➡ Responsible oversight
➡ Individual Participation
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Meritocracy
➡ “Govern by Merit”
➡ Merit is based on what you do
➡ Merit never expires
➡ Those with more merit, get more responsibility
➡ Provides incentive to Do More
➡ It’s NOT a dirty word
➡ aka “do-acracy”
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Peer-based
➡ Developers represent themselves - individuals
➡ Mutual trust and respect
➡ All votes hold the same weight (no BDFL)
➡ Community created code
➡ Healthy communities create healthy code
➡ Poisonous communities don’t
➡ Feel as part of a community
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Why Community -> Code
➡ Avoid for new projects, what boot-strapped the Apache
Group in the 1st place
➡ Since we are all volunteers, people’s time and interests
change
➡ A healthy community is “warm and inviting” and encourages
a continued influx of developers
➡ Poisonous people/communities turn people off, and the
project will die
➡ Diversity ensures survivability
➡ End result - better code, long-term code
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Consensus decision making
➡ Key is the idea of voting
➡ +1 - yes
➡ +0 - no real comment
➡ -1 - veto
➡ Sometimes you’ll also see stuff like -0, -0.5, etc…
➡ Used to gauge consensus, not really “majority rule”
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Voting
➡ The main intent is to gauge developer acceptance
➡ Vetos must be justifiable and have sound technical merit
➡ If valid, Vetos cannot be overruled
➡ Vetos are very rare
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Commit Process
➡ Review Then Commit (RTC)
➡ A patch is submitted to the project for inclusion
➡ If at least 3 +1s and no -1s, code is committed
➡ Good for stable branches
➡ Ensures enough “eyes on the code” on a direct-to-release
path
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Commit Process
➡ Commit Then Review (CTR)
➡ A patch is committed directly to the code
➡ Review Process happens post commit
➡ Good for development branches
➡ Depends on people doing reviews after the fact
➡ Allows very fast development
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Commit Process
➡ Lazy Consensus
➡ variant of RTC
➡ “I plan on committing this in 3 days”
➡ Provides opportunity for oversight, but with known “deadline”
➡ As always, can be vetoed after the fact
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Collaborative Development
➡ Code is developed by the community
➡ Voting ensures at least 3 active developers
➡ Development done online and on-list
➡ If it didn’t happen on-list, it didn’t happen
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Collaborative Development
➡ Mailing lists are the preferred method
➡ Archived
➡ Asynchronous
➡ Available to anyone - public list
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Collaborative Development
➡ Other methods are OK, if not primary
➡ Wikis
➡ IRC
➡ F2F
➡ Always bring back to the list
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Responsible Oversight
➡ Ensure license compliance
➡ Track IP
➡ Quality code
➡ Quality community
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Look Familiar?
➡ These concepts are not new or unique
➡ Best practices regarding how the Scientific and Health
community works
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Publish or Perish
➡ In Open Source, frequent releases indicate healthy activity
➡ What is collaborative s/w development other than peer
review?
➡ Think how restrictive research would be w/o open
communication
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
The Apache Incubator
➡ Entry point for all new projects and codebases
➡ Indoctrinates the Apache Way to the podling
➡ Ensures and tracks IP
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Contributor License Agreement
➡ aka: iCLA (for individual)
➡ Required of all committers
➡ Guarantees:
➡ The person has the authority to commit the code
➡ That the ASF can relicense the code
➡ Does NOT assign copyright
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Development
➡ The ASF never pays for development of projects
➡ Some contributors are corporate sponsored, some aren’t
but as far as the ASF is concerned it makes no
difference!
➡ Diversity == Independence
➡ git-like mega merges are counter-productive
➡ Code is one form of contributing, not the only form.
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
The ASF Is Vital
➡ Foundations (independent) are critical for widespread
adoption of s/w
➡ ASF: totally vendor neutral - Sponsors don’t control/
manage/direct the foundation nor projects
➡ “There are other ways of doing things, what we’ve been
doing has simply be proven to be one of the best.”
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
That’s It
➡ Thank you!
➡ Any questions?
➡ @jimjag
➡ www.slideshare.net/jimjag
➡ youtube.com/user/jimjagski

More Related Content

The Apache Way: Why we do what we do

  • 1. Jim Jagielski @jimjag The Apache Way Lessons Learned about code, community and collaboration
  • 2. This work is licensed under a Creative Commons Attribution 3.0 Unported License. About Me ➡ Apache Software Foundation ➡ Co-founder, Director, Member and Developer ➡ Director ➡ Outercurve, MARSEC-XL, OSSI, OSI (ex)… ➡ Developer ➡ Mega FOSS projects ➡ O’Reilly Open Source Award: 2013 ➡ European Commission: Luminary Award ➡ Sr. Director: Tech Fellows: Capital One
  • 3. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Agenda ➡ Introduction ➡ Overview of the ASF ➡ The What and Why of “Open Source” ➡ The Lessons Learned by the ASF - The Apache Way
  • 4. This work is licensed under a Creative Commons Attribution 3.0 Unported License. The ASF ➡ ASF == The Apache Software Foundation ➡ Before the ASF there was “The Apache Group” ➡ The ASF was incorporated in 1999
  • 5. This work is licensed under a Creative Commons Attribution 3.0 Unported License. The ASF ➡ Non-profit corporation founded in 1999 ➡ 501( c )3 public charity ➡ Volunteer organization (The ASF doesn’t pay anyone to work on Apache projects) ➡ Virtual world-wide organization - Membership of Individuals ➡ Exists to provide the organizational, legal, and financial support for various OSS projects - let the developers develop
  • 6. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Structure of the ASF - legal ➡ Member-based corporation - individuals only ➡ Members nominate and elect new members ➡ Members elect a board - 9 seats ➡ Semi-annual meetings via IRC ➡ Each PMC has a Chair - eyes and ears of the board (oversight only)
  • 7. This work is licensed under a Creative Commons Attribution 3.0 Unported License. ASF “Org Chart” Development Administrative Users Patchers/Buggers Contributors Committers PMC Members Members Officers Board ~450 9 ~160 ~4500 ~2000 Technical Oversight Organizational Oversight PMCs (TLPs) ~150 Elects ReportsAppoints Creates & Updates
  • 8. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Issues with Dual Stacks ➡ Despite clear differentiation, sometimes there are leaks ➡ eg: PMC chair seen as “lead” developer ➡ Sometimes officers are assumed to have too much power if they venture into development issues ➡ “hats”
  • 9. This work is licensed under a Creative Commons Attribution 3.0 Unported License. The ASF’s Mission ➡ Provide open source software to the public free of charge ➡ Provide a foundation for open, collaborative software development projects by supplying hardware, communication, and business infrastructure ➡ Create an independent legal entity to which companies and individuals can donate resources and be assured that those resources will be used for the public benet
  • 10. This work is licensed under a Creative Commons Attribution 3.0 Unported License. The ASF’s Mission ➡Provide a means for individual volunteers to be sheltered from legal suits directed at the Foundation’s projects ➡Protect the ‘Apache’ brand, as applied to its software products, from being abused by other organizations ➡Provide legal and technical infrastructure for open source software development and to perform appropriate oversight of such software
  • 11. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Vision Statement ➡ The Apache Software Foundation provides support for the Apache community of open-source software projects. The Apache projects are characterized by a collaborative, consensus based development process, an open and pragmatic software license, and a desire to create high quality software that leads the way in its field. We consider ourselves not simply a group of projects sharing a server, but rather a community of developers and users.
  • 12. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Vision Statement, Take 2 ➡ Community created code ➡ Our code should be exceptional
  • 13. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Why Open Source? ➡ Access to the source code ➡ Avoid vendor lock-in (or worse!) ➡ Much better software ➡ Better security record (more eyes) ➡ Much more nimble development - frequent releases ➡ Direct user input
  • 14. This work is licensed under a Creative Commons Attribution 3.0 Unported License. The draw of Open Source ➡ Having a real impact in the development and direction of IT ➡ Personal satisfaction: I wrote that! ➡ Sense of membership in a community ➡ Sense of accomplishment - very quick turnaround times ➡ Developers and engineers love to tinker - huge opportunity to do so
  • 15. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Open Source FUD ➡ No quality or quality control ➡ Prevents or slows development ➡ Have to “give it away for free” ➡ No real innovation
  • 16. This work is licensed under a Creative Commons Attribution 3.0 Unported License. What is Open Source? ➡ Open Source Licensing ➡ OSI Approved ➡ Free Software ➡ As in Free Speech, not Free Beer ➡ Open Source Methodology (secondary) ➡ ala, the Apache Software Foundation
  • 17. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Open Source Licenses ➡ Give Me Credit ➡ AL, BSD, MIT ➡ Give Me Fixes ➡ (L)GPL, EPL, MPL ➡ Give Me Everything ➡ GPL, AGPL
  • 18. This work is licensed under a Creative Commons Attribution 3.0 Unported License. The Apache License (AL) ➡ A liberal open source software license - BSD-like ➡ Business friendly ➡ Requires attribution ➡ Includes Patent Grant ➡ Easily reused by other projects & organizations
  • 19. This work is licensed under a Creative Commons Attribution 3.0 Unported License. License Differences ➡ Mainly involve the licensing of derivative works ➡ Only really applies during (re)distribution of work ➡ Where the “freedom” should be mostly focused: the user or the code itself ➡ Be careful when mixing licenses!
  • 20. This work is licensed under a Creative Commons Attribution 3.0 Unported License. One True License ➡ There is no such thing ➡ Licensing is selected to address what you are trying to do ➡ In general, Open Standards do better with AL-like license ➡ If wide adoption is important to you: again AL.
  • 21. This work is licensed under a Creative Commons Attribution 3.0 Unported License. The Apache Way ➡ Although the term is deprecated, “The Apache Way” relates to how the ASF (and its projects) work and operate ➡ Basically, the least common denominators on how PMCs operate
  • 22. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Why focus on ASF ? http://webmink.com/essays/#OBR http://www.zdnet.com/blog/open-source/ oracle-gives-openoffice-to-apache/9035
  • 23. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Basic Memes ➡ Meritocracy ➡ Peer-based ➡ Consensus decision making ➡ Collaborative development ➡ Responsible oversight ➡ Individual Participation
  • 24. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Meritocracy ➡ “Govern by Merit” ➡ Merit is based on what you do ➡ Merit never expires ➡ Those with more merit, get more responsibility ➡ Provides incentive to Do More ➡ It’s NOT a dirty word ➡ aka “do-acracy”
  • 25. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Peer-based ➡ Developers represent themselves - individuals ➡ Mutual trust and respect ➡ All votes hold the same weight (no BDFL) ➡ Community created code ➡ Healthy communities create healthy code ➡ Poisonous communities don’t ➡ Feel as part of a community
  • 26. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Why Community -> Code ➡ Avoid for new projects, what boot-strapped the Apache Group in the 1st place ➡ Since we are all volunteers, people’s time and interests change ➡ A healthy community is “warm and inviting” and encourages a continued influx of developers ➡ Poisonous people/communities turn people off, and the project will die ➡ Diversity ensures survivability ➡ End result - better code, long-term code
  • 27. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Consensus decision making ➡ Key is the idea of voting ➡ +1 - yes ➡ +0 - no real comment ➡ -1 - veto ➡ Sometimes you’ll also see stuff like -0, -0.5, etc… ➡ Used to gauge consensus, not really “majority rule”
  • 28. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Voting ➡ The main intent is to gauge developer acceptance ➡ Vetos must be justifiable and have sound technical merit ➡ If valid, Vetos cannot be overruled ➡ Vetos are very rare
  • 29. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Commit Process ➡ Review Then Commit (RTC) ➡ A patch is submitted to the project for inclusion ➡ If at least 3 +1s and no -1s, code is committed ➡ Good for stable branches ➡ Ensures enough “eyes on the code” on a direct-to-release path
  • 30. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Commit Process ➡ Commit Then Review (CTR) ➡ A patch is committed directly to the code ➡ Review Process happens post commit ➡ Good for development branches ➡ Depends on people doing reviews after the fact ➡ Allows very fast development
  • 31. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Commit Process ➡ Lazy Consensus ➡ variant of RTC ➡ “I plan on committing this in 3 days” ➡ Provides opportunity for oversight, but with known “deadline” ➡ As always, can be vetoed after the fact
  • 32. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Collaborative Development ➡ Code is developed by the community ➡ Voting ensures at least 3 active developers ➡ Development done online and on-list ➡ If it didn’t happen on-list, it didn’t happen
  • 33. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Collaborative Development ➡ Mailing lists are the preferred method ➡ Archived ➡ Asynchronous ➡ Available to anyone - public list
  • 34. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Collaborative Development ➡ Other methods are OK, if not primary ➡ Wikis ➡ IRC ➡ F2F ➡ Always bring back to the list
  • 35. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Responsible Oversight ➡ Ensure license compliance ➡ Track IP ➡ Quality code ➡ Quality community
  • 36. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Look Familiar? ➡ These concepts are not new or unique ➡ Best practices regarding how the Scientific and Health community works
  • 37. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Publish or Perish ➡ In Open Source, frequent releases indicate healthy activity ➡ What is collaborative s/w development other than peer review? ➡ Think how restrictive research would be w/o open communication
  • 38. This work is licensed under a Creative Commons Attribution 3.0 Unported License. The Apache Incubator ➡ Entry point for all new projects and codebases ➡ Indoctrinates the Apache Way to the podling ➡ Ensures and tracks IP
  • 39. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Contributor License Agreement ➡ aka: iCLA (for individual) ➡ Required of all committers ➡ Guarantees: ➡ The person has the authority to commit the code ➡ That the ASF can relicense the code ➡ Does NOT assign copyright
  • 40. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Development ➡ The ASF never pays for development of projects ➡ Some contributors are corporate sponsored, some aren’t but as far as the ASF is concerned it makes no difference! ➡ Diversity == Independence ➡ git-like mega merges are counter-productive ➡ Code is one form of contributing, not the only form.
  • 41. This work is licensed under a Creative Commons Attribution 3.0 Unported License. The ASF Is Vital ➡ Foundations (independent) are critical for widespread adoption of s/w ➡ ASF: totally vendor neutral - Sponsors don’t control/ manage/direct the foundation nor projects ➡ “There are other ways of doing things, what we’ve been doing has simply be proven to be one of the best.”
  • 42. This work is licensed under a Creative Commons Attribution 3.0 Unported License. That’s It ➡ Thank you! ➡ Any questions? ➡ @jimjag ➡ www.slideshare.net/jimjag ➡ youtube.com/user/jimjagski