Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Freeloaders are Essential and Other Open Source Product Truths

683 views

Published on

Slides from talk at All Things Open, 2016, 27 October, 2016
https://allthingsopen.org/talk/freeloaders-are-essential-and-other-open-source-product-truths/

Published in: Software
  • Be the first to comment

Freeloaders are Essential and Other Open Source Product Truths

  1. 1. Freeloaders are Essential and Other Open Source Product Truths Stephen R. Walli @stephenrwalli stephen.walli@gmail.com
  2. 2. Patterns and Practices for Open Source Project Success Stephen R. Walli @stephenrwalli stephen.walli@gmail.com
  3. 3. WTFOSS* Stephen R. Walli @stephenrwalli stephen.walli@gmail.com * Hat tip to @codepope
  4. 4. There is NO Open Source Business Model Stephen R. Walli @stephenrwalli stephen.walli@gmail.com
  5. 5. Community We’ve known how communities work since you had a campfire and I wanted to sit beside it We are social animals; community is what we do Courtesy is how we survive one another and feel safe in strange communities There’s nothing new here
  6. 6. 1950 1960 1970 200019901980 2010 Code sharing At Princeton IAS in late 1940s IBM “SHARE” Conf & Library Begins 1953 DECUS Conf & Library Begins 1962 MIT Project Athena Begins 1983 1BSD Released 1977 AT&T Shares First UNIX tapes early-70s Free Software Foundation Launches 1985 DoJ vs IBM begins “Software Bundling is Anti-competitive” 1969 IBM response is to unbundle HW, SW, & services pricing 1st DoJ vs IBM Consent Decree “Hardware Bundling is Anti-competitive” 1956 Open Source Definition 1997 USENIX Begins 1975 Linus Releases Linux 1991 Apache httpd Released 1995 Apache Software Foundation 1999 OSDL Forms 2000 OSDL Re-forms as Linux Foundation 2007 U.S. Congress Adds Computer Software to Copyright Law 1980 GCC 1987 emacs 1975 We’ve shared software since we’ve written software
  7. 7. 1950 1960 1970 200019901980 2010 Code sharing At Princeton IAS in late 1940s IBM “SHARE” Conf & Library Begins 1953 DECUS Conf & Library Begins 1962 MIT Project Athena Begins 1983 1BSD Released 1977 AT&T Shares First UNIX tapes early-70s Free Software Foundation Launches 1985 DoJ vs IBM begins “Software Bundling is Anti-competitive” 1969 IBM response is to unbundle HW, SW, & services pricing 1st DoJ vs IBM Consent Decree “Hardware Bundling is Anti-competitive” 1956 Open Source Definition 1997 USENIX Begins 1975 Linus Releases Linux 1991 Apache httpd Released 1995 Apache Software Foundation 1999 OSDL Forms 2000 OSDL Re-forms as Linux Foundation 2007 U.S. Congress Adds Computer Software to Copyright Law 1980 GCC 1987 emacs 1975 We’ve shared software since we’ve written software Writing good software is hard work
  8. 8. 1950 1960 1970 200019901980 2010 Code sharing At Princeton IAS in late 1940s IBM “SHARE” Conf & Library Begins 1953 DECUS Conf & Library Begins 1962 MIT Project Athena Begins 1983 1BSD Released 1977 AT&T Shares First UNIX tapes early-70s Free Software Foundation Launches 1985 DoJ vs IBM begins “Software Bundling is Anti-competitive” 1969 IBM response is to unbundle HW, SW, & services pricing 1st DoJ vs IBM Consent Decree “Hardware Bundling is Anti-competitive” 1956 Open Source Definition 1997 USENIX Begins 1975 Linus Releases Linux 1991 Apache httpd Released 1995 Apache Software Foundation 1999 OSDL Forms 2000 OSDL Re-forms as Linux Foundation 2007 U.S. Congress Adds Computer Software to Copyright Law 1980 GCC 1987 emacs 1975 Companies shared software before we had the OSD DEC Ultrix 1984 SunOS 1983 OSF/1 1992 Red Hat 1993
  9. 9. 1950 1960 1970 200019901980 2010 Code sharing At Princeton IAS in late 1940s IBM “SHARE” Conf & Library Begins 1953 DECUS Conf & Library Begins 1962 MIT Project Athena Begins 1983 1BSD Released 1977 AT&T Shares First UNIX tapes early-70s Free Software Foundation Launches 1985 DoJ vs IBM begins “Software Bundling is Anti-competitive” 1969 IBM response is to unbundle HW, SW, & services pricing 1st DoJ vs IBM Consent Decree “Hardware Bundling is Anti-competitive” 1956 Open Source Definition 1997 USENIX Begins 1975 Linus Releases Linux 1991 Apache httpd Released 1995 Apache Software Foundation 1999 OSDL Forms 2000 OSDL Re-forms as Linux Foundation 2007 U.S. Congress Adds Computer Software to Copyright Law 1980 GCC 1987 emacs 1975 Companies shared software before we had the OSD (Writing good software is hard work) DEC Ultrix 1984 SunOS 1983 OSF/1 1992 Red Hat 1993
  10. 10. A Story
  11. 11. Engineering Economics of F/OSS (Benefits) • In 1995, Interix was the kernel-integrated “UNIX” face of Windows NT • ~300 packages covered by ~25 licenses + Microsoft POSIX subsystem derivative + Softway developed software • gcc provided critical support for Interix Toolchain & SDK (~750K LoC*) • Ported/Integrated/Tested to Interix in ~6-8 months by a senior compiler engineer instead of ~US$10M-20M* cost-to-develop • But now we’re living on a fork … * Estimates from Black Duck Open Hub
  12. 12. Forks The Two Ronnies, “Four Candles”, https://www.youtube.com/watch?v=sO6EE1xTXmw
  13. 13. Engineering Economics of F/OSS (Costs) • Cost of Interix gcc fork is ~6 months of a senior engineer’s time (~US$50K+) • If Interix changes are upstream, we estimate 2-4 weeks of integration/testing on new gcc releases (~US$7-10K) • But there are really five gcc projects to negotiate … • Cygnus Solutions are core committers on gcc: quoted ~US$120K and they could start in 14 months • Ada Core Technology ALSO had core committers: US$40K & immediate start
  14. 14. You Always Get More Than You Give
  15. 15. 2 Stories
  16. 16. Orders of magnitude
  17. 17. ROTOR 500K LoC 500K Lines-of-Test Harness Ran on Windows, Mac OS X, FreeBSD One script to set environment One command to build everything One command to test it all Minimal documentation 24 hours later … 24 hours later again …
  18. 18. Committer(s) + Code
  19. 19. Developers Committers + Code
  20. 20. Developers Committers + Code
  21. 21. Developers Users Committers + Code
  22. 22. Developers Users Committers + Code
  23. 23. How do you increase your user base? (How do you make it easy to install/configure/use the software?) How do you encourage developers? (How do you make it easy to build/test/experiment?) How do you make it easy to contribute? (What do you communicate to your community)
  24. 24. How do you increase your user base? (How do you make it easy to install/configure/use the software?)
  25. 25. How do you increase your user base? (How do you make it easy to install/configure/use the software?) Project Exes published Project Install Automated Software Construction Activities Project BugTracking
  26. 26. How do you increase your user base? (How do you make it easy to install/configure/use the software?) Project Exes published Project Install Automated Software Construction Activities Project License FAQs, Howto Community Development Activities Project BugTrackingForums, Email
  27. 27. How do you encourage developers? (How do you make it easy to build/test/experiment?)
  28. 28. How do you encourage developers? (How do you make it easy to build/test/experiment?) Project Build Automated I Complete Src published Project Test Automated I Software Construction Activities
  29. 29. How do you encourage developers? (How do you make it easy to build/test/experiment?) Project Build Automated I Complete Src published Project Test Automated I Software Construction Activities Mission Statement Comms Platform Community Development Activities Code of Conduct
  30. 30. A small diversion on software engineering … • 2 ratios define software development • All advances in programming languages and software engineering is attempting to beat these two ratios • [Community|Product] scale depends on reliably delivering the known executable environment every time • Linus’s Law is about REVIEWS not BUG FIXING
  31. 31. How do you make it easy to contribute? (What do you communicate to your community)
  32. 32. How do you make it easy to contribute? (What do you communicate to your community) Project Build Automated II Project Test Automated II Basic Arch Description Software Construction Activities
  33. 33. How do you make it easy to contribute? (What do you communicate to your community) Project Build Automated II Project Test Automated II Basic Arch Description Software Construction Activities Governance Events Community Development Activities Contributoion Guidelines
  34. 34. Committers Contributors Community EcosystemProject Products Services Books Training The Evolution of an Open Source Project
  35. 35. Committers Contributors Community EcosystemProject Products Services Books Training Corporate Contributors The Evolution of an Open Source Project
  36. 36. How do you make it easy to contribute? (What do you communicate to your COMMERCIAL community) Project License Provenance Tracking Repositories Protected Dependencies Documented Contributions Auditted Provenance Management Committers Indemnified Committer Governance Trademark Management IP Management Activities
  37. 37. Foundations • Henrik Ingo’s numbers • Foundations CAN provide neutral ownership and a level playing field • Bright lines for projects versus products
  38. 38. Open Source Community Practices Project Exes published Project Build Automated I Project Install Automated Complete Src published Project BugTracking Project Build Automated II Project Test Automated I Project Test Automated II Basic Arch Description Project License Project License Mission Statement Code of Conduct Forums, Email Comms Platform FAQs, Howto Governance Contributoion Guidelines Events Provenance Tracking Repositories Protected Dependencies Documented Contributions Auditted Provenance Management Committers Indemnified Committer Governance Trademark Management IP Management Activities Community Development Software Construction Maturity
  39. 39. Open Source Community Patterns Project Exes published Project Build Automated I Project Install Automated Complete Src published Project BugTracking Project Build Automated II Project Test Automated I Project Test Automated II Basic Arch Description Project License Project License Mission Statement Code of Conduct Forums, Email Comms Platform FAQs, Howto Governance Contributoion Guidelines Events Provenance Tracking Repositories Protected Dependencies Documented Contributions Auditted Provenance Management Committers Indemnified Committer Governance Trademark Management IP Management Activities Community Development Software Construction Maturity Encourage Users Encourage ContributorsEncourage Developers Encourage/ Manage Corp Contributions
  40. 40. Developers Users Committers + Code
  41. 41. Developers Users Committers + Code Orders Of Magnitude Freeloaders Are Essential
  42. 42. Developers Users Committers + Code Books Contractors Products Distributions Consulting Training Support Building the Ecosystem
  43. 43. Committers Contributors Community EcosystemProject Products Services Books Training Corporate Contributors Customers The Evolution of an Open Source Project
  44. 44. Committers Contributors Community EcosystemProject Products Services Books Training Corporate Contributors Customers
  45. 45. Engineering/ Partner?/ Customer?/ Committers Engineering/ Partner?/ Customer?/ Contributors Community EcosystemProject Products Services Books Training Partner/Customer Contributors The Evolution of a Corporate Open Source Project Setting Customer and Partner Expectations in Community is Critical
  46. 46. Don’t Confuse Projects with Products
  47. 47. Customer Pipeline R&D Product Marketing Messages $$$ Code, etc. The community is NOT a part of the pipeline! Don’t Confuse Communities with Customers
  48. 48. Customer Pipeline R&D Product Marketing Messages $$$ Code, etc. The community is NOT a part of the pipeline! Don’t Confuse Communities with Customers WRONG
  49. 49. Don’t Confuse Communities with Customers R&D Product Marketing Messages $$$ Code, etc. Conversations Identify Customer Awareness Download & Try Deploy? Train? ??? Buy Identify community What Mission? Platform & Tools Arch. of Participation Code of Conduct IP Machine Governance Structure … with different tools, programs and metrics. Community members build awareness and evangelize, provide expertise and trial support, are a demonstration of solution viability, and provide great inertia around your solution – Contributors provide innovation
  50. 50. A Last Story
  51. 51. A Story of Red Hat in Three CEOs
  52. 52. 1994 1999 2008 A Story of Red Hat in Three CEOs
  53. 53. 1994 1999 2008 A Story of Red Hat in Three CEOs
  54. 54. 1994 1999 2008 A Story of Red Hat in Three CEOs
  55. 55. Questions & Comments stephen r walli stephen.walli@gmail.com @stephenrwalli http://stephesblog.blogs.com http://opensource.com
  56. 56. Creative Commons Photo Credits • Stephen R. Walli (https://www.flickr.com/photos/stephenrwalli/)(campfire, car) • Mitch Barrie (https://www.flickr.com/photos/simonov/)(engine) • Stuart Rankin (https://www.flickr.com/photos/24354425@N03/)(steel) • Selby Lynn (https://www.flickr.com/photos/stacylynn/)(house) • Emilian Robert Vicol (https://www.flickr.com/photos/free-stock/)(lumber) • Olga Caprotti (https://www.flickr.com/photos/__olga__/)(trees) • James Willamor (https://www.flickr.com/photos/bz3rk/)(football field)

×