Save Open Source, Save the World

Following up on “Why Open Source Failed

Open Source Man Saves the Day

After I enumerated all the ways that open source has aided and abetted our current dystopian reality by helping to redistribute wealth upwards, I’m now going to identify ways we can arrest this corrosive element of high tech and hopefully become part of a solution rather than a continuation of the problem. Since I painted the problems inherent in open source ecosystems as a microcosm of the rest of the world, I’ll do the same with the solutions. After all, if we are to save the world, I think saving open source is a necessary prelude, and I’ll explain why later in this essay.

After publishing “Why Open Source Failed”, the tone and tenor of my essay took a very different turn when first Redis Labs and then MongoDB decided to change the terms of their software licensing to reduce the number of free users and increase their revenue. And by “free users” I refer of course to public cloud providers who were directly named as inspirations for these changes. Each company directly blamed Amazon for their actions. Imagine my surprise when much of the same language from “Open Source Failed” was used to justify these changes. For the record, I never intended my essay to become a rallying cry for venture-funded startups who have never really learned how to apply the lessons of building a business on open source. The actions taken by both companies seemed to me short-sighted and without clear goals, although I can understand the desire to switch things up in the hopes of landing more revenue. That said, there is a very big stinky hole in the world of open source software: how companies take advantage of collaboratively developed software to increase their share of profits. It needs to be addressed, but note that I never claimed “open source is terrible so we shouldn’t use it.” My article was really meant to be the beginning of a longer conversation about how we improve the outcomes of open source development.

First, let’s restate the problem:

open source software is used by large tech companies to concentrate wealth and power

As Shane Curcuru and Simon Phipps astutely point out, this phenomenon is baked into the open source definition:

So what, then, is the solution?

Beware of Purveyors of Bad Faith

One thing to be wary of is that venture-backed startups are probably no more credible on matters of open source than large cloud providers. Both of them have obvious conflicts of interest:

  • Cloud providers want free stuff so they can build their business more cheaply without paying anyone. Therefore, it’s in their interest to take the “Monty Burns Omni-Net” approach to software acquisition.
  • Venture-backed startups want, ney *need*, massive ROI to justify their investment and vastly inflated market evaluations. Of course they will want to construct pipelines for direct revenue.

Large cloud providers want us to believe that they cannot exist in a world where they pay for software. I reject that premise, especially when the largest cloud service providers count money in the hundreds of billions of dollars. Whereas venture-backed startups believe it is their God-given right to directly monetize their communities, despite my attempts over the years to show them a better way to develop successful products and solutions.

The commons clause and tighter restrictions on existing licenses are the answers so far from some startups. Cloud providers, naturally, hate both of these, because they’ve been able to use (some would say “exploit”), free of charge, other people’s contributions to their business model. That is not a reason to side with or against either approach. In short, I don’t believe that either camp really cares one way or the other about the long-term viability of open source ecosystems. Both wear blinders, although in different ways, by their core business drivers: increase profits and decrease expenses. Therefore, I cannot accept their respective premises at face value. We must take a step back and consider the issues holistically.

I must be careful when tossing around words like “bad faith”. Surely, many people on all sides of this debate come by their opinions honestly. But just as we’ve seen in political lobbying, constant interaction with bad faith actors will influence and skew your outlook, regardless of your original intent.

Why the Commons Clause is not a Viable Solution

Before I go into my ultimate solution, allow me to first delve into the Commons Clause and why I don’t believe it or actions like it are a viable long-term solution to the core issues. For the sake of argument, I’m going to lump in efforts like Mongo’s Server Side Public License and the Confluent Community License, even though the mechanisms are different. The end result is similar in that these efforts eschew the existing open source definition and rules and go fully into a freemium, proprietary model. This is not necessarily bad, per se, but it strikes me as a step backwards.

Because I wrote that open source failed, you may expect me to be in agreement with ideas like the commons clause precisely because it breaks the open source definition. But that detracts from what is successful about open source. I want to improve the distribution and sustainability of open source, not blow it up entirely. Because open source is a well known and successful phenomenon, its rules and definitions have become well-known, identifiable, and help to simplify the process of conducting software business. Collaborative open source development has become the lingua franca for engaging in anything meaningful with a software ecosystem. As I have pointed out, this success is both a blessing and a curse. It’s great that I can play by well-understood rules which allow me to conduct or build a business more quickly; it’s not so great that those with more resources than me can derive more benefit from my work without paying me and possibly squeeze my business out of the market.

By embracing the commons clause, you would basically be drawing explicit guard rails around your software. Again, this is not self-evidently bad. After all, businesses do this all the time with all of their products — they create or otherwise benefit from some type of scarcity, and then fill that gap with a solution that they charge money for. However, when you claim that your software is “just Apache-licensed software with the commons clause added” you’re muddying the waters. The success of open source ecosystems depends on all players understanding the rules, from the single developer or user to companies that use, extend or build software projects. Incidentally, the idea that you can license software such that you explicitly prohibit commercial downstream use has a long and well-known history: it’s called shareware, and it is a proven model for single developers to recoup costs on small projects. That is a good thing. But the reason it never became the model for extensive software ecosystems is precisely because commercial usage was prohibited without paying the original developer. Much like its open core cousins, shareware is a great way to both extract a limited amount of revenue and set boundaries on how large your project can grow. For infrastructure software that forms the basis for platforms needed to build other products, something like the commons clause — or any kind of shareware — would be unsustainable. It would prevent the downstream commercialization needed to fuel further development. If you have a monopoly on commercialization, you’re preventing one of the great drivers of collaborative development: good, old-fashioned greed. I know it’s unfashionable in 2018 to claim that greed is good, but greed can be used as fuel for good things — if managed properly.

If you want to create proprietary software that you charge money for, then great. You should do that. But don’t confuse your customers and the larger market by claiming that it’s really just like open source, except better. Adding the commons clause makes it explicitly not open source. Which is fine — just don’t claim otherwise. I understand why a business would want to add downstream riders to software to prevent unauthorized commercial usage. I am not opposed to it as a practice. I *am* opposed to someone claiming it’s open source, when it’s not. By all means, build all the proprietary software you want. Nobody’s stopping you. I just can’t help but notice that commons clause and SSPL aficionados are trying to have it both ways: deriving the benefits of open source collaboration while preventing others from deriving those same benefits. That is why I often describe these as bad-faith efforts.

I do have to applaud Confluent for being more honest than the others, but I would still advise them from a business point of view to create a better model to derive benefits from open source development. A few years ago, I gave a talk entitled “It Was Never About Innovation” in which I pointed out that innovation may not have been the point of open source collaboration, but it was a happy accident, a beneficial side effect of an open collaborative process with well-understood rules that everyone plays by. I still believe that, and I still believe that many companies don’t understand how to create environments beneficial to themselves and their communities, which is why they continue to repeat the same mistakes.

Ok, then what can we do?

If the open source process is inherently unfair, and commons clause-esque efforts are not the answer, then what is? I truly believe that the issues inherent in open source collaborative systems are a microcosm for society’s larger ills. Thus the the title of this essay, “Save Open Source, Save the World.” And by saying that, I’m making a full-throated defense of capitalism itself as something that needs saving. If we can solve the open source problems, I think it would shed light on other, large-scale problems. I believe this to be true because the world runs on open source software. Mitigating the unfairness in open source development would necessarily lead to less inequality in general, and it would provide a blueprint for solutions to other problems.

I think the main clue for what to do next comes from the Ford Foundation report “Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure.” In it, Nadia Eghbal argues that open source should be treated as core infrastructure for modern industrialized economies. Taken to its logical conclusion, this would mean more prescriptive regulatory powers by the government. This would mean ensuring access to digital assets and broadband, regardless of income or location. It would mean lots of changes, many of them deeply unpopular with a large portion of open source proponents, who cling to their techno-libertarian roots despite evidence that this approach is destructive.

I know that at least some community actors would prefer a community-centric approach to sustainability, but I think this carries significant limitations and would not ultimately lead to the desired result. My reason for this skepticism is fairly simple: there is no downside to those who choose not to comply. Just as the AGPL has failed to rein in cloud providers, any community-based approach would likely fail due to the fact that its aims run counter to the quarterly financial goals that these companies religiously adhere to. I greatly admire anyone who’s willing to list all the logical reasons why companies should invest in the sustainability of open source ecosystems, but I’m not hopeful that any modern company can see the utility in investing for the greater good if there’s no direct measurable relationship between that and its pursuit of higher profits. In order to invest in this sustainability, modern conglomerates must be able to see a world that’s greater than their immediate reach, and that is simply not the case in 2018. If these companies can’t even invest significant sums in combating climate change — something that *does* have a direct measurable impact on its future profits —what makes you think they will care about the sustainability of open source projects and communities?

The Intrinsic Link Between Monopoly and Open Source

Beginning in the late 20th century, the United States government took a hands off approach to monopolistic companies and regulatory powers in general. Mergers and acquisitions were encouraged by relaxed FTC and SEC policies beginning in the early 1980s, and with one notable exception, anti-trust actions have not been taken despite the emergence of several large, dominant technology companies. This general trend towards larger conglomerates and mega-mergers ultimately ends up with what we have today: the great sort of talent towards a few specific companies and a few specific geographic locations. This general trend, coupled with the newfound powers of the internet, accelerated what had already taken root. The internet, in turn, spawned accelerated another trend, that of collaborative software development, which further accelerated the already in-process trends towards consolidation. Open source as a child of the internet has been explored many times in the past, but open source as a child of monopolies has not been explicitly linked. In this view, large companies use open source development as a means to increase their already significant presence in strategic areas of technology. For these companies, investing in open source development is a strategic decision designed to suffocate competitors and reward partners.

Without open source development, one could argue that monopolistic practices would slow down. This is a frightening thought for those of us who have lived in and advocated for open source collaboration for decades. This is not in itself a reason to abandon open source principles, but rather that we return to previous eras reliance on antitrust rules and regulations. In the modern era, any such return to regulation would necessarily need to take open source collaboration into account. As much as it has been an accelerator of monopolistic behavior, it could just as easily be used as a deterrent, without turning to blunt instruments such as the Commons Clause. There is a way to double down on the principles of collaborative development without contributing to the continuing slide into industry consolidation and monopolistic practices.

You May Not Like the Solution

In 2018, we have the worst of all worlds. We have shared development of core systems and infrastructure, the fruits of which are then used to create proprietary systems that give first movers an almost insurmountable advantage. I always thought this was a perversion of the Open Source / Free Software ethos. From cloud platforms to proprietary software companies that embed open source software, open source development is used to provide oxygen to many proprietary business models. There is no community-based model that is going to prevent this. Relying on the “free market” to push development to be more collaborative will simply not work. At best, we’ll get what we have now: open source infrastructure embedded in proprietary products and services. The human impulse to declare scarcity in order to reap monetary rewards is simply too strong to overcome with a community policing effort.

The obvious answer, as I see it, is to start mandating the implementation of open source practices and open standards in ways that blunt the ability of companies to strangle entire market segments. Back when Microsoft was under antitrust investigation, there were many proposed solutions, from breaking up the company to mandating the open sourcing of many areas of the Windows stack that would facilitate collaboration and dissuade monopolistic practices. As such, one interesting tactic never taken by government regulators would have been to enforce the mandated use of open standards and open source competitors. In fact, if government IT mandated that all solutions must have open source competitors, that alone would significantly change the technology industry. Taken a step further, if government agencies mandated the implementation of open cloud principles, along with better privacy policies, it could force today’s cloud giants to play by more equitable rules. Imagine what would happen if government cloud engagements required the ability to “hot swap” workloads to different cloud providers, including on-premises OpenStack services. Imagine if ever government cloud contract required the availability of open source reference implementations. And imagine federal regulations that prevented the selling of our data, even in aggregate, or the tracking of users for the purpose of collecting data. Do we really need ads for toasters after we purchase toasters, for example? And imagine if every dollar of government spending in technology research or product development required the resulting innovations to be available under copyleft licensing. Imagine also the eradication of software patents and the reform of copyright regulations.

Adding up these requirements and reforms in total would have the effect of limiting monopolization of resources, producing a more fair and equitable technology world. At the same time, it would result in a massive investment in open source communities that could benefit everyone and would provide the innovation behind a commercial boom. In this scenario, a more diverse set of developers would be funded to innovate without providing free labor for monopolistic companies. It wouldn’t end open source, but it would allow the original open source and free software vision to thrive and prosper.

Foundations and Sustainability

In order to make sure that everyone gets paid fairly, I see a role for organizations that have already become an important part of the open source fabric: technology foundations and trade associations. In addition to the regulations listed above, imagine if technology companies beyond a certain size and federally funded research universities were required to underwrite grants designed to fund open source development. Foundations provide a well-understood means for distributing those grants to those most in need or move deserving. Because these non-profit organizations are already funding a large portion of software development, they are best equipped to develop reasonable criteria for distribution.

And yet open source developers and advocates have a deep mistrust of foundations as well as government regulations. Just like workers who resist unionization because of its perceived de-emphasis of individual achievement. so too do open source advocates irrationally resist the efforts to lobby and vote for stronger government regulation or grant more power to foundations that could shift the balance of power in a positive direction. The fear is that giving too much power to either of these entities could result in corruption and abuse of power, which are valid fears. However, when viewed in the context of other threats, the risk of abuse of power from international conglomerates greatly outweighs that from foundations. And yet developers, who notoriously undervalue contributions that are not in the form of code, continue to undervalue the contributions made by foundations.

Yes, some foundations are accruing a fair bit of power, and yes, there is the potential for abuse. But just like unions became corrupt entities as they grew, they continued to fulfill a very important function for workers. At least with foundations we have mechanisms to address power structure inequity, whereas with international conglomerates we have no such means for redress. Any large organization carries with it the capacity for corruption, but we can use the pathways created within that structure to lobby on behalf of open source sustainability. Good luck on doing that with Facebook. In a best case scenario, the Sustainable Free and Open Source Community would join with the Apache Software Foundation, the Linux Foundation, and the Software Freedom Conservancy to move things in the right direction.

Even if that union were to happen — and let’s be honest, it likely won’t — there would still be a lack of leverage without the government actions mentioned above. It will take both: a change in government regulation combined with a monumental community effort.

No solution is perfect, of course. The scenarios I sketched out above will seem onerous to some and too cumbersome, and many will prefer a community-based approach combined with free market principles. However, I think history shows us that this approach is simply inadequate to achieve the type of equitable distribution of wealth and opportunity in a sustainable fashion. The rise of open source is inextricably linked with the rise of inequality and the excesses of modern capitalism. If we’re able to solve this in terms of open source sustainability, we will have provided a blueprint for solving capitalism’s inequality crisis and saving society itself. In conclusion, open source may have been part of the problem, but it should absolutely be part of the solution.

Recovering evangelical. Long essays on politics, society, tech, and the intersection thereof.