Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building Open Source Communities - Lessons Learned

Building Open Source Communities - Lessons Learned

Facebook open sources at scale. This means that we have hundreds of projects and hundreds of engineers working to maintain those projects and keep healthy interactions with hundreds of thousands of community members. We've found that the key to a successful open source project is how the community is nurtured -from building initial trust to bringing in core external contributors. I will go through a few case studies from our projects and guide you through their adventures in building their communities. Tooling, responsiveness, empathy, patience, and transparency are some of the topics I will explore. You should come away with key best practices that you can apply in building your own thriving open source community.

B328b874e5c3fc731f3edd23ec9cdf6b?s=128

Christine Abernathy

March 30, 2016
Tweet

More Decks by Christine Abernathy

Other Decks in Technology

Transcript

  1. Building Open Source Communities: Lessons Learned Christine Abernathy @abernathyca

  2. Why does Facebook open source?

  3. It’s good for the company Why does Facebook open source?

  4. Accelerates innovation Why does Facebook open source? It’s good for

    the company
  5. Accelerates innovation We write better software Why does Facebook open

    source? It’s good for the company
  6. Accelerates innovation We write better software We share our challenges

    Why does Facebook open source? It’s good for the company
  7. 349 repos !

  8. ! 349 repos ! 65k forks

  9. ! 349 repos ! ! 65k forks 141k commits

  10. ! 349 repos ! ⋆ ! 65k forks 141k commits

    370k followers
  11. None
  12. ♥ !

  13. None
  14. forks issues commits followers pull requests

  15. forks issues commits followers pull requests

  16. forks issues commits followers pull requests

  17. None
  18. None
  19. None
  20. None
  21. None
  22. None
  23. None
  24. #1 Presto Distributed SQL query engine for big data

  25. #1 Presto Distributed SQL query engine for big data 4.6K

    followers - 1.3K forks - 7K commits - 122 contributors
  26. #1 Presto Distributed SQL query engine for big data 4.6K

    followers - 1.3K forks - 7K commits - 122 contributors
  27. #1 Presto Distributed SQL query engine for big data 4.6K

    followers - 1.3K forks - 7K commits - 122 contributors
  28. #1 Presto Distributed SQL query engine for big data !

    Impress Me
  29. #1 Presto Distributed SQL query engine for big data !

    Guide Me
  30. #1 Presto Distributed SQL query engine for big data

  31. #1 Presto Distributed SQL query engine for big data

  32. #1 Presto Distributed SQL query engine for big data •

    Releases should just work
  33. #1 Presto Distributed SQL query engine for big data •

    Releases should just work • Design software to eliminate common bugs
  34. #1 Presto Distributed SQL query engine for big data •

    Releases should just work • Design software to eliminate common bugs • Use the same tools as your community
  35. #1 Presto Distributed SQL query engine for big data •

    Releases should just work • Design software to eliminate common bugs • Use the same tools as your community • Keep people informed about pull requests
  36. #2 osquery SQL powered OS instrumentation, monitoring & analytics

  37. #2 osquery SQL powered OS instrumentation, monitoring & analytics 5.9K

    followers - 592 forks - 2.9K commits - 83 contributors
  38. #2 osquery SQL powered OS instrumentation, monitoring & analytics 5.9K

    followers - 592 forks - 2.9K commits - 83 contributors Part of a family of Facebook security tools
  39. #2 osquery SQL powered OS instrumentation, monitoring & analytics commit

    73a32b June 30, 2014 “Initial commit” today! Sep 7, 2015 Release day! Oct 28, 2014 5000 followers Apr 1, 2015 First massive external-contributor feature
  40. #2 osquery SQL powered OS instrumentation, monitoring & analytics How

    do we have 5.9K followers on Github with only 83 contributors? “ is this expected? ”
  41. #2 osquery SQL powered OS instrumentation, monitoring & analytics •acpi_tables

    •arp_cache •crontab •file_events •kernel_info •listening_ports •logged_in_users •mounts •pci_devices •processes •routes •shell_history •smbios_tables •suid_bin •system_controls •usb_devices •users •groups •rpm_packages •apt_sources •deb_packages •homebrew_packages •kernel_modules •memory_map •shared_memory •browser_plugins •startup_items most developers and administrators know SQL and will contribute more tables!?
  42. #2 osquery SQL powered OS instrumentation, monitoring & analytics We

    now measure engagement differently! Private trusted communities also contribute, just not using pull requests on Github ❤
  43. #2 osquery SQL powered OS instrumentation, monitoring & analytics CMake

    Thrift C++11 Plugins Modules Extensions SQL Config Logging daemon interactive shell RocksDB LLVM ❤
  44. #2 osquery SQL powered OS instrumentation, monitoring & analytics It

    is OK to focus on a core contributor community! Create a NUX that encourages collaboration and self guides! That may mean tooling to encourage forks
  45. #2 osquery SQL powered OS instrumentation, monitoring & analytics

  46. #2 osquery SQL powered OS instrumentation, monitoring & analytics •

    Analyze your community
  47. #2 osquery SQL powered OS instrumentation, monitoring & analytics •

    Analyze your community • Optimize for your community’s needs
  48. #2 osquery SQL powered OS instrumentation, monitoring & analytics •

    Analyze your community • Optimize for your community’s needs • Create a great initial experience
  49. #2 osquery SQL powered OS instrumentation, monitoring & analytics •

    Analyze your community • Optimize for your community’s needs • Create a great initial experience • Take time to mentor new contributors
  50. #3 Fresco Image loading library for Android

  51. #3 Fresco Image loading library for Android 8.5K followers -

    2.5K forks - 494 commits - 28 contributors
  52. #3 Fresco Image loading library for Android 8.5K followers -

    2.5K forks - 494 commits - 28 contributors 90% reduction loading errors
  53. #3 Fresco Image loading library for Android 8.5K followers -

    2.5K forks - 494 commits - 28 contributors 90% reduction loading errors 73% drop failure rates
  54. #3 Fresco Image loading library for Android

  55. #3 Fresco Image loading library for Android

  56. #3 Fresco Image loading library for Android

  57. #3 Fresco Image loading library for Android

  58. #3 Fresco Image loading library for Android ???

  59. #3 Fresco Image loading library for Android BUG BASH !

    ON CALL
  60. #3 Fresco Image loading library for Android

  61. #3 Fresco Image loading library for Android EXPERTS !

  62. #3 Fresco Image loading library for Android

  63. #3 Fresco Image loading library for Android

  64. #3 Fresco Image loading library for Android CONTRIBUTORS ! Why?

    Motivation - Goals - Design Decisions
  65. #3 Fresco Image loading library for Android

  66. #3 Fresco Image loading library for Android • Be prepared

    post-launch
  67. #3 Fresco Image loading library for Android • Be prepared

    post-launch • Be prepared for translation
  68. #3 Fresco Image loading library for Android • Be prepared

    post-launch • Be prepared for translation • Build community experts
  69. #3 Fresco Image loading library for Android • Be prepared

    post-launch • Be prepared for translation • Build community experts • Build docs for users and contributors
  70. #4 React Native A framework for building native apps with

    React
  71. #4 React Native A framework for building native apps with

    React 29K followers - 5.6K forks - 6.2K commits - 637 contributors
  72. #4 React Native A framework for building native apps with

    React 29K followers - 5.6K forks - 6.2K commits - 637 contributors
  73. #4 React Native A framework for building native apps with

    React 29K followers - 5.6K forks - 6.2K commits - 637 contributors 85% code shared
  74. #4 React Native A framework for building native apps with

    React
  75. #4 React Native A framework for building native apps with

    React ! ! ! + =
  76. #4 React Native A framework for building native apps with

    React
  77. #4 React Native A framework for building native apps with

    React ! Community
  78. A framework for building native apps with React #4 React

    Native !
  79. A framework for building native apps with React #4 React

    Native !
  80. #4 React Native A framework for building native apps with

    React ! Community
  81. #4 React Native A framework for building native apps with

    React ! Tooling ! Community
  82. React Native ! #4 A framework for building native apps

    with React
  83. React Native ! #4 A framework for building native apps

    with React
  84. React Native ! #4 A framework for building native apps

    with React
  85. React Native ! #4 A framework for building native apps

    with React
  86. React Native ! #4 A framework for building native apps

    with React
  87. #4 React Native A framework for building native apps with

    React ! Tooling ! Community
  88. #4 React Native A framework for building native apps with

    React ! Tooling ! Community ! Communication
  89. A framework for building native apps with React #4 React

    Native !
  90. A framework for building native apps with React #4 React

    Native !
  91. A framework for building native apps with React #4 React

    Native !
  92. A framework for building native apps with React #4 React

    Native !
  93. A framework for building native apps with React #4 React

    Native !
  94. #4 React Native A framework for building native apps with

    React !
  95. #4 React Native A framework for building native apps with

    React
  96. #4 React Native A framework for building native apps with

    React • Promote your contributors
  97. #4 React Native A framework for building native apps with

    React • Promote your contributors • Be super responsive and open
  98. #4 React Native A framework for building native apps with

    React • Promote your contributors • Be super responsive and open • Leverage tooling for efficient workflows
  99. #4 React Native A framework for building native apps with

    React • Promote your contributors • Be super responsive and open • Leverage tooling for efficient workflows • Market your project
  100. Best Practices

  101. ! Understand your community

  102. ! ♥ Create a great initial experience Understand your community

  103. ! ♥ Create a great initial experience ! Be responsive

    Understand your community
  104. ! ♥ Create a great initial experience ! Be responsive

    ! Leverage tooling Understand your community
  105. ! ♥ Create a great initial experience ! Be responsive

    ! Leverage tooling ⋆ Motivate, promote, and graduate Understand your community
  106. Thank You!

  107. CHRISTINE ABERNATHY
 @abernathyca