2. The Apache Way
A collaborative slidedeck with contributions
from ${ASF_Members}
(in particular Ross Gardler, Justin
Erenkrantz, Isabel Drost, Nick Burch, Jim
Jagielski, and Lars Eilebrecht)
3. What will we try to cover?
● How the foundation works
● How we develop code
● What we have found that works
● What hasn't worked so well...
● Business and Apache
5. Informal Collaboration (1995)
● Apache Group
– 8 people
– sharing code on abandoned NCSA httpd
● Apache web server releases
– 0.6.2 (first public release) April 1995
– 1.0 released 1st
December 1995
6. A Foundation (1999)
● Commercial opportunities
– Formal legal structure required
● Membership based charity
– IRS 501(c)3
– Donations by individuals tax-deductible (in US)
● Virtual world-wide organization
● First ApacheCon March 2000
– Apache 2.0 Alpha 1
● First EU ApacheCon October 2000
7. Today
● Hundreds of projects
– Small libraries
– Critical infrastructure
– End user tools
● Well defined project governance
● Formal mentoring
● Accelerating growth
8. The ASF, By Numbers
● Projects = 113
● Incubating Projects = 34
● Board/President Committees = 10
● Board Members = 9
● Foundation Members = ~500
● PMC Committee Members = ~1500
● Committers = ~3400
● ICLAs = ~5100
12. Org structure
● 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)
14. Another way
● A number of projects
● Each responsible for their own code,
community and direction
● Board provides oversight, but has no say
on what code gets written, what direction
projects take, what new projects we should
start etc
● Various support (eg infra, branding, press)
to help projects focus just on their code +
community
15.
16.
17. Labs
● Members can start new “scratch” projects
● Some graduate to TLPs (eg. Steve)
● Most languish in obscurity, but give a place
to work out interesting problems
18.
19. Incubator
● Process for a project to enter the ASF
● Legal: Can we release the code under our
license?
● Community: Is the project sustainable?
● Educational: Do they know how we do
things?
22. Attic
● Graveyard?
● Landfill?
● Hopefully more like Grandma's attic where
you can find cool stuff and repurpose it
years later.
23. Not all “Plain Sailing”
● Jakarta “Foundation”
– Jakarta was an “Umbrella” for all Java projects
– Successful brand in its own right
● Tomcat, Struts, Ant and many more
innovations
● Started to copy foundation structure
– “Mini”-board … but problems arose …
– Avalon: Who was responsible?
24. Importance of Oversight
● Jakarta demonstrated that Umbrellas are
bad
– Flattened organisational structure
– Jakarta projects became top level projects
● All projects submit board reports quarterly
– Community focused
– Not technical focus
● Board can, and does (occasionally)
intervene
– On community issues only
26. Bottom-up management
● Board does not say “we want X”
● Developers say “X is cool”
– We enable developers to do cool stuff
– Apache developers are at the forefront of
innovation
● Not interested in a single runner
– We want relay teams
– Community is critical to the Apache Way
● Apache is about support communities
27. Example: Git
● Various projects wanted to experiment with
Git, whereas we had traditionally used svn
● After much debate, Infrastructure provided
Git for projects to try out
● Board expressed concern about how it
might affect community dynamics, but in
the end it was up to the projects
themselves
● Projects now have the choice of SCM
28. So, why have a board?
● The board exists because the state of
Delaware requires a 501 to have oversight
● The Foundation exists to provide a
structure to
– Accept donations tax-free
– Do fundraising activities
– Sign contracts
– Hire employees
– Provide legal protection to projects
29.
30. (nearly) All volunteer work
● If you want something done
– Volunteer on the appropriate committee
● A few paid contractors - all the stuff we're
bad at or don't want to do
– Press/Marketing
– Infrastructure/Sysadmin
– Administration/Conferences
● No paid committers
33. Types of contribution
● Any constructive contribution earns merit
– Permissively licensed only
● Not just code
– Evangelism
– Bug reports and triage
– Testing
– Documentation
– Design feedback
– User support
– Etc.
34. All contributions are equal
● Merit does not buy you authority
– The community must still agree
● Merit buys you privileges, e.g.
– Commit access
– Conflict resolution capabilities
● Community agrees on direction
● Individuals then make it happen
35. Decision Making
● Most decisions are reversible
● “If it didn't happen on the list, it didn't
happen”
● Uncontroversial or small changes
– Lazy Consensus – assume it's OK –
JFDI
● Controversial, irreversible or large changes
– Propose then wait a minimum of 72
hours
36. CTR/RTC
● Commit Then Review
– Small reversible changes
– Project in active development
● Review Then Commit
– Large or Controversial changes
– Stable/Maintenance branch
37.
38. Finding that list
● Listed on project website
● dev@project.apache.org
– Primary list
● commits@project.apache.org
– Automated source change notification
● users@proejct.apache.org (optional)
– User-to-user support
● http://mail-archives.apache.org
39. No Jerks Allowed!
● Most people are nice
– We all have bad days
– Some are, well, Jerks
● Trolls exist
– DO NOT FEED
● Don't become a poisonous person
“How Open Source Projects Survive
Poisonous People (And You Can Too)” by
Ben Collins-Sussman and Brian Fitzpatrick
http://video.google.com/videoplay?docid=-4216011961522818645
40. Community > Code
● More than just a clever slogan
● We can rewrite the code
● Poisonous people spoil the fun
41. However ...
● Many businesses rely on what we do for
fun. So it's important that projects be
– Sustainable (See: Diversity)
– Legal (patent, copyright, licenses, etc ...)
– Available (See: Infrastructure)
43. Ways to Contribute
● Documentation, Tutorials and Examples
● Helping others with queries and questions
● Issue / bug tracker triage
● Testing new fixes, helping reproduce
problems
● Bug Fixes and New Features
● Writing add-ons and extensions
● Mentoring, volunteering for the Foundation
44. Companies Contributing
● Everyone at Apache is there as an individual
● Companies can't buy access or committership
● To get involved, need to put employees to work
on the project, have them gain merit
● BDFLs are not allowed, everyone has an equal
voice
● Diversity of community means one company
can't dominate
● Means you can safely build your business on it
49. License
● Apache License
● Very permissive
● We encourage you to give back, but we
don't require it
● This makes it very business-friendly
50. In Summary
● It works!
● It's the best way we know of to develop
Open Source Software in a collaborative,
open and meritocratic way
● Some things can seem hard at first
● But there's normally a reason why
● Ask questions! Much is documented, but
not all, and not all in the same place
● Learn, participate, improve!
51. The Apache Way
Rich Bowen / @rbowen /
rbowen@apache.org
Thanks for listening! Questions?
A collaborative slidedeck with contributions from
Nick Burch, Ross Gardler, Lars Eilebrecht,
Justin Erenkrantz and Isabel Drost