- Whose throat do I choke when things go wrong?
- If I am using components from open source then where are the standards that ensure I am in compliance with topics like security?
- What about IP ownership?
- If open source is so good then why have there been almost no examples of open source software vendors doing much more than nibbling around the edges of their commercial brethren?
- What happens when committers get bored, fed up, paid more money (take your pick for reasons or invent your own) and remove themselves from critical projects?
Now - before the hard core open source people come down on me like a ton of bricks, I am perfectly well aware that large chunks of the Internet run on open source code, principally the LAMP stack. And yes I know that Hadoop, the 'big data' database du jour, comes out of the open source Apache foundation. We use open source all the time. Then there's Java...and...wait a minute - Microsoft is open, sort of.
So what has changed my position to one where I'd likely favor open source? Nothing except the realization that open source appears to be best suited as a way of obtaining otherwise expensive and complex infrastructure as the starting point for developing the many thousands of applications we will need in the not too distant future. Where do I get this from?
Last week, in conversation with Max Schireson, CEO MongoDB, I had one of those ah-ha moments when he said, and I paraphrase/interpret: 'The old ways of acquiring software are going away. Open source is really the only way you can get the essentials into as many hands as possible.' And crucially: “The value customers gain is often way beyond what customers pay us and that’s OK.” (see the extended conversation below)
I thought about this in the context of where we've been and where we're going. Viewed through that lens, his remarks make perfect sense.
In the past, compute resource was constrained and both software plus databases were built with those constraints in mind. That inevitably meant that getting anything to run was both arduous and expensive. It also meant that really useful software could only be put into the hands of those who had the money to pay large sums, which in turn supported the large numbers of developers needed to make said software usable at enterprise scale.
The unintended consequences were that entire industries grew up around those relatively scarce resources that took their financial cues from the expensive software and hardware needed to get things done. Which was fine for a time but not for much longer methinks.
The combination of the Internet, Moores Law and hyper fast commoditization changed that, but not as quickly as you might imagine. At least not until the most recent times (perhaps the last five years) when vendors emerged who upended the old models and presented us with a fresh way to look at everything compute related. Infrastructure, Database, Software, Platform...Pretty Much Everything is rapidly being converted to a Service. Witness Citi recently talking MongoDB as a Service.
It now seems that large swathes of developer organizations are more than happy to use open source software albeit with a commercial wrapper if it gets them to where they need to be more quickly than was possible in the past. In other words, we appear to have reached a point where it makes solid business sense to engage with open source because the old models of software delivery no longer work in a hyper speed world.
Does this sound familiar? It should because in 2013, Stephen O'Grady, principal with Redmonk published The New Kingmakers - how developers conquered the world.
I've had a a lot of trouble with that title and what it evokes in part because the divide between developers and business has often been acutely difficult to traverse. It still is in many ways.
Almost all developers I meet are huge fans of the open source dictat but precious few seem as engaged with the business as I might have expected. In some cases, it's almost as if The New Kingmakers has legitimized an arrogance of thinking that was previously kept under grudging control as they slaved away at whatever features and functions they'd been obliged to develop.
However, their infectious enthusiasm for all things open source often compensates because the relative freedom and implied community support open source provides has led to an extraordinary explosion in applications. Some may be more useful than others but there can be no question that the creative spirit has been unleashed in a way that would otherwise be impossible to replicate.
That is in sharp contrast to the numerous posts and forum messages I see about commercial software where community is often a substitute for technical support of product whose code is in the hands of a relatively few number of people when gauged against the number of people said software impacts. In other words, commercial closed code is now an inhibitor of improvement and development.
If you're following my somewhat meandering logic so far then it isn't a huge leap to understanding that what now needs to happen is a genuine partnership between the business and developers. I believe it will work something like this:
Management and/or business analysts will recognize a problem and may even have an inkling how it might be solved. Developers will ask what data sources are available, suggest ways in which a problem might be addressed, come back with proposals that can be fast track iterated with business input until the required outcome is achieved.There are of course some caveats.
If existing applications are to be mined for data then ways need to be found to make that data easily available. If existing business processes are to be examined then there will be trade offs elsewhere in the systems landscape.
But...if what I imagine makes sense then the days of the old 'tree swing' problem (see image at top) will be relegated to history.
Remembering the customer presentations on offer at MongoDBWorld I can't help but think that at least some organizations are getting this in spades. They are willing to do as much as possible to make the developer's life as easy as possible, allowing for the spinning up of open source based infrastructure in minutes rather than days or weeks. They've gone a considerable distance in closing the gap between problem stated and problem solved and report phenomenal success for both IT and the business.
The question now is how that gets meaningfully expressed in the world at large.
Image credit: Businessballs.com