Incubating Open Source Communities [HK SFD 2009]

1,719 views

Published 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 contributors to open source projects and reviews the Apache Incubator project.

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,719
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
41
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Incubating Open Source Communities [HK SFD 2009]

  1. 1. Incubating Open Source Communities J Aaron Farr Hong Kong Free Software Day City University 19 SEP 2009
  2. 2. Aaron
  3. 3. farra @ apache . org
  4. 4. Former Director Apache Software Foundation
  5. 5. Co-Founder J T ade ower ! "
  6. 6. www.cubiclemuses.com
  7. 7. Apache Software Foundation • US Non-Profit • Provides legal and infrastructure support • Completely volunteer organization • 1000+ committers, 200+ members • 60+ open source projects
  8. 8. Incubating Open Source Communities Which Why What How
  9. 9. Which Community User Developer Involvement Public Contributor
  10. 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. 11. Contributors Users Developers
  12. 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. 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. 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. 15. What Does That Mean? It means a huge number of contributors (741) who made thousands of small contributions
  16. 16. Communities Which Why What How
  17. 17. Community > Code
  18. 18. Why Community Code Community Factor of Success Time
  19. 19. Community First
  20. 20. Communities Which Why What How
  21. 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. 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. 23. Community People Customs Ownership Shared Goals
  24. 24. Community
  25. 25. Communicates
  26. 26. Community People Customs Ownership Shared Goals Communication
  27. 27. Culture Shared meanings used by a group to approach the problems of life
  28. 28. Cathedral vs Bazaar
  29. 29. Cathedral
  30. 30. Bazaar
  31. 31. Community Culture Cathedral Bazaar
  32. 32. Communities Which Why What How
  33. 33. The Path To Contribution
  34. 34. Path to Contribution User Developer Involvement Public Contributor
  35. 35. Path to Contribution Documentation should clearly identify the audience and set out the process • Clear • Consistent • Attainable
  36. 36. Types of Contribution • Documentation • Bug Fixes • Answers on mailing lists • Promotion • Money
  37. 37. Providing a Path • How to Get Involved Documentation • Low Barrier To Contribution • Wiki Documentation Site • Bug Tracker • Recognize Contributors (Release Notes)
  38. 38. Community People Customs Ownership Shared Goals Communication
  39. 39. People Individuals Not Business Not Corporations Not Organizations People Customs Ownership Shared Goals Communication
  40. 40. People • Meritocracy • Clearly define: • Roles • Expectations • Qualifications People Customs Ownership Shared Goals Communication
  41. 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. 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. 43. Customs Oral Traditions Rules of Participation Decision Making Processes People Customs Ownership Shared Goals Communication
  44. 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. 45. FAQ People Customs Ownership Shared Goals Communication
  46. 46. Ownership Open Source License Access Permissions Responsibilities People Customs Ownership Shared Goals Communication
  47. 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. 48. Shared Goals Group Identity Clear Purpose What We’re Not People Customs Ownership Shared Goals Communication
  49. 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. 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. 51. Communication Open Consistent Archived People Customs Ownership Shared Goals Communication
  52. 52. Communication • Website (with documentation) • Mailing Lists • Issue Tracking • Source Repository • Instant Message / Chat People Customs Ownership Shared Goals Communication
  53. 53. Communities Which Why What How
  54. 54. Communities Code
  55. 55. Code • Directly useful to developers (itch) • Builds • Common standards • Composable • Consistent • Improvable
  56. 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. 57. release early release often
  58. 58. Community People Customs Ownership Shared Goals Communication Provide A Pathway To Contribution
  59. 59. Apache Incubator
  60. 60. Non-Apache Project ↓ Incubator ↓ Apache Project
  61. 61. Apache Incubator • Legal Ensure donations and projects are in accordance with legal standards • Community Develop communities that adhere to ASF guiding principles
  62. 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. 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. 64. Roles • Incubator PMC (IPMC) • Podling • Podling PMC (PPMC) • Champion • Sponsor • Mentor • Committers
  65. 65. Incubation Process • Question • Learn • Search • Adjust • Commit • Grow • Committed • Report • Establish • Perform • Join • Leave • Clear
  66. 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. 67. Is the Incubator For Us?
  68. 68. incubator.apache.org
  69. 69. Thank You J Aaron Farr farra@apache.org www.cubiclemuses.com

×