While everyone covets developers, not everyone gets them. Take a look across the industry -- it's littered with the corpses of would-be platforms that never caught on with developers.
Yet, every once in a while, a technology will take off with developers in a big way. Docker is the most recent example, but there have been others, and each generally shares characteristics that can help your technology become popular with the developer crowd. Let's dig into Docker to see how to apply its lessons.
Winning through simplicity
Everyone wants developers these days, because most every technology likes to style itself a "platform." But as Ron Miller notes, "With so many platform plays out there though, it's exceedingly difficult for them all to achieve the necessary critical mass to get the developer attention they crave." Those that attain the "necessary critical mass" tend to follow a set pattern.
The cardinal rule -- one that Docker honed to perfection -- is to make the out-of-the-box experience exceptionally easy. As Netflix's former cloud chief, Adrian Cockroft, writes:
A developer can figure out what Docker does, install it and do something useful with it in 15 minutes. I first heard this "rule" from Marten Mickos when talking about why MySQL was so successful: low friction to try it out, a simple concept, and useful functionality.
The industry is littered with over-engineered, feature-rich products that fail. Simplicity is what invites developers to try a new technology and quickly decide if it can fill a niche for them. Over time, that niche can grow.
As Server Density's David Mytton points out, these same viral properties drove the popularity of MongoDB (my employer) and Amazon Web Services, but other technologies like Rails, Django, and even J2EE (a big improvement over Corba) owe their initial popularity to their simplicity.
As my colleague Jared Rosoff stresses, however, "It's not necessarily a question of absolute ease-of-use, but rather one of relative ease compared to alternatives."
Sneaking up on success
Cockroft cites two other sources of technology success, one that's a bit fluffy (have a cute name/logo for a project) and one that is perhaps more substantial, if harder to re-create:
The Docker product came from a non-threatening source, a small startup (DotCloud) that was able to broadly partner across the whole industry. If the same product had come from an established enterprise technology player, there would have been much more push-back from that player's competitors, and the market would probably have split into several competing technologies.
Cockroft is spot-on here: It's somewhat rare that a developer darling emerges from a large incumbent vendor. This is likely one reason that EMC/VMware pushed its developer-facing technology into Pivotal where the likes of Cloud Foundry could thrive unencumbered by the bigger brand, even as they derive funding therefrom.
But more often than not, winning technologies emerge from small companies or projects that can grow without threatening the established vendors -- until it's too late to stop them. That's how MySQL, Linux, and a number of open source technologies developed.
Timing is everything
Of course, none of this would matter without a heck of a lot of good fortune and impeccable timing. Remember that when Docker launched as DotCloud, it went nowhere. An overly ambitious PaaS offering in its DotCloud days, few could figure it out, leading the company to focus instead on the container technology at the heart of DotCloud. Docker was born.
More important, it was born at the right time. We've had container technology since the mainframe days, but never for an operating system as popular as Linux is today, as RedMonk analyst Stephen O'Grady notes. Few will change their OS merely to get the benefit of nifty container technology. But if it happens to come with the OS you're already running? Bonus.
This is both good and bad if you're hoping to get your technology broadly adopted. Some things you can control, like the simplicity of the out-of-the-box developer experience. Forgo advanced functionality in favor of ease-of-use.
But some things you can't, like timing. The Docker folks thought they had the timing right for DotCloud. They didn't. MongoDB was started as a PaaS platform; the timing was off for that -- but spot-on for a document database. And so on.
What you can do, however, is optimize for feedback. Open-sourcing your code gives you an easy feedback loop with your likely community, helping you see early and often whether the product is simple enough and whether the timing is right.
Speaking of open source: Depending on the kind of technology you're developing, open source is likely critical. As Cloudera co-founder Mike Olson states, "No dominant platform-level software infrastructure has emerged in the last 10 years in closed-source, proprietary form."
Open source vastly reduces the risk of trying new solutions, which means that developers become pivotal players as they download and evaluate code. Winning their allegiance has become foundational to the success of software.
This article, "How platforms attract developers: Docker shows the way," was originally published at InfoWorld.com. Get the first word on what the important tech news really means with the InfoWorld Tech Watch blog. For the latest business technology news, follow InfoWorld.com on Twitter.