[フレーム]
Uploaded bybcantrill
PDF, PPTX73,306 views

Corporate Open Source Anti-patterns

The document discusses corporate open source anti-patterns, highlighting the historical transition from proprietary software to open source initiatives, particularly focusing on the fate of OpenSolaris and its subsequent split into Illumos. It outlines various mistakes companies make when engaging with open source, such as governance issues, competitive paranoia, and anti-collaborative licensing, suggesting that these stem from well-intentioned but misguided thinking. The author emphasizes the importance of understanding these anti-patterns to improve the effectiveness of open source strategies.

Embed presentation

Download as PDF, PPTX
Corporate Open Source Anti-Patterns: Doing It Wrong Bryan Cantrill VP, Engineering bryan@joyent.com @bcantrill
Open source: A commercial history • In the beginning, there was nothing but source code • Starting in 1983, IBM led the move to proprietary enterprise software with its "object-only" model • The 1980s and 1990s saw a boom in proprietary software centered on the PC — with Microsoft as its spiritual and commercial leader • By the late 1990s, proprietary software gave rise to monopolistic behavior ("vendor lock-in"); open source became commercially attractive despite its shortcomings • Open source started with infrastructure software: languages/runtimes (Perl, Python), OSs (Linux, BSD), DBs (MySQL, Postgres) and web servers (Apache)
Open source in the 2000s • It became acceptable (and then, with the Dot Com Bust, required) to use open source wherever reasonable • Companies would occasionally contribute their changes back to the open source software they used, but rarely did they open the software they themselves invented • The counterexamples were in domains in which open source became a hard requirement, e.g. operating systems and language runtimes • Alone among the proprietary Unix vendors, Sun elected to take the arduous path of open sourcing its operating system to assure its vitality...
Aside: The birth of OpenSolaris • Sun open sourced Solaris (OpenSolaris) under a weak copyleft (CDDL) in 2005, starting with DTrace • The OS was developed henceforth in the open, making it one of the largest and most important bodies of software to leap the chasm from proprietary to open • While Sun did some things right, lots of things were done wrong; by the time Oracle bought Sun in 2010, the community was rudderless and adrift • It became quickly clear that Oracle had absolutely no interest in the OpenSolaris community — or in open source for that matter
Aside: The sad death of OpenSolaris • On Friday, August 13th, 2010, an internal memo was circulated by the putative Solaris leadership at Oracle: We will distribute updates to approved CDDL or other open source-licensed code following full releases of our enterprise Solaris operating system. In this manner, new technology innovations will show up in our releases before anywhere else. We will no longer distribute source code for the entirety of the Solaris operating system in real-time while it is developed, on a nightly basis. • Oracleʼs depraved act — closing an open system — greatly alienated the community and accelerated a Solaris diaspora that was already underway • Fortunately, the source was still out there...
Aside: The rise of illumos • A new community rose from the ashes of OpenSolaris, and exercised open sourceʼs most important right: the right to fork • Dubbed "illumos" (from illuminare, Latin for illuminate) and made available in August, 2010 • Essentially all of the Solaris diaspora landed in illumos, including the core of key technologies like ZFS, DTrace, zones and networking virtualization • Two years later, illumos is thriving with an established track record of innovation, a healthy community, and multiple distributions (e.g., OmniOS, Joyentʼs SmartOS) • See http://illumos.org and http://smartos.org — or search for "fork yeah illumos" for the full story
OpenSolaris as object lesson? • The saga of Solaris/OpenSolaris/illumos contains many lessons about both the power of open source and of the challenges of moving from proprietary to open • It seems that some of the mistakes that Sun made with OpenSolaris have been (or are being) made by other companies with other systems • It is clear that these mistakes are often born of good intentions — they are not errors, they are anti-patterns • By studying the corporate open source anti-patterns, we can try to learn what not to do
Anti-pattern: Inverted thinking • Itʼs very tempting (and natural) to think of open source in terms of: What will this buy me? • This is the wrong way to frame the problem: the benefits of open source are often secondary and tertiary • Should be framed instead as: What does this cost me? • Reminder: software costs nothing to manufacture; making it available to everyone via its source code has no marginal cost! • The only cost can be from someone who would have paid you, but will instead take the source and productize, operationalize and support it on their own
Anti-pattern: Wishful thinking • People who would take your software and do everything else on their own werenʼt going to pay you anyway • The choice is not if they pay you or not (no one is getting paid), but rather if they run your software or not • Internalizing this as the choice allows one to focus on those secondary and tertiary benefits of open source: • For most bodies of software, there is marginal gain to have more people running it (e.g., bug fixes, support of esoteric platforms, etc.) • For most bodies of software, there are non-linear network effects — in proportion to the API surface area
Anti-pattern: No source! • An amazing number of corporate open source efforts are announced without source code! • For example, HP and the loud announcement of their "intent" to open source webOS in December 2011 — still not available as of July 2012 (& the team has since quit) • This is a mistake so stupid, it can only be due to open source being an entirely non-technical decision — it reeks of emphasizing perception over reality • Donʼt do this — you gain nothing (duh!) and you lose credibility (perhaps forever) • In the words of Bob the Angry Flower, "This one is stupidly simple, people!"
Anti-pattern: Forkaphobia • When software is large and complicated, one is naturally afraid of a communityʼs efforts being divided by a fork • But there is a forking paradox: the easier it is to fork the software, the more difficult it is to fork the community • If forking is easy, experimentation with ideas can be pursued while still remaining safely downstream • But if forking is difficult, experimenters are reduced to dissenters — resulting in endless arguments (best case) or divorce (worst case) • Corporate entities must therefore encourage forking — open source that cannot be forked has no vitality
Anti-pattern: Governance orgy • Forkaphobia is such a destructive anti-pattern that it breeds its own anti-patterns: if and where forking is technically difficult, the community is forced to "agree" • Of course, people donʼt actually agree — so systems of governance are established to determine a groupʼs will • This gives rise to a focus on governance (constitutions & elections) grossly out of proportion with any project • Further, elections have two corrosive side-effects: politics and losers — both of which factionalize and undermine community • If corporations are not forkaphobic, they are much less likely to engage in a governance orgy
Anti-pattern: Ersatz democracy • When corporate entities are contemplating open source, itʼs much easier to establish governance than it is to actually respect that governance • The only thing worse than paralyzed and metastasized democracy is ersatz and farcical democracy • Democracy is not an implication of open source; no corporate entity should feel an obligation to create a democracy that it in fact has no intention of observing!
Anti-pattern: Eschewing leadership • Good open source projects have good leadership! • Consensus is great when you have it, but you need leadership when you donʼt • Corporate entities shouldnʼt fear exerting leadership on projects that their engineers themselves conceived • Like any good leadership, it should be exerted in a transparent and inclusive way — the "B" in BDFL • The challenge for corporations is that they must give visibility to the employees that are the technical leaders • This requires corporations to fully internalize the truism that organizations donʼt innovate — people do
Anti-pattern: Eschewing ownership • It has become fashionable for corporations to open source software by giving it to a foundation • Even though it is not technically the case, this says that the software is, in fact, worth nothing • It sends the message that the company is stepping away from the technology and leaving it for dead • Foundations are not simple: if they are to be tax exempt, they need independent directors and capital • To give software to a foundation one is required by law (in the US, anyway) to eschew leadership
Anti-pattern: Competitive paranoia • Very common to believe that your competitor canʼt wait for you to open source your stuff so they can rip it off • Newsflash: your competitor thinks youʼre a jackass • Of course, itʼs your competitor thatʼs the jackass — thatʼs why they think youʼre a jackass! • (If you donʼt believe this, go work for your competitor) • Paradoxically, not-invented-here (NIH) is much stronger than the will to survive — companies will gladly go out of business before they adopt their rivalʼs advances • The companies that adopt your technology are nearly tautologically not your competitors...
Anti-pattern: Anti-collaborative licensing • One way to address competitive paranoia is to use a strong copyleft license that takes either a broad (GPLv2) or absurdly broad (AGPL) definition of derived work • Strong copyleft was an interesting experiment (and arguably essential to the proliferation of open source), but it has generally outlived its usefulness • Strong copyleft excludes competitors — but also collaborators: today, strong copyleft prevents cross- pollination across open source code bases! • For example, GPLv2 has prevented the integration of open source technologies like DTrace and ZFS in Linux • Was it the intent of those who licensed their work under GPLv2 to erect walls within open source software?
Anti-pattern: Anti-collaborative licensing • Many have decided that this is not, in fact, their intent; the GPLv2 is in decline relative to MIT/Apache/BSD: • And since this analysis, the decline has accelerated: GPLv2 is now at 36.32% as of the end of June 2012
Anti-pattern: Anti-collaborative licensing • The 50 most watched Github projects shows a more acute decline in the GPL relative to MIT/BSD/Apache: MIT/BSD/Apache GPL AGPL Public domain None MIT+GPL dual Source: http://ostatic.com/blog/the-top-licenses-on-github • If you want a collaborative copyleft license, consider a weak copyleft like MPL v2.0 (GPLv3 compatible!)
Anti-pattern: Dual-licensing for profit • Some have opted for a dual-licensed model in which the software is available either for free under a strong copyleft license or for a fee under a proprietary license • This encourages bad behavior by the commercial entity: the company is incentivized to spread fear, uncertainty and doubt as to the strongly copylefted variant • The dual-licensed model is only possible with a strict copyright assignment to the commercial entity for all contributions • Copyright assignment is so fraught with peril that it is its own anti-pattern...
Anti-pattern: Demanding assignment • Need to be very careful about demanding assignment — it relies on a community trusting a commercial entity • Unfortunately, bad actors in open source (which is to say, Oracle) have forever shattered that trust • Corporate entities may (and indeed, should) have a contributor agreement to protect the source base from third-party claims of copyright and patent infringement • Copyright assignment still might make sense for established projects — but it should always be treated as a social contract • Be aware that copyright assignment will create a permanent asymmetry in the community!
Learning from anti-patterns • The anti-patterns shouldnʼt necessarily be treated as hard-and-fast rules — local conditions vary • In the illumos community, we are mindful of these anti- patterns — they have shaped who we are (and arenʼt!) • At Joyent, we avoid these anti-patterns in the open source projects that we lead: node.js and SmartOS • Open source is absolutely essential to our business — as consumer, contributor and innovator! • We are undoubtedly making mistakes — just hopefully new ones... • Come to my FISL talk in 2022 to learn about them!

More Related Content

[PHP 也有 Day #64] PHP 升級指南
PDF
[PHP 也有 Day #64] PHP 升級指南
Solid principles
PDF
Solid principles
Continuous integration using Jenkins and Sonar
PDF
Continuous integration using Jenkins and Sonar
Solid principles
PPTX
Solid principles
REST API and CRUD
PDF
REST API and CRUD
Trunk-Based Development
PDF
Trunk-Based Development
Practical Malware Analysis: Ch 8: Debugging
PDF
Practical Malware Analysis: Ch 8: Debugging
ASP.NET - Life cycle of asp
PPTX
ASP.NET - Life cycle of asp
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南
Solid principles
Solid principles
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and Sonar
Solid principles
Solid principles
REST API and CRUD
REST API and CRUD
Trunk-Based Development
Trunk-Based Development
Practical Malware Analysis: Ch 8: Debugging
Practical Malware Analysis: Ch 8: Debugging
ASP.NET - Life cycle of asp
ASP.NET - Life cycle of asp

What's hot

How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
PPTX
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
Default GitLab CI Pipeline - Auto DevOps
PDF
Default GitLab CI Pipeline - Auto DevOps
Bootiful Development with Spring Boot and React
PDF
Bootiful Development with Spring Boot and React
How to Automate API Testing
PDF
How to Automate API Testing
No Onions, No Tiers - An Introduction to Vertical Slice Architecture by Bill ...
PPTX
No Onions, No Tiers - An Introduction to Vertical Slice Architecture by Bill ...
CNIT 126 2: Malware Analysis in Virtual Machines & 3: Basic Dynamic Analysis
PDF
CNIT 126 2: Malware Analysis in Virtual Machines & 3: Basic Dynamic Analysis
Composer 從入門到實戰
PDF
Composer 從入門到實戰
Practical Malware Analysis: Ch 7: Analyzing Malicious Windows Programs
PPT
Practical Malware Analysis: Ch 7: Analyzing Malicious Windows Programs
Introduction to github slideshare
PPTX
Introduction to github slideshare
Spring boot jpa
PDF
Spring boot jpa
Practical Celery
PDF
Practical Celery
Linux basics
PPT
Linux basics
CQRS: Command/Query Responsibility Segregation
PPTX
CQRS: Command/Query Responsibility Segregation
PHP 語法基礎與物件導向
PDF
PHP 語法基礎與物件導向
How Developers and Quality Engineer Collaborate at Salesforce
PPTX
How Developers and Quality Engineer Collaborate at Salesforce
Refactoring
PDF
Refactoring
Comparison of SVN and Git
PDF
Comparison of SVN and Git
Unit Testing with Python
PPTX
Unit Testing with Python
Intégration continue et déploiement continue avec Jenkins
PDF
Intégration continue et déploiement continue avec Jenkins
Shell scripting
PDF
Shell scripting
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
Default GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOps
Bootiful Development with Spring Boot and React
Bootiful Development with Spring Boot and React
How to Automate API Testing
How to Automate API Testing
No Onions, No Tiers - An Introduction to Vertical Slice Architecture by Bill ...
No Onions, No Tiers - An Introduction to Vertical Slice Architecture by Bill ...
CNIT 126 2: Malware Analysis in Virtual Machines & 3: Basic Dynamic Analysis
CNIT 126 2: Malware Analysis in Virtual Machines & 3: Basic Dynamic Analysis
Composer 從入門到實戰
Composer 從入門到實戰
Practical Malware Analysis: Ch 7: Analyzing Malicious Windows Programs
Practical Malware Analysis: Ch 7: Analyzing Malicious Windows Programs
Introduction to github slideshare
Introduction to github slideshare
Spring boot jpa
Spring boot jpa
Practical Celery
Practical Celery
Linux basics
Linux basics
CQRS: Command/Query Responsibility Segregation
CQRS: Command/Query Responsibility Segregation
PHP 語法基礎與物件導向
PHP 語法基礎與物件導向
How Developers and Quality Engineer Collaborate at Salesforce
How Developers and Quality Engineer Collaborate at Salesforce
Refactoring
Refactoring
Comparison of SVN and Git
Comparison of SVN and Git
Unit Testing with Python
Unit Testing with Python
Intégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec Jenkins
Shell scripting
Shell scripting

Viewers also liked

Assholes are killing your project
ODP
Assholes are killing your project
The Hard Truths of Entrepreneurship
PPTX
The Hard Truths of Entrepreneurship
Detecting Corporate Fraud: Tips from a Crook and a Sleuth by Roddy Boyd and S...
PDF
Detecting Corporate Fraud: Tips from a Crook and a Sleuth by Roddy Boyd and S...
High Performance Systems in Go - GopherCon 2014
PDF
High Performance Systems in Go - GopherCon 2014
Database Scalability - The Shard Conflict
PPTX
Database Scalability - The Shard Conflict
Running Secure Server Software on Insecure Hardware Without Parachute
PDF
Running Secure Server Software on Insecure Hardware Without Parachute
Assholes are killing your project
Assholes are killing your project
The Hard Truths of Entrepreneurship
The Hard Truths of Entrepreneurship
Detecting Corporate Fraud: Tips from a Crook and a Sleuth by Roddy Boyd and S...
Detecting Corporate Fraud: Tips from a Crook and a Sleuth by Roddy Boyd and S...
High Performance Systems in Go - GopherCon 2014
High Performance Systems in Go - GopherCon 2014
Database Scalability - The Shard Conflict
Database Scalability - The Shard Conflict
Running Secure Server Software on Insecure Hardware Without Parachute
Running Secure Server Software on Insecure Hardware Without Parachute

Similar to Corporate Open Source Anti-patterns

Leaping the chasm from proprietary to open: A survivor's guide
PDF
Leaping the chasm from proprietary to open: A survivor's guide
Foss final seminar
PPTX
Foss final seminar
Practical Open Source Software for Libraries (part 1)
PDF
Practical Open Source Software for Libraries (part 1)
Open Source Licenses
PDF
Open Source Licenses
Intro to open_source
PDF
Intro to open_source
Open Source Software for Libraries
PDF
Open Source Software for Libraries
Corporate Open Source Anti-Patterns: A Decade Later
PPTX
Corporate Open Source Anti-Patterns: A Decade Later
Introduction to Open Source for Libraries
PDF
Introduction to Open Source for Libraries
Open Source & Open Development
PPT
Open Source & Open Development
Open Source: Freedom and Community
ODP
Open Source: Freedom and Community
Mis full
DOCX
Mis full
Foss final seminar
PPTX
Foss final seminar
Free Libre Open Source Software - Business aspects of software industry
PDF
Free Libre Open Source Software - Business aspects of software industry
Open source presentation_v03
PPTX
Open source presentation_v03
Providing Services to our Remote Users: Open Source Solutions
PDF
Providing Services to our Remote Users: Open Source Solutions
Open source ecosystem evolution open stack and kubernetes models
PDF
Open source ecosystem evolution open stack and kubernetes models
Open Source Technology for Libraries
PDF
Open Source Technology for Libraries
Open Source Trends and Why They Matter to Health Care
PPTX
Open Source Trends and Why They Matter to Health Care
Perspectives on Open
KEY
Perspectives on Open
Open Source In Education
PDF
Open Source In Education
Leaping the chasm from proprietary to open: A survivor's guide
Leaping the chasm from proprietary to open: A survivor's guide
Foss final seminar
Foss final seminar
Practical Open Source Software for Libraries (part 1)
Practical Open Source Software for Libraries (part 1)
Open Source Licenses
Open Source Licenses
Intro to open_source
Intro to open_source
Open Source Software for Libraries
Open Source Software for Libraries
Corporate Open Source Anti-Patterns: A Decade Later
Corporate Open Source Anti-Patterns: A Decade Later
Introduction to Open Source for Libraries
Introduction to Open Source for Libraries
Open Source & Open Development
Open Source & Open Development
Open Source: Freedom and Community
Open Source: Freedom and Community
Mis full
Mis full
Foss final seminar
Foss final seminar
Free Libre Open Source Software - Business aspects of software industry
Free Libre Open Source Software - Business aspects of software industry
Open source presentation_v03
Open source presentation_v03
Providing Services to our Remote Users: Open Source Solutions
Providing Services to our Remote Users: Open Source Solutions
Open source ecosystem evolution open stack and kubernetes models
Open source ecosystem evolution open stack and kubernetes models
Open Source Technology for Libraries
Open Source Technology for Libraries
Open Source Trends and Why They Matter to Health Care
Open Source Trends and Why They Matter to Health Care
Perspectives on Open
Perspectives on Open
Open Source In Education
Open Source In Education

More from bcantrill

Platform as reflection of values: Joyent, node.js, and beyond
PDF
Platform as reflection of values: Joyent, node.js, and beyond
Zebras all the way down: The engineering challenges of the data path
PDF
Zebras all the way down: The engineering challenges of the data path
Principles of Technology Leadership
PDF
Principles of Technology Leadership
Predicting the Present
PDF
Predicting the Present
Platform values, Rust, and the implications for system software
PDF
Platform values, Rust, and the implications for system software
Andreessen's Corollary: Ethical Dilemmas in Software Engineering
PDF
Andreessen's Corollary: Ethical Dilemmas in Software Engineering
Hardware/software Co-design: The Coming Golden Age
PDF
Hardware/software Co-design: The Coming Golden Age
Visualizing Systems with Statemaps
PDF
Visualizing Systems with Statemaps
dtrace.conf(16): DTrace state of the union
PDF
dtrace.conf(16): DTrace state of the union
Papers We Love: ARC after dark
PDF
Papers We Love: ARC after dark
The Coming Firmware Revolution
PDF
The Coming Firmware Revolution
Debugging under fire: Keeping your head when systems have lost their mind
PDF
Debugging under fire: Keeping your head when systems have lost their mind
Is it time to rewrite the operating system in Rust?
PDF
Is it time to rewrite the operating system in Rust?
Towards Holistic Systems
PDF
Towards Holistic Systems
I have come to bury the BIOS, not to open it: The need for holistic systems
PDF
I have come to bury the BIOS, not to open it: The need for holistic systems
Tockilator: Deducing Tock execution flows from Ibex Verilator traces
PDF
Tockilator: Deducing Tock execution flows from Ibex Verilator traces
Sharpening the Axe: The Primacy of Toolmaking
PDF
Sharpening the Axe: The Primacy of Toolmaking
The Hurricane's Butterfly: Debugging pathologically performing systems
PDF
The Hurricane's Butterfly: Debugging pathologically performing systems
No Moore Left to Give: Enterprise Computing After Moore's Law
PDF
No Moore Left to Give: Enterprise Computing After Moore's Law
Coming of Age: Developing young technologists without robbing them of their y...
PDF
Coming of Age: Developing young technologists without robbing them of their y...
Platform as reflection of values: Joyent, node.js, and beyond
Platform as reflection of values: Joyent, node.js, and beyond
Zebras all the way down: The engineering challenges of the data path
Zebras all the way down: The engineering challenges of the data path
Principles of Technology Leadership
Principles of Technology Leadership
Predicting the Present
Predicting the Present
Platform values, Rust, and the implications for system software
Platform values, Rust, and the implications for system software
Andreessen's Corollary: Ethical Dilemmas in Software Engineering
Andreessen's Corollary: Ethical Dilemmas in Software Engineering
Hardware/software Co-design: The Coming Golden Age
Hardware/software Co-design: The Coming Golden Age
Visualizing Systems with Statemaps
Visualizing Systems with Statemaps
dtrace.conf(16): DTrace state of the union
dtrace.conf(16): DTrace state of the union
Papers We Love: ARC after dark
Papers We Love: ARC after dark
The Coming Firmware Revolution
The Coming Firmware Revolution
Debugging under fire: Keeping your head when systems have lost their mind
Debugging under fire: Keeping your head when systems have lost their mind
Is it time to rewrite the operating system in Rust?
Is it time to rewrite the operating system in Rust?
Towards Holistic Systems
Towards Holistic Systems
I have come to bury the BIOS, not to open it: The need for holistic systems
I have come to bury the BIOS, not to open it: The need for holistic systems
Tockilator: Deducing Tock execution flows from Ibex Verilator traces
Tockilator: Deducing Tock execution flows from Ibex Verilator traces
Sharpening the Axe: The Primacy of Toolmaking
Sharpening the Axe: The Primacy of Toolmaking
The Hurricane's Butterfly: Debugging pathologically performing systems
The Hurricane's Butterfly: Debugging pathologically performing systems
No Moore Left to Give: Enterprise Computing After Moore's Law
No Moore Left to Give: Enterprise Computing After Moore's Law
Coming of Age: Developing young technologists without robbing them of their y...
Coming of Age: Developing young technologists without robbing them of their y...

Recently uploaded

AppSec Role Based Training OWASP Global AppSec USA 2025年11月06日
PPSX
AppSec Role Based Training OWASP Global AppSec USA 2025年11月06日
Enhancing Web Security: Key Concepts & Strategies.pptx
PPTX
Enhancing Web Security: Key Concepts & Strategies.pptx
Build Agentic AI Applications with Oracle AI Database Private Agent Factory
PDF
Build Agentic AI Applications with Oracle AI Database Private Agent Factory
#MakeAIMatter for HR Professionals | AI Transformation Workshop by Tekdi Tech...
PDF
#MakeAIMatter for HR Professionals | AI Transformation Workshop by Tekdi Tech...
Governance, Deployment & Methodologies for Agentic Automation [2/3]
PPTX
Governance, Deployment & Methodologies for Agentic Automation [2/3]
UiPath Veterans Day Acknowledgement and Benefits
PDF
UiPath Veterans Day Acknowledgement and Benefits
Unveiling the Basics of Agentic AI - OSUG Mumbai
PDF
Unveiling the Basics of Agentic AI - OSUG Mumbai
Open Source SecurityCon 2025 in Atlanta - Transparency Exchange API: Where To...
PDF
Open Source SecurityCon 2025 in Atlanta - Transparency Exchange API: Where To...
Career Blueprint - Future Career Vision & Success Stories - 2025 - Part 1
PPTX
Career Blueprint - Future Career Vision & Success Stories - 2025 - Part 1
Getting started with Agent Framework.pdf
PDF
Getting started with Agent Framework.pdf
What's Driving Growth in the Video Surveillance Market 2025?
PDF
What's Driving Growth in the Video Surveillance Market 2025?
ENTSO-E's Response to the European Commission Call for Evidence on the Strate...
PDF
ENTSO-E's Response to the European Commission Call for Evidence on the Strate...
Upskill to Agentic Automation - Accelerating Your Job Search using AI
PDF
Upskill to Agentic Automation - Accelerating Your Job Search using AI
Tune System Performance - RHCSA (RH134).pdf
PDF
Tune System Performance - RHCSA (RH134).pdf
Reset RHEL Root User Password - RHCSA.pdf
PDF
Reset RHEL Root User Password - RHCSA.pdf
Manage Networking in RHEL - RHCSA (RH124).pdf
PDF
Manage Networking in RHEL - RHCSA (RH124).pdf
Schedule Future Tasks - RHCSA (RH134).pdf
PDF
Schedule Future Tasks - RHCSA (RH134).pdf
"Visual Guide to DSA: Big O Notation, Data Structures, and Algorithms Fundame...
PDF
"Visual Guide to DSA: Big O Notation, Data Structures, and Algorithms Fundame...
Webinar: Introduction to LF Energy SEAPATH
PDF
Webinar: Introduction to LF Energy SEAPATH
Explaining ourselves – people, computers and AI
PPTX
Explaining ourselves – people, computers and AI
AppSec Role Based Training OWASP Global AppSec USA 2025年11月06日
AppSec Role Based Training OWASP Global AppSec USA 2025年11月06日
Enhancing Web Security: Key Concepts & Strategies.pptx
Enhancing Web Security: Key Concepts & Strategies.pptx
Build Agentic AI Applications with Oracle AI Database Private Agent Factory
Build Agentic AI Applications with Oracle AI Database Private Agent Factory
#MakeAIMatter for HR Professionals | AI Transformation Workshop by Tekdi Tech...
#MakeAIMatter for HR Professionals | AI Transformation Workshop by Tekdi Tech...
Governance, Deployment & Methodologies for Agentic Automation [2/3]
Governance, Deployment & Methodologies for Agentic Automation [2/3]
UiPath Veterans Day Acknowledgement and Benefits
UiPath Veterans Day Acknowledgement and Benefits
Unveiling the Basics of Agentic AI - OSUG Mumbai
Unveiling the Basics of Agentic AI - OSUG Mumbai
Open Source SecurityCon 2025 in Atlanta - Transparency Exchange API: Where To...
Open Source SecurityCon 2025 in Atlanta - Transparency Exchange API: Where To...
Career Blueprint - Future Career Vision & Success Stories - 2025 - Part 1
Career Blueprint - Future Career Vision & Success Stories - 2025 - Part 1
Getting started with Agent Framework.pdf
Getting started with Agent Framework.pdf
What's Driving Growth in the Video Surveillance Market 2025?
What's Driving Growth in the Video Surveillance Market 2025?
ENTSO-E's Response to the European Commission Call for Evidence on the Strate...
ENTSO-E's Response to the European Commission Call for Evidence on the Strate...
Upskill to Agentic Automation - Accelerating Your Job Search using AI
Upskill to Agentic Automation - Accelerating Your Job Search using AI
Tune System Performance - RHCSA (RH134).pdf
Tune System Performance - RHCSA (RH134).pdf
Reset RHEL Root User Password - RHCSA.pdf
Reset RHEL Root User Password - RHCSA.pdf
Manage Networking in RHEL - RHCSA (RH124).pdf
Manage Networking in RHEL - RHCSA (RH124).pdf
Schedule Future Tasks - RHCSA (RH134).pdf
Schedule Future Tasks - RHCSA (RH134).pdf
"Visual Guide to DSA: Big O Notation, Data Structures, and Algorithms Fundame...
"Visual Guide to DSA: Big O Notation, Data Structures, and Algorithms Fundame...
Webinar: Introduction to LF Energy SEAPATH
Webinar: Introduction to LF Energy SEAPATH
Explaining ourselves – people, computers and AI
Explaining ourselves – people, computers and AI

Corporate Open Source Anti-patterns

  • 1.
    Corporate Open Source Anti-Patterns: Doing It Wrong Bryan Cantrill VP, Engineering bryan@joyent.com @bcantrill
  • 2.
    Open source: A commercial history • In the beginning, there was nothing but source code • Starting in 1983, IBM led the move to proprietary enterprise software with its "object-only" model • The 1980s and 1990s saw a boom in proprietary software centered on the PC — with Microsoft as its spiritual and commercial leader • By the late 1990s, proprietary software gave rise to monopolistic behavior ("vendor lock-in"); open source became commercially attractive despite its shortcomings • Open source started with infrastructure software: languages/runtimes (Perl, Python), OSs (Linux, BSD), DBs (MySQL, Postgres) and web servers (Apache)
  • 3.
    Open source in the 2000s • It became acceptable (and then, with the Dot Com Bust, required) to use open source wherever reasonable • Companies would occasionally contribute their changes back to the open source software they used, but rarely did they open the software they themselves invented • The counterexamples were in domains in which open source became a hard requirement, e.g. operating systems and language runtimes • Alone among the proprietary Unix vendors, Sun elected to take the arduous path of open sourcing its operating system to assure its vitality...
  • 4.
    Aside: The birth of OpenSolaris • Sun open sourced Solaris (OpenSolaris) under a weak copyleft (CDDL) in 2005, starting with DTrace • The OS was developed henceforth in the open, making it one of the largest and most important bodies of software to leap the chasm from proprietary to open • While Sun did some things right, lots of things were done wrong; by the time Oracle bought Sun in 2010, the community was rudderless and adrift • It became quickly clear that Oracle had absolutely no interest in the OpenSolaris community — or in open source for that matter
  • 5.
    Aside: The sad death of OpenSolaris • On Friday, August 13th, 2010, an internal memo was circulated by the putative Solaris leadership at Oracle: We will distribute updates to approved CDDL or other open source-licensed code following full releases of our enterprise Solaris operating system. In this manner, new technology innovations will show up in our releases before anywhere else. We will no longer distribute source code for the entirety of the Solaris operating system in real-time while it is developed, on a nightly basis. • Oracleʼs depraved act — closing an open system — greatly alienated the community and accelerated a Solaris diaspora that was already underway • Fortunately, the source was still out there...
  • 6.
    Aside: The rise of illumos • A new community rose from the ashes of OpenSolaris, and exercised open sourceʼs most important right: the right to fork • Dubbed "illumos" (from illuminare, Latin for illuminate) and made available in August, 2010 • Essentially all of the Solaris diaspora landed in illumos, including the core of key technologies like ZFS, DTrace, zones and networking virtualization • Two years later, illumos is thriving with an established track record of innovation, a healthy community, and multiple distributions (e.g., OmniOS, Joyentʼs SmartOS) • See http://illumos.org and http://smartos.org — or search for "fork yeah illumos" for the full story
  • 7.
    OpenSolaris as object lesson? • The saga of Solaris/OpenSolaris/illumos contains many lessons about both the power of open source and of the challenges of moving from proprietary to open • It seems that some of the mistakes that Sun made with OpenSolaris have been (or are being) made by other companies with other systems • It is clear that these mistakes are often born of good intentions — they are not errors, they are anti-patterns • By studying the corporate open source anti-patterns, we can try to learn what not to do
  • 8.
    Anti-pattern: Inverted thinking • Itʼs very tempting (and natural) to think of open source in terms of: What will this buy me? • This is the wrong way to frame the problem: the benefits of open source are often secondary and tertiary • Should be framed instead as: What does this cost me? • Reminder: software costs nothing to manufacture; making it available to everyone via its source code has no marginal cost! • The only cost can be from someone who would have paid you, but will instead take the source and productize, operationalize and support it on their own
  • 9.
    Anti-pattern: Wishful thinking • People who would take your software and do everything else on their own werenʼt going to pay you anyway • The choice is not if they pay you or not (no one is getting paid), but rather if they run your software or not • Internalizing this as the choice allows one to focus on those secondary and tertiary benefits of open source: • For most bodies of software, there is marginal gain to have more people running it (e.g., bug fixes, support of esoteric platforms, etc.) • For most bodies of software, there are non-linear network effects — in proportion to the API surface area
  • 10.
    Anti-pattern: No source! • An amazing number of corporate open source efforts are announced without source code! • For example, HP and the loud announcement of their "intent" to open source webOS in December 2011 — still not available as of July 2012 (& the team has since quit) • This is a mistake so stupid, it can only be due to open source being an entirely non-technical decision — it reeks of emphasizing perception over reality • Donʼt do this — you gain nothing (duh!) and you lose credibility (perhaps forever) • In the words of Bob the Angry Flower, "This one is stupidly simple, people!"
  • 11.
    Anti-pattern: Forkaphobia • When software is large and complicated, one is naturally afraid of a communityʼs efforts being divided by a fork • But there is a forking paradox: the easier it is to fork the software, the more difficult it is to fork the community • If forking is easy, experimentation with ideas can be pursued while still remaining safely downstream • But if forking is difficult, experimenters are reduced to dissenters — resulting in endless arguments (best case) or divorce (worst case) • Corporate entities must therefore encourage forking — open source that cannot be forked has no vitality
  • 12.
    Anti-pattern: Governance orgy • Forkaphobia is such a destructive anti-pattern that it breeds its own anti-patterns: if and where forking is technically difficult, the community is forced to "agree" • Of course, people donʼt actually agree — so systems of governance are established to determine a groupʼs will • This gives rise to a focus on governance (constitutions & elections) grossly out of proportion with any project • Further, elections have two corrosive side-effects: politics and losers — both of which factionalize and undermine community • If corporations are not forkaphobic, they are much less likely to engage in a governance orgy
  • 13.
    Anti-pattern: Ersatz democracy • When corporate entities are contemplating open source, itʼs much easier to establish governance than it is to actually respect that governance • The only thing worse than paralyzed and metastasized democracy is ersatz and farcical democracy • Democracy is not an implication of open source; no corporate entity should feel an obligation to create a democracy that it in fact has no intention of observing!
  • 14.
    Anti-pattern: Eschewing leadership • Good open source projects have good leadership! • Consensus is great when you have it, but you need leadership when you donʼt • Corporate entities shouldnʼt fear exerting leadership on projects that their engineers themselves conceived • Like any good leadership, it should be exerted in a transparent and inclusive way — the "B" in BDFL • The challenge for corporations is that they must give visibility to the employees that are the technical leaders • This requires corporations to fully internalize the truism that organizations donʼt innovate — people do
  • 15.
    Anti-pattern: Eschewing ownership • It has become fashionable for corporations to open source software by giving it to a foundation • Even though it is not technically the case, this says that the software is, in fact, worth nothing • It sends the message that the company is stepping away from the technology and leaving it for dead • Foundations are not simple: if they are to be tax exempt, they need independent directors and capital • To give software to a foundation one is required by law (in the US, anyway) to eschew leadership
  • 16.
    Anti-pattern: Competitive paranoia • Very common to believe that your competitor canʼt wait for you to open source your stuff so they can rip it off • Newsflash: your competitor thinks youʼre a jackass • Of course, itʼs your competitor thatʼs the jackass — thatʼs why they think youʼre a jackass! • (If you donʼt believe this, go work for your competitor) • Paradoxically, not-invented-here (NIH) is much stronger than the will to survive — companies will gladly go out of business before they adopt their rivalʼs advances • The companies that adopt your technology are nearly tautologically not your competitors...
  • 17.
    Anti-pattern: Anti-collaborative licensing • One way to address competitive paranoia is to use a strong copyleft license that takes either a broad (GPLv2) or absurdly broad (AGPL) definition of derived work • Strong copyleft was an interesting experiment (and arguably essential to the proliferation of open source), but it has generally outlived its usefulness • Strong copyleft excludes competitors — but also collaborators: today, strong copyleft prevents cross- pollination across open source code bases! • For example, GPLv2 has prevented the integration of open source technologies like DTrace and ZFS in Linux • Was it the intent of those who licensed their work under GPLv2 to erect walls within open source software?
  • 18.
    Anti-pattern: Anti-collaborative licensing • Many have decided that this is not, in fact, their intent; the GPLv2 is in decline relative to MIT/Apache/BSD: • And since this analysis, the decline has accelerated: GPLv2 is now at 36.32% as of the end of June 2012
  • 19.
    Anti-pattern: Anti-collaborative licensing • The 50 most watched Github projects shows a more acute decline in the GPL relative to MIT/BSD/Apache: MIT/BSD/Apache GPL AGPL Public domain None MIT+GPL dual Source: http://ostatic.com/blog/the-top-licenses-on-github • If you want a collaborative copyleft license, consider a weak copyleft like MPL v2.0 (GPLv3 compatible!)
  • 20.
    Anti-pattern: Dual-licensing for profit • Some have opted for a dual-licensed model in which the software is available either for free under a strong copyleft license or for a fee under a proprietary license • This encourages bad behavior by the commercial entity: the company is incentivized to spread fear, uncertainty and doubt as to the strongly copylefted variant • The dual-licensed model is only possible with a strict copyright assignment to the commercial entity for all contributions • Copyright assignment is so fraught with peril that it is its own anti-pattern...
  • 21.
    Anti-pattern: Demanding assignment • Need to be very careful about demanding assignment — it relies on a community trusting a commercial entity • Unfortunately, bad actors in open source (which is to say, Oracle) have forever shattered that trust • Corporate entities may (and indeed, should) have a contributor agreement to protect the source base from third-party claims of copyright and patent infringement • Copyright assignment still might make sense for established projects — but it should always be treated as a social contract • Be aware that copyright assignment will create a permanent asymmetry in the community!
  • 22.
    Learning from anti-patterns • The anti-patterns shouldnʼt necessarily be treated as hard-and-fast rules — local conditions vary • In the illumos community, we are mindful of these anti- patterns — they have shaped who we are (and arenʼt!) • At Joyent, we avoid these anti-patterns in the open source projects that we lead: node.js and SmartOS • Open source is absolutely essential to our business — as consumer, contributor and innovator! • We are undoubtedly making mistakes — just hopefully new ones... • Come to my FISL talk in 2022 to learn about them!

AltStyle によって変換されたページ (->オリジナル) /