Corporate Open Source Anti-Patterns
notes date: 2018-10-23
source links:
source date: 2012-07-26
- Starts very similar to “Leaping the Chasm from Proprietary to Open: A Survivor’s Guide”
- Oracle had no interest in OpenSolaris
“I think actually kinda the root difference is that Sun was born a competitor, and Sun really wanted to compete. Sun, you may or may not remember, was the company that not only developed NFS, but ported it to its competitors' platforms to level the playing field. Not only did it develop Java but supported Java on other platforms, to level the playing field. Oracle is not interested in competition – no offense to Oracle. Oracle is interested in domination. Oracle is interested in having natural monopolies of software and then juicing those monopolies as much as possible.”
- “If you look down the line at the open-source projects that Oracle has inherited, down the line they have butchered each one. Or asphyxiated each one. MySQL, Java, OpenSolaris, Jenkins, and so on.”
- Anti-Pattern: Inverted Thinking
- “What will [open-sourcing this] buy me” is the wrong framing
- Ask instead, “What will this cost me”
- “Here’s the deal about software. And here’s what separates software from everything else that has ever been produced. Software is both machine and information. It has the properties of both. That is the essential duality of software. Is that it looks, feels, and smells like a machine, with moving parts. But when it comes to actually producing it, it’s like information, it flows like information. Wow. Wow. That means that the cost of producing software is zero. There’s no manufacturing line for your software. There’s a download link. Maybe it’s bandwidth, but it’s very hard to even see that in all the noise of, y’know, cat videos and everything else. The cost of producing software is zero. That’s amazing. That’s not true of anything else that we really do, that the cost is zero. Now obviously, there’s a huge fixed cost to develop it upfront. But that marginal cost is zero.”
- Anti-pattern: Wishful Thinking
- The people that took your software and did everything else on their own weren’t going to pay you anyway.
- Those people will either run your software or your competitors'
- After you internalize that, think in terms of secondary/tertiary benefits
- marginal gain for a higher install base (testing on esoteric platforms, bugfixes, etc)
- if you have an API, you get non-linear benefits (can the API user become a lead for support contracts?)
- Anti-pattern: Open sourcing before you have the source
- “Your press release to open source something only needs to be a link to the repository, that’s it.”
- HP announcing in December 2011 intent to open source WebOS in September 2012, and that time gap lost them credibility (“you could find that you have a legal agreement that you can’t go renegotiate on your proprietary software”)
- “Now HP has long been known in Silicon Valley as the company that would market sushi as cold, dead fish.”
- Anti-pattern: Forkaphobia
- Forking paradox: the easier it is to fork the software, the more difficult it is to fork the community
- If forking is easy, experiments can be pursued safely downstream
- If forking is difficult, experimenters are reduced to dissenters, giving outcomes ranging from arguments (bad) to divorces (horrible)
- Forking paradox: the easier it is to fork the software, the more difficult it is to fork the community
- Anti-pattern: Governance Orgy
- if and where forking is technically difficult, the community is forced to “agree”; that requires establishing strict governance to unambiguously determine the group’s will.
- This gives rise to a focus on governance (constitutions & elections) grossly out of proportion with any project
- Elections have two corrosive side-effects: politics and losers
- “Losers, by the way, are not psyched. If you have someone who stood for election in your community, put yourselves out there, and has been told by the community, ‘actually, sit down’. It’s like, does that feel good? No! That feels like crap. You want to leave.”
- Anti-pattern: Ersatz democracy
- No corporate entity should feel an obligation to create a democracy that it in fact has no intention of observing.
- Anti-pattern: Eschewing leadership
- Consensus is great when you have it, but you need leadership when you don’t
- The challenges for corporations is that they must give visibility to the employees that are the technical leaders. To do so, they must internalized that organizations don’t innovate, people do.
- “You don’t have an innovative organization. You have an organization that fosters innovative people. It is people that innovate. And your innovation walks out the door every night. And if you turn into a jerk, the way Oracle did, your innovation doesn’t come back in the next day.”
- Anti-pattern: Eschewing ownership
- Giving software to a foundation (a 501c3) is not actually simple.
- The board of directors has to be independent, and it has to be capitalized independently, because the IRS doesn’t want you to have a vehicle to evade taxes.
- Anti-pattern: Competitive paranoia
- “Newsflash! Your competitor thinks you’re an idiot, by the way. But the reason thinks you’re an idiot is because they’re an idiot. That’s why they think that, of course they think that! Of course those idiots think I’m an idiot! They always think idiot things like that!”
- NIH syndrome is so profound that your competitor will go out of business before they take your innovation, where you truly compete.
- Anti-pattern: Anti-collaborative licensing
- One idea to avoid competitive paranoia is to use a strong copyleft license that takes a broad (GPLv2) or absurdly broad (AGPL) definition of derived work (i.e., “if you take this body and combine it with something else, the combined, derived work must be under this license, this very expansive license. This has been called toxic, or viral.")
- Strong copyleft excludes collaborators as much as competitors (preventing cross-pollination between open source codebases)
- e.g., GPLv2 preventing integration of DTrace and ZFS into Linux
- Anti-pattern: Dual-licensing for profit
- “I’m gonna take the exact same software, and I’m gonna open source a version that’s got the GPL on it, and then I will sell you same software, my proprietary license.”
- The company is incentivized to spread FUD about the strongly copylefted variant
- Anti-pattern: Demanding assignment
- Asking a community to trust a commercial entity is bad given many precedents from bad actors
- Corporate entities should have a contributor agreement to protect the source base from third-party claims of copyright and patent infringement.
- It may make sense for some established projects, but creates a permanent asymmetry in the community and should be treated as a strict social contract.
- Lessons from the anti-patterns
- “Don’t treat these as hard and fast rules. Your conditions are going to vary. Trust your gut. Trust your market. Trust your customers. Don’t feel that–you’re not doing open source for anyone that’s kind of in the broader world. You’re not doing it for a news story. You’re doing it for your software. You’re doing it for your engineers. You’re doing it for your customers. You’re doing it for the vitality of the innovation that you have.”