Does that surprise you? It shouldn’t; at this point, most cloud software is powered by open source. From the operating systems and languages to the tools we build and deploy with, the success of Software As A Service owes a huge debt to the open source community. In fact, it’s almost redundant to even mention how important it is these days. It’s like singing the praises of the Internet: yeah, thanks, we get it.
Why is open source such a big deal? You’ll find no shortage of opinions about that (say, like here, here and here). Personally, what hits home for me is the basic efficiency of sharing. We don’t need 10,000 variants of a bubble sort; we maybe need three or four really good ones. The same goes for tons of other software components, like caches, databases, etc; it just doesn’t make any sense for every team at every company to reinvent these things. Let’s share them! We can all contribute a little effort to improve them for the common good, and then we use the cycles we save for the stuff that actually differentiates us. It produces better software, faster and cheaper; it’s good for everybody.
At Salesforce, we’ve been using and contributing to open source for a long time, across a wide range of projects. We also have a lot of opportunity to do more; like other companies in our cohort, Salesforce’s founding predated the explosion of open source being the game-changer it is now, and much of the code that runs the product was written as proprietary, because … well, that’s just what you did at that time. For a variety of reasons, it’s not a great strategy to just plunk it out on GitHub tomorrow (“One does not simply … open source 17 years of code”); even if we did, that wouldn’t be particularly useful to the rest of the world.
But as we look forward, a new path is forming. What’s important to Salesforce? As a cloud company, we provide services to our customers, not software (if you’ve known Salesforce for a while, you may even remember our slogan used to be “No Software!”). Code isn’t our secret sauce; Salesforce succeeds because we center our business around our customers. We do whatever it takes to ship dependable, cutting-edge services for them. Obviously, we do write a lot of software to do that, of course; but what we deliver is the service.
So, that’s why in the past few years, we’ve moved steadily in the direction of more open source. Our involvement falls into two big buckets: software that runs on our platform, and software that runs under our platform. Think of it as being a little bit like one of those photos where you can see above and below the water line at the same time:
Open source software that runs on the platform (“above the water line”) is of interest to you if you’re a Salesforce customer. That includes things like the Nonprofit Starter Pack (NPSP), a package that provides an object model and code for common things nonprofits do, like managing donors, recurring gifts, and so forth. (Read more about that over here, and check out the great article in today’s San Francisco Chronicle about it as well.)
We’ve also open sourced other customer-focused projects like our Mobile SDK (so you can build mobile apps on the platform), and Aura (the javascript component framework on which our UI is built). If you’re not a Salesforce customer, some this stuff probably doesn’t mean much to you, and that’s just peachy. But, it means a lot to our customers.
On the other hand, the stuff “below the waterline” is what we build the platform on; a bunch of hard-core engineering work on complex distributed systems. These are the puzzles we have to solve every day to run billions of transactions for millions of users, with low latency, high availability, and uncompromising security. This is evident in the community projects we create and contribute heavily to (like Apache Phoenix and HBase). We want to expand what we contribute to and talk about, because we know we’re not the only ones working on hard puzzles like these.
I’ve talked about open source publicly in the past, but it hasn’t always been something we shout from the hills. So that’s why we’re starting this Medium channel — to change that. We’ll talk about projects we release and contribute to, at all layers of the stack. We’ll also talk about the “meta” stuff: the joys and challenges of how you take a mature company from “good” to “better” to (we hope) “great” at open source, despite the blockers that come up (did someone say “Compliance” and “Intellectual Property”?). It can be done, and we’re committed to doing it right.
Are you at a company that’s trying to make progress towards greater use and contribution in the OSS world? We’d love to hear from you in the comments. What do you want to hear about?