{"id":8327,"date":"2019-01-18T20:51:22","date_gmt":"2019-01-18T20:51:22","guid":{"rendered":"https:\/\/www.appservgrid.com\/paw92\/?p=8327"},"modified":"2019-03-08T23:45:08","modified_gmt":"2019-03-08T23:45:08","slug":"some-thoughts-on-open-core","status":"publish","type":"post","link":"https:\/\/www.appservgrid.com\/paw92\/index.php\/2019\/01\/18\/some-thoughts-on-open-core\/","title":{"rendered":"Some Thoughts on Open Core"},"content":{"rendered":"<p><em>Why open core software is bad for the FOSS movement.<\/em><\/p>\n<p>Nothing is inherently anti-business about Free and Open Source<br \/>\nSoftware (FOSS). In fact, a number of different business<br \/>\nmodels are built on top of FOSS. The best models are those<br \/>\nthat continue to further FOSS by internal code contributions and<br \/>\nthat advance the principles of Free Software in general. For instance,<br \/>\nthere&#8217;s the support model, where a company develops free software<br \/>\nbut sells expert support for it.<\/p>\n<p>Here, I&#8217;d like to talk a bit about one<br \/>\nof the more problematic models out there, the open core model,<br \/>\nbecause it&#8217;s much more prevalent, and it creates some perverse incentives<br \/>\nthat run counter<br \/>\nto Free Software principles.<\/p>\n<p>If you haven&#8217;t heard about it, the open core business model is one<br \/>\nwhere a company develops free software (often a network service<br \/>\nintended to be run on a server) and builds a base set of users and<br \/>\ncontributors of that free code base. Once there is a critical mass<br \/>\nof features, the company then starts developing an &#8220;enterprise&#8221;<br \/>\nversion of the product that contains additional features aimed at<br \/>\ncorporate use. These enterprise features might include things like<br \/>\nextra scalability, login features like LDAP\/Active Directory support<br \/>\nor Single Sign-On (SSO) or third-party integrations, or it might just<br \/>\nbe an overall improved version of the product with more code<br \/>\noptimizations and speed.<\/p>\n<p>Because such a company wants to charge customers<br \/>\nto use the enterprise version, it creates a closed fork of the<br \/>\nfree software code base, or it might provide the additional proprietary<br \/>\nfeatures as modules so it has fewer problems with violating its<br \/>\nfree software license.<\/p>\n<p>The first problem with the open core model is that on its face it<br \/>\ndoesn&#8217;t further principles behind Free Software, because core developer<br \/>\ntime gets focused instead of writing and promoting proprietary<br \/>\nsoftware. Instead of promoting the importance of the freedoms that<br \/>\nFree Software gives both users and developers, these companies often<br \/>\njust use FOSS as a kind of freeware to get an initial base of users<br \/>\nand as free crowdsourcing for software developers that develop the<br \/>\nbase product when the company is small and cash-strapped. As the company<br \/>\nget more funding, it&#8217;s then able to hire the most active community<br \/>\ndevelopers, so they then can stop working on the community edition and<br \/>\ninstead work full-time on the company&#8217;s proprietary software.<\/p>\n<p>This brings me to the second problem. The very nature of open core<br \/>\ncreates a perverse situation where a company is incentivized to<br \/>\nput developer effort into improving the proprietary product (that<br \/>\nbrings in money) and is de-incentivized to move any of those<br \/>\nimprovements into the Free Software community edition. After all,<br \/>\nif the community edition gets more features, why would someone pay<br \/>\nfor the enterprise edition? As a result, the community edition is<br \/>\noften many steps behind the enterprise edition, if it gets many<br \/>\nupdates at all.<\/p>\n<p>All of those productive core developers are instead<br \/>\nworking on improving the closed code. The remaining community ends<br \/>\nup making improvements, often as (strangely enough) third-party modules,<br \/>\nbecause it can be hard to get the company behind an open core project<br \/>\nto accept modules that compete with its enterprise features.<\/p>\n<p>What&#8217;s worse is that a lot of the so-called &#8220;enterprise&#8221; features<br \/>\nend up being focused on speed optimizations or basic security<br \/>\nfeatures like TLS support\u2014simple improvements you&#8217;d want in the<br \/>\nfree software version. These speed or security improvements never<br \/>\nmake their way into the community edition, because the company intends that only individuals will use that version.<\/p>\n<p>The message from the company<br \/>\nis clear: although the company may support free software on its face<br \/>\n(at the beginning), it believes that free software is for hobbyists<br \/>\nand proprietary software is for professionals.<\/p>\n<p>The final problem with the open core model is that after these<br \/>\nstartups move to the enterprise phase and start making money, there<br \/>\nis zero incentive to start any <em>new<\/em> free software projects within<br \/>\nthe company. After all, if a core developer comes up with a great<br \/>\nidea for an improvement or a new side project, that could be something<br \/>\nthe company could sell, so it winds up under the proprietary software<br \/>\n&#8220;enterprise&#8221; umbrella.<\/p>\n<p>Ultimately, the open core model is a version of Embrace, Extend<br \/>\nand Extinguish made famous by Microsoft, only designed for VC-backed<br \/>\nstartups. The model allows startups to embrace FOSS when they are<br \/>\ncash- and developer-strapped to get some free development and users<br \/>\nfor their software. The moment they have a base product that can<br \/>\njustify the next round of VC funding, they move from embracing to<br \/>\nextending the free &#8220;core&#8221; to add proprietary enterprise software.<br \/>\nFinally, the free software core gets slowly extinguished. Improvements<br \/>\nand new features in the core product slow to a trickle, as the<br \/>\nproprietary enterprise product gets the majority of developer time<br \/>\nand the differences between the two versions become too difficult<br \/>\nto reconcile. The free software version becomes a kind of freeware<br \/>\ndemo for enterprise users to try out before they get the &#8220;real&#8221;<br \/>\nversion. Finally, the community edition lags too far behind and is<br \/>\nabandoned by the company as it tries to hit the profitability phase<br \/>\nof its business and no longer can justify developer effort on<br \/>\nfree software. Proprietary software wins, Free Software loses.<\/p>\n<p><a href=\"https:\/\/www.linuxjournal.com\/content\/some-thoughts-open-core\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why open core software is bad for the FOSS movement. Nothing is inherently anti-business about Free and Open Source Software (FOSS). In fact, a number of different business models are built on top of FOSS. The best models are those that continue to further FOSS by internal code contributions and that advance the principles of &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.appservgrid.com\/paw92\/index.php\/2019\/01\/18\/some-thoughts-on-open-core\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Some Thoughts on Open Core&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-8327","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/8327","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/comments?post=8327"}],"version-history":[{"count":1,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/8327\/revisions"}],"predecessor-version":[{"id":10809,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/8327\/revisions\/10809"}],"wp:attachment":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/media?parent=8327"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/categories?post=8327"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/tags?post=8327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}