Building A Great Team
Around Open Source Projects

        @ Open Agile 2011
Andrei Savu
asavu @ apache.org
Past

Started by doing php, html, css & js ...

... moved to python, jvm, distributed systems,
large scale deployments & open source

worked at Facebook and Adobe

                           See more on LinkedIn
Now

Software Engineer @ cloudsoftcorp.com

  ● Apache Whirr
  ● jclouds

Apache Whirr PMC Member @ ASF
... lessons learned
over 2+ years at The Apache Software Foundation
community engagement
software development
distributed teams
Note: Strong Bias Towards The
 Apache Software Foundation
* not the only way of doing open source
Warning: I am not a lawyer
* seek third party assistance as required
let's define some terms
what is open source?
a software license that gives
    you certain freedoms
#1 free distribution
#2 access to source code
#3 integrity of author's code
#4 prevents discrimination
#5 technology neutral
a license shapes the
community and the code
ASL vs. GPL
the Apache License asks
   for credit attribution
derivative work can
     re-license
no warranty
may ask to credit
original authors
talk to your lawyer!
 ~ 64 OSI Approved Licenses
What is The Apache
Software Foundation?
Community-led
development since 1999
provides protection for
  the project identity
   Apache Foo as trademark
not simply a group of
projects sharing a server,
but rather a community of
  developers and users
projects are defined by ...
collaborative consensus
    based processes
an open, pragmatic
 software license
a desire to create high
   quality software
the pragmatic perspective
why use open source?
    why contribute back?
use to leverage
existing tested code
 as a way to reduce your costs
contribute to minimize
   maintainance costs
there is no such thing as perfect software
why develop as
 open source?
 starting from scratch
start a fire!
 self sustainable
by building a community
    maintain - support - extend
Do we build advanced
products by accident !?
20 things to keep in mind
#1 Community over code
   see communityovercode.com
#2 Team = Community
#3 It's about what you do.
 Those who do, decide.
#4 Lead by example
#5 Be the janitor!
#5 Constantly ask for
     feedback
#6 Release early,
  release often
#7 100% transparent
development process
#8 Discuss in the open
 email lists, IRC, issue tracking, wiki
#9 Develop in the open
   public repository, CI server
#10 Be responsive!
#11 Be diplomatic!
#12 Enforce meritocracy
#13 Decide by consensus
#14 Responsible Oversight
#15 People not Companies
#16 Seek an active nucleus
50% of changes made by
 2.5% of the developers
    Linux 2.6.20 - see lwn.net
#17 Show that you care!
#18 Keep things consistent
#19 Encourage
modular design
#20 Be grateful
thanks!

Andrei Savu / asavu@apache.org

Building a Great Team in Open Source - Open Agile 2011