Reflections on 5 years as an Open Source company

As we head in to our second (sold out! Woohoo!) #ChefConf, I find myself getting all misty eyed, nostalgic, and reflective. My journey with Chef started with an empty terminal window and a consulting company that was having trouble scaling; from there it’s lead me to discover an entire world full of wonderful people who share my passion for building awesome, humane automation. Some I’ve been lucky enough to call my partners (Nathan Haneysmith, Barry Steinglass, Jesse Robbins, and Christopher Brown, in order of appearance), others my friends (Joshua Timberman, AJ Christensen, Bryan McLellan, Tim Dysinger, Dan DeLeo, Jamie Winsor, Sascha Bates, John Allspaw, Mark Burgess, Phil Dibowitz – to keep this from turning in to a speech that Kanye West needs to interrupt; I love all of you, and there are far too many to list here.)

Along the way, we turned our day jobs from consulting to building Chef full time. We launched Hosted Chef, then Private Chef, improved the Chef client and re-wrote the Chef Server. We raised a whole pile of venture capital, much of which we spent writing and refining open source software. I’m not going to lie – from where I’m sitting, its been absolutely great. :)

Enabling all of that has been the incredible growth of the Chef community: end users, contributors, customers, and business partners. I’m proud of what Opscode has accomplished as a company – but I’m even more proud of the culture and community that has flourished around Chef.

In 2009, I wrote a blog post explaining our philosophy behind being an Open Source business, and how that philosophy led us to choose the Apache License for Chef. That blog post was our way of laying the foundation for the kind of community we wanted to build, and for guiding our own decisions as a company around how we were going to behave. It essentially boiled down to 3 things:

  1. Opscode is an Open Source business.
  2. Anyone whose problems are solved by Chef should be able to use it to solve those problems, whether they have a commercial relationship with Opscode or not.
  3. That the community whose problems are solved by Chef be an open and equal one: that Opscode was a peer with everyone else in the Chef community.

4 years on seems as good a time as any to check in. How have those beliefs manifested themselves since we first threw that early stake in the ground?

Opscode is an Open Source company

We felt it was important to say this for two reasons: the first, we wanted to be perfectly clear with the world that we had every intention of profiting from Chef. The second was to remind ourselves that how we profited mattered: we were going to do it through the creation of a vibrant open source community.

I can say without hesitation that this was the absolute right business move. Opscode is a thriving commercial entity – we’ve got a pipeline of customers that is fabulous (look at the speakers and sponsors of #ChefConf if you want evidence of this) and growing. The majority of those customers come to us with some experience with Chef – their very first interactions are with the Open Source community, not with Opscode. Their ability to solve real, hard problems with software that is freely available, open source, and surrounded by a vibrant community is a ridiculous business asset for us.

We have built our own products on top of that software – first Hosted Chef, then Private Chef. Much of the innovation we put into those systems we then open sourced – the most dramatic example being the recent release of the Erlang-powered Chef 11 Server. As anyone who has tried it can attest, it’s orders of magnitude easier to use, scales far better (with almost no tuning on the part of the administrator), and works flawlessly on a variety of operating systems. Those are all features that customers would value in a commercial product – and one of the moments I’m most proud of at Opscode was the one where we decided we didn’t want to look our community in the eye and say that being easy to use, scaling well, and working flawlessly were things we didn’t all deserve to benefit from.

Anyone whose problems are solved by Chef should be able to use it to solve those problems, regardless of whether they have a commercial relationship with Opscode

Chef was designed from the beginning to be a set of useful primitives you could use to build a fully automated infrastructure: from resources and recipes to the Chef Server API. If those primitives were going to help folks solve real world problems, they had to be free – otherwise, why would you feel safe building on top of them for something as critical as your infrastructure automation?

This also meant not limiting the way others could use Chef. If that meant a competitor popping up who tried to take away Opscode’s business, well, that was the risk we were just going to have to take. At the end of the day, it was going to come down to how good a citizen Opscode really was that determined whether such a competitor would succeed.

This posture has also paid off in spades. First, the community generated innovation is thriving – tools like Berkshelf, Test Kitchen, Pivotal Workstation, and Littlechef show just how much can be done by being free to build on Chef.

The commercial side has thrived as well – from that first moment of Ezra and I getting Chef working for the Engine Yard Cloud, the list of companies building their products and services around Chef has only grown: RightScale, Enstratius, Infochimps, Cycle Computing, Rackspace, Amazon Web Services, and IBM – and a host more where that came from.

The work these companies have done builds value not only for them, but for all of us – Opscode included. It’s only possible because of the Apache License, and the degree of effort the entire community has put into making Chef useful in a huge number of different scenarios.

An open and equal community

The evidence that this goal has been achieved is overwhelming: a huge number of contributors to Chef and to community cookbooks; the arrival of things like the Food Fight Show and Google Hangouts for code review; and critical software being produced outside of Opscode (Berkshelf, Vagrant, Test Kitchen).

As community gatherings like the Developer Summits, Meetup groups, and #ChefConf show – we are, in fact, a vibrant and open community of equals. The gifts we give each other are our attention, time, and our code. Some of us get paid to do it, others don’t. Regardless, we’re all equal in our potential for impact – if you are the change you want to see in the Chef community, odds are high it will happen. Ask Jamie Winsor if you don’t believe me. :)

The Future

In case you haven’t figured it out already, I’m personally thrilled with how Opscode and the Chef Community have evolved since that blog post was written. Being explicit about what we wanted to see in the world worked! It kept us honest, and it made the space for so many wonderful things to happen that it occasionally drives me to fits of spontaneous clapping. So let’s do it again. What does the future hold?

For Opscode as an Open Source business

Unlike many companies that are built on open source, or who are friendly to people who build open source, Opscode didn’t just open source a piece of technology we used inside our business. We open sourced the heart of everything we do. As the evidence above shows, I think it was the right call.

As we go forward, we remain a company constantly on the hunt for new primitives. As we discover new ones, we’re going to make sure we open source them: so that we can all use them to build the automation we see in our dreams.

Like our partners and friends, we’re going to be building software on top of those primitives, some of which won’t be Open Source. One shift here is in the order of operations: before we wrote Chef, there was no Chef. We shipped the primitive first, then we built value (Hosted Chef and Private Chef) on top. As we move forward, we’ll shift to open sourcing new primitives after we build something cool on top of them that shows their power.

The bulk of what Opscode creates, as we move forward, is absolutely going to be open source software.

For our corporate partners

More and more companies are building on top of Chef every day, integrating it into the core of their commercial offerings. This is something we should all be stoked about: the culture and software we’ve built together is influencing the road-map of some of the largest companies on the planet. As they prosper, so will we: with more great tool choices, more hands on deck to help improve Chef, and more people in our community.

For our community at large

The future for us all is about finding ways to be even more engaged with each other than we already are. I look at the difference that the Food Fight Show, the community summit, #ChefConf, and frequent Google Hangouts have made on how cohesive we are and it just makes me hungry for more of it. The closer we are to each other, the better we are at understanding our problems and needs: and the more ridiculously awesome things we can help each other build.

I look forward to seeing all of you at #ChefConf, to learning and sharing with you, and to working with you to make this thing we’ve all decided to make our own amazing. Come talk to me – I’ll be wearing the t-shirt with the metal band on it and a Chef hoodie.

People are going to come to our community for the software – they are going to stay for the culture.

Love and huge thanks,
Adam

Avatar
Adam Jacob

Adam Jacob is the CTO and co-founder of Chef.