Although I’ve spent the majority of my career on the consulting side of the fence I’ve also spent ten years on the client side, in senior IT roles, where I purchased a lot of software. It was in 2006 that software sales people started offering alternatives to the traditional model of licence plus annual maintenance for proprietary software. These sales people were offering SaaS solutions and subscription-based open source software, neither of which I seriously contemplated buying.
Given that SaaS and open source software are now an everyday part of the IT landscape - why was I entirely unwilling to consider them a dozen or so years ago? The answer is simple. In neither case did they offer the benefits they do today, and, worse, the people selling them struggled to articulate what the real benefits of their offerings actually were. For the purposes of this post I’ll leave the SaaS model aside to instead focus on open source software. i can still recall conversations about open source software in 2008 and 2009. The message from the open source evangelists was “it’s better because it’s open source!”. And I use the term “evangelists” advisedly, because for them it was a matter of faith, not fact.
“Why is it better?”, I would ask. “Because you have access to the source code!” was the inevitable response. Given the large corporate for which I worked had a grand total of zero programmers this was of little interest or value. Sure, we could look at the code, but none of us would understand it. God forbid that we would ever try and change it.
More reasonable were the arguments that other people, who would understand it, could see it, and fix bugs, or remove security vulnerabilities. This piqued my interest at the time, but further questioning showed that most products were only ever modified by the developers who had built them in the first place, i.e. there was no community built around the product, so it may just as well have been proprietary.
The other advantage that we considered was, inevitably, price. Open source solutions were generally much cheaper than their proprietary alternatives. But all those years ago we were still wedded to the prospect that software was a capex line item - an asset to be depreciated, with some of that depreciation occasionally clawed back by the accountants at end of financial year to help meet target earnings.
Forward to 2019 and some things have changed, others have not.
There are still companies that will never, ever, in a million years look at the source code. There are still open source products whose source code remains unlooked at - except by their own developers. And certain open source products have had such phenomenal market success that their prices now eclipse even their proprietary counterparts. But, despite these facts, open source is an undoubted success. Why?
Let’s start with IBM’s $USD 34 billion acquisition of Red Hat, unquestionably the most commercially successful open source software vendor. This is the most money IBM has ever spent on an acquisition. Clearly they see a strategic gain to be made from this investment. Industry analysts look at IBM’s lack of cloud success compared to AWS and Microsoft, and point to Red Hat’s OpenShift as the crown jewel in the Red Hat technology stack. OpenShift, they point out, will potentially allow IBM to become a dominant, if not the dominant player in the hybrid cloud space. We can use OpenShift as a metaphor for why open source is, and will increasingly become, the superior model for developing software.
OpenShift is a combination of, amongst other technologies, Docker and Kubernetes. Red Hat is the second biggest code contributor to both Docker and Kubernetes, after Docker Inc. and Google respectively. Docker and Kubernetes have the massive advantage of some of the world’s most capable, innovative, and successful technology companies collaborating in their development. The claimed advantages of bug fixes and the removal of security vulnerabilities start to ring true (and are true) then the fact the code is open source means that companies who compete with one another can still collaborate. This concept was the basis for a 1996 book called Co-opetition: A Revolution Mindset that Combines Competition and Cooperation, by Adam M. Brandenburger and Barry J. Nalebuff.
Most OpenShift customers will likely never look at the source code. Nor will most ever need to. But they can use OpenShift with the comfort of knowing that it has not just Red Hat’s expertise standing behind it, but that of Google (Kubernetes) and Docker Inc. (Docker) and many others as well.
Another good example of a successful open source project is Jenkins. It’s easy to forget that Jenkins is a fork of Hudson that occurred when the majority of the Hudson development community decided in 2011 to continue the project under a new name after Hudson became part of Oracle, in the same way that MariaDB was forked from MySQL following Oracle’s acquisition of the latter. Only with an open source codebase can software be forked, potentially protecting the user community (or development community). Certainly, this advantage was never mentioned to me back in 2007!
OpenShift is hardly the only open source product to benefit from “co-opetition”. Another prime example is the Istio service mesh framework. Istio shows that collaborators need not be software vendors, as the original developers included Lyft as well as Google and IBM. Red Hat has also joined the party as an Istio contributor, and Istio will be included in version 4.x of, you guessed it, OpenShift.
Finally, it would be remiss to omit Netflix from this discussion. Netflix isn’t a software company per se but it is well known for being one of the earliest adopters of the microservices pattern and a vast amount of Netflix’s source code for managing and deploying microservices is freely available at https://github.com/Netflix.
So if one day I find myself back on the client side of the fence I will happily buy an OpenShift subscription and reap the benefits of the co-opetition between Google, Docker Inc., and Red Hat (and Microsoft, and Pivotal, and IBM, and AWS, and Cisco, and many others to boot). I’ll happily use Istio and Jenkins in OpenShift. I’d probably never look at the source code of any of these, but I’d be content knowing that Google, Docker Inc., Red Hat, and the rest, do that job for me.