building a great team in open source - open agile 2011
DESCRIPTION
Lessons I learned over the last 2 years as an open source contributor at The Apache Software Foundation.TRANSCRIPT
Building A Great Team Around Open Source Projects
@ Open Agile 2011
asavu @ apache.org
Andrei Savu
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
Past
Software Engineer @ cloudsoftcorp.com
● Apache Whirr● jclouds
Apache Whirr PMC Member @ ASF
Now
over 2+ years at The Apache Software Foundation
... lessons learned
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
~ 64 OSI Approved Licenses
talk to your lawyer!
What is The Apache Software Foundation?
Community-led development since 1999
Apache Foo as trademark
provides protection for the project identity
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 contribute back?
why use open source?
as a way to reduce your costs
use to leverage existing tested code
there is no such thing as perfect software
contribute to minimize maintainance costs
why develop as open source?
starting from scratch
self sustainable
start a fire!
maintain - support - extend
by building a community
Do we build advanced products by accident !?
20 things to keep in mind
#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
email lists, IRC, issue tracking, wiki
#8 Discuss in the open
public repository, CI server
#9 Develop in the open
#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
Andrei Savu / [email protected]
thanks!