Incubating Open Source Communities [HK SFD 2009]

  • 1,263 views
Uploaded on

A version of my "Incubating Open Source Communities" talk given at the Hong Kong Software Freedom Day on 19 Sept 2009 at City University. The talk provides some insights into how to attract …

A version of my "Incubating Open Source Communities" talk given at the Hong Kong Software Freedom Day on 19 Sept 2009 at City University. The talk provides some insights into how to attract contributors to open source projects and reviews the Apache Incubator project.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,263
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
37
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Incubating Open Source Communities J Aaron Farr Hong Kong Free Software Day City University 19 SEP 2009
  • 2. Aaron
  • 3. farra @ apache . org
  • 4. Former Director Apache Software Foundation
  • 5. Co-Founder J T ade ower ! "
  • 6. www.cubiclemuses.com
  • 7. Apache Software Foundation • US Non-Profit • Provides legal and infrastructure support • Completely volunteer organization • 1000+ committers, 200+ members • 60+ open source projects
  • 8. Incubating Open Source Communities Which Why What How
  • 9. Which Community User Developer Involvement Public Contributor
  • 10. At The Core The community begins with the developers and contributors. The larger and more open the developer community, the greater chance for sustained activity and growth.
  • 11. Contributors Users Developers
  • 12. A Note on Size • Most developer communities are small • Even with large developers, most of the development is usually by a small number of developers • Apache requires minimum of 3 independent votes for a release
  • 13. A3B7)&)B)&D2* Q&%5)G*C2*2IBE&72*#B%)&9&#B)&"7*&7*'272%B)&7'*9"62/**Q&'3%2*S* #%"J29)/*0(2* #4")5* )(2* 93E34B)&D2* #%"#"%)&"7* ":* 9"62* 9(B7'25* TD2%)&9B4* Apache’s Long Tail 44?53&)26* )"* BI&5V* D2%535* )(2* )"#* `* 9"7)%&13)"%5* )"* )(2* 9"62* 1B52* (2$* EB$* 12* T("%&F"7)B4*BI&5V/* ")* 5":)CB%2* *%2B5"7G*C2* )"* '&D2* )(2* 1.0 * E&'()* 12* 9&B4* #%"J29)5* 0.8 5* B* #2%:29)* (2* DB%&B)&"7* 0.6 !K=* &5* 632* B76* R<<* Fraction of MRs 0.4 Fraction of Delta Fraction of Lines Added Fraction of Lines Deleted 5"*)(B)*72C* 0.2 )(* )(2* 9"%2* 26* E"63425* 0.0 3626* &7* "3%* 1 5 10 15 50 100 388 725* ":* 9"62* Number of individuals * Feilding, Herbleb & Mockus, 2000 @?37A." 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):-?*
  • 14. 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
  • 15. What Does That Mean? It means a huge number of contributors (741) who made thousands of small contributions
  • 16. Communities Which Why What How
  • 17. Community > Code
  • 18. Why Community Code Community Factor of Success Time
  • 19. Community First
  • 20. Communities Which Why What How
  • 21. Community community |kəˌmjunədi| |kəˌmjuːnɪti| noun ( pl. -ties) 1 a group of people living together in one place, esp. one practicing common ownership : a community of nuns. • all the people living in a particular area or place : local communities. • a particular area or place considered together with its inhabitants : a rural community. • ( the community) the people of a district or country considered collectively, esp. in the context of social values and responsibilities; society : preparing prisoners for life back in the community. • [as adj. ] denoting a worker or resource designed to serve the people of a particular area : community health services. 2 [usu. with adj. ] a group of people having a religion, race, profession, or other particular characteristic in common : Rhode Island's Japanese community | the scientific community. • a body of nations or states unified by common interests : [in names ] the European Community | the African Economic Community. 3 a feeling of fellowship with others, as a result of sharing common attitudes, interests, and goals : the sense of community that organized religion can provide. • [in sing. ] a similarity or identity : writers who shared a community of interests. • joint ownership or liability : a commitment to the community of goods. 4 Ecology a group of interdependent organisms of different species growing or living together in a specified habitat : communities of insectivorous birds. • a set of species found in the same habitat or ecosystem at the same time. Oxford American Dictionaries
  • 22. Community community |kəˌmjunədi| |kəˌmjuːnɪti| noun ( pl. -ties) 1 a group of people living together in one place, esp. one practicing common ownership : a community of nuns. • all the people living in a particular area or place : local communities. • a particular area or place considered together with its inhabitants : a rural community. • ( the community) the people of a district or country considered collectively, esp. in the context of social values and responsibilities society : preparing prisoners for life back in the community. responsibilities; • [as adj. ] denoting a worker or resource designed to serve the people of a particular area : community health services. 2 [usu. with adj. ] a group of people having a religion, race, profession, or other particular characteristic in common : Rhode Island's Japanese community | the scientific community. • a body of nations or states unified by common interests : [in names ] the European Community | the African Economic Community. 3 a feeling of fellowship with others, as a result of sharing common attitudes, interests, and goals : the sense of community that organized religion can provide. • [in sing. ] a similarity or identity : writers who shared a community of interests. • joint ownership or liability : a commitment to the community of goods. 4 Ecology a group of interdependent organisms of different species growing or living together in a specified habitat : communities of insectivorous birds. • a set of species found in the same habitat or ecosystem at the same time. Oxford American Dictionaries
  • 23. Community People Customs Ownership Shared Goals
  • 24. Community
  • 25. Communicates
  • 26. Community People Customs Ownership Shared Goals Communication
  • 27. Culture Shared meanings used by a group to approach the problems of life
  • 28. Cathedral vs Bazaar
  • 29. Cathedral
  • 30. Bazaar
  • 31. Community Culture Cathedral Bazaar
  • 32. Communities Which Why What How
  • 33. The Path To Contribution
  • 34. Path to Contribution User Developer Involvement Public Contributor
  • 35. Path to Contribution Documentation should clearly identify the audience and set out the process • Clear • Consistent • Attainable
  • 36. Types of Contribution • Documentation • Bug Fixes • Answers on mailing lists • Promotion • Money
  • 37. Providing a Path • How to Get Involved Documentation • Low Barrier To Contribution • Wiki Documentation Site • Bug Tracker • Recognize Contributors (Release Notes)
  • 38. Community People Customs Ownership Shared Goals Communication
  • 39. People Individuals Not Business Not Corporations Not Organizations People Customs Ownership Shared Goals Communication
  • 40. People • Meritocracy • Clearly define: • Roles • Expectations • Qualifications People Customs Ownership Shared Goals Communication
  • 41. People Roles The meritocracy enables various roles: user | developer | committer | PMC member | ASF member User user is someone that uses our software. They contribute to the Apache projects by providing feedback to developers in the form of bug reports and feature suggestions. Users participate in the Apache community by helping other users on mailing lists and user support forums. The passive users are also known as lurkers. Developer developer is a user who contributes to a project in the form of code or documentation. They take extra steps to participate in a project, are active on the developer mailing list, participate in discussions, provide patches, documentation, suggestions, and criticism. Developers are also known as contributors. Committer committer is a developer that was given write access to the code repository and has a signed Contributor License Agreement (CLA) on file. They have an apache.org mail address.... People Customs Ownership Shared Goals Communication
  • 42. People Apache CLA The Apache Software Foundation Individual Contributor License Agreement ("Agreement") V2.0 http://www.apache.org/licenses/ Thank you for your interest in The Apache Software Foundation (the "Foundation"). In order to clarify the intellectual property license granted with Contributions from any person or entity, the Foundation must have a Contributor License Agreement ("CLA") on file that has been signed by each Contributor, indicating agreement to the license terms below. This license is for your protection as a Contributor as well as the protection of the Foundation and its users; it does not change your rights to use your own Contributions for any other purpose. If you have not already done so, please complete and send an original signed Agreement to The Apache Software Foundation, 1901 Munsey Drive, Forest Hill, MD 21050-2747, U.S.A. If necessary, you may send it by facsimile to the Foundation at +1-410-803-2258. Please read this document carefully before signing and keep a copy for your records. People Customs Ownership Shared Goals Communication
  • 43. Customs Oral Traditions Rules of Participation Decision Making Processes People Customs Ownership Shared Goals Communication
  • 44. Customs • Clearly define project practices • Bug submission process • Release process • Voting process • Coding Standards • Mailing List Etiquette People Customs Ownership Shared Goals Communication
  • 45. FAQ People Customs Ownership Shared Goals Communication
  • 46. Ownership Open Source License Access Permissions Responsibilities People Customs Ownership Shared Goals Communication
  • 47. Ownership • Prominently display the license • Openly identify business interests • Non-locking source control • No Author Tags • Avoid Dictatorships or “one man shows” People Customs Ownership Shared Goals Communication
  • 48. Shared Goals Group Identity Clear Purpose What We’re Not People Customs Ownership Shared Goals Communication
  • 49. Subversion Why does this project exist? To take over the CVS user base. Specifically, we're writing a new version control system that is very similar to CVS, but fixes many things that are broken. See our front page. People Customs Ownership Shared Goals Communication
  • 50. Society → Community The difference between a society and a community is a “unity of wills” Community and Society: Gemeinschaft und Gesellschaft, Ferdinand Tönnies People Customs Ownership Shared Goals Communication
  • 51. Communication Open Consistent Archived People Customs Ownership Shared Goals Communication
  • 52. Communication • Website (with documentation) • Mailing Lists • Issue Tracking • Source Repository • Instant Message / Chat People Customs Ownership Shared Goals Communication
  • 53. Communities Which Why What How
  • 54. Communities Code
  • 55. Code • Directly useful to developers (itch) • Builds • Common standards • Composable • Consistent • Improvable
  • 56. 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
  • 57. release early release often
  • 58. Community People Customs Ownership Shared Goals Communication Provide A Pathway To Contribution
  • 59. Apache Incubator
  • 60. Non-Apache Project ↓ Incubator ↓ Apache Project
  • 61. Apache Incubator • Legal Ensure donations and projects are in accordance with legal standards • Community Develop communities that adhere to ASF guiding principles
  • 62. Graduated Abdera httpd-CLI MyFaces SpamAssassin ActiveMQ iBATIS Nutch stdcxx Apollo Ivy Ode Synapse Beehive Jackrabbit OFBiz Tapestry Cayenne JaxMe OpenEJB Tika CouchDB JDO OpenJPA Tobago CXF jUDDI Pig Trinidad Derby Lenya Pluto Tuscany Directory log4cxx Qpid WebWork 2 Felix log4net Roller Wicket FtpServer MerlinDevelo Sanselan Woden Geronimo per ServiceMix XMLBeans Harmony mod_ftp Solr Hermes Muse Sling
  • 63. Incubating Ace Imperius Pivot TrafficServer Bluesky JSPWiki RAT UIMA Cassandra Kato RCF VCL Chemistry Log4php River VXQuery Click Lucene.Net Shindig Wookie Droids Olio Shiro Wink Empire-db Open- SocialSite WSRP4J Etch WebBeans Stonehenge ESME PDFBox Tashi Hama PhotArk Thrift
  • 64. Roles • Incubator PMC (IPMC) • Podling • Podling PMC (PPMC) • Champion • Sponsor • Mentor • Committers
  • 65. Incubation Process • Question • Learn • Search • Adjust • Commit • Grow • Committed • Report • Establish • Perform • Join • Leave • Clear
  • 66. Incubation Over 50 projects have graduated from the Apache Incubator. The average time is 14 months, but varies from 2 to 28 months. During that time, the average project adds 2 - 3 committers. Question Search Commit Committed Establish Join Clear Learn Adjust Grow Report Perform Leave
  • 67. Is the Incubator For Us?
  • 68. incubator.apache.org
  • 69. Thank You J Aaron Farr farra@apache.org www.cubiclemuses.com