Most open source developers focus on writing great code and don’t bother marketing their project. Which is why most open-source projects fail. Utterly.
While it’s a convenient fiction to believe that open source is a meritocracy where the best code wins, it’s just that: fiction. As Apache Storm founder Nathan Marz writes in a recent blog post, solving an important project with useful code is only half the battle. It’s equally important—and sometimes more so—”to convince a significant number of people that your project is the best solution to their problem.”
See also: How To Get Started In Open Source
That’s called marketing, and most developers are terrible at it.
I’ve written before that every technology company needs at least one English major. It’s easy to believe that the world will beat a path to your project’s door, Field of Dreams style (“If you build it, they will come”). But the world doesn’t work that way.
People—and developers are people, too—have a finite amount of attention. That’s why we’re seeing the fading of the polyglot programmer. As former Googler Tim Bray notes, “There is a real cost to this continuous widening of the base of knowledge a developer has to have to remain relevant.”
As the number of open source projects booms, getting developers interested in your particular project is non-trivial. By marketing a project well, developers can cut through the noise and help their project to stand out. As former Facebook and Google engineering executive Santosh Jayaram articulates, English majors are critical for helping companies “tell stories” about their projects.
And while no developer really wants to read some Randomly capitalized Blurb on GitHub about a Project!, as the worst marketing “professionals” are prone to do, project leads who can tell a compelling story around their project, English-major style, are more likely to find developers that want to use and/or contribute to a project.
The Accidental Marketing Of Storm
This is what Nathan Marz discovered as he sought to increase adoption of Storm, a real-time computation system. In 2011, I joined Dave Rosenberg to build a company (Nodeable) focused on delivering Storm as a service. The company was a bit ahead of its time and ended up getting acquired by Appcelerator.
Storm, on the other hand, really took off.
Twitter started acquisition talks with Marz in May 2011 to acquire his company, Backtype. To help increase the valuation Marz wrote this blog post, touting the potential of Storm, which was at the heart of Backtype’s technology stack.
In the process he stumbled on the value of marketing the project:
The post had some surprising other effects. In the post I casually referred to Storm as “the Hadoop of realtime,” and this phrase really caught on. To this day people still use it, and it even gets butchered into “realtime Hadoop” by many people. This accidental branding was really powerful and helped with adoption later on.
From then on, Marz spent a great deal of time both developing the technology and (in his words) hyping it, bolstering that marketing hype with documentation because “people cannot use your software if they don’t understand it.”
But it wasn’t just code. Marz also hit the campaign trail, blitzing conferences:
Over the next year I did a ton of talks on Storm at conferences, meetups, and companies. I believe I did over 25 Storm talks. It got to a point where I could present Storm with my eyes closed. All this speaking got Storm more and more exposure.
The result, however, was worth it:
The marketing paid off and Storm acquired production users very quickly. I did a survey in January of 2012 and found out Storm had 10 production users, another 15 planning to have it in production soon, and another 30 companies experimenting with the technology. To have that many production users for a major piece of infrastructure in only 3 months since release was very significant.
Get Yourself A Story Teller
Storm has become an incredibly important project, but it never would have reached this stage without a lot of marketing along the way. As should be clear by now, I’m not talking about billboards along Highway 101 or pop-up ads on Hacker News (if those existed).
Rather, I’m suggesting highly informative marketing like Marz did to raise awareness of and interest in Storm:
Building a successful project requires a lot more than just producing good code that solves an important problem. Documentation, marketing, and community development are just as important. Especially in the early days, you have to be creative and think of clever ways to get the project established. Examples of how I did that were making use of the Twitter brand, starting the mailing list a few months before release, and doing a big hyped up release to maximize exposure. Additionally, there’s a lot of tedious, time-consuming work involved in building a successful project, such as writing docs, answering the never-ending questions on the mailing list, and giving talks.
This isn’t the sexy work of a code jockey. But it’s this very marketing drudgery that often will make the difference between a great project that no one uses and a great project that changes the world. Linux, for example, didn’t hit its stride in the enterprise until IBM committed to spend $1 billion marketing and promoting it.
Storm, for its part, didn’t require a $1 billion injection. But it did require a heck of a lot of Marz’s time spent marketing, not coding.
Lead image courtesy of Shutterstock