Sometimes the market drives us to choose one platform (a device, operating system, protocol) over another, whatever our personal technical preferences. We're all pretty well aware of the tech and business issues in a developer's mind when she contemplates which mobile phone to target, if the Windows 8 market is big enough to justify an investment, or if her consulting client insists on integrating an application with Facebook over Twitter. Most of us have to stay in business, or want to stay employed.
But developers often do have a choice. They can write for a new-and-cool physical device (doesn't everybody want to build applications to connect drivers' phones to their cars?). Or they might create their own application by tapping into others' inventions (by which I mean mashups, APIs, and other "how to use the code someone debugged for you"). Whatever the developers' goal, vendors want to attract more developers to glom onto their platform and make it the most-popular-everywhere. (That includes open source projects, too.)
Developers are busy and set aside time to learn new things on their schedules, not yours.
Ed Anuff, VP of product strategy, Apigee
Many companies (inside and outside the software industry) see the benefit of developing a platform and recruiting developers to write for it. However, like a lot of techies, they think first of the "how-to" technical process, which usually means exposing APIs.
There's nothing wrong with that: To help developers create something of significance, platforms provide common frameworks to solve pesky problems. APIs and libraries let developers plug-in useful functionality that would otherwise be exceedingly difficult to implement or unusably slow. If not both. (That's why sites like Programmable Web list nearly 10,000 APIs.)
The variety of ways developers can leverage APIs, especially ones related to the Internet of Things, can be a lot of fun. For example, says Sumit Sharma, director of API Strategies at MuleSoft, with the new Pebble watch, you can get an app that connects to Google Maps. "When you're walking around town and encounter any place which meets your pre-set constraint (such as a local beer garden within three blocks, or a 4-star rated cafe), you can have the watch be your personalized geographic concierge," says Sharma. An API to tie that capability to your own code is charming, especially if it's easy to accomplish.
But exposing APIs isn't enough for a company to be successful at attracting and keeping developers. Vendors also need to provide support and maybe tools for them, and create an actual community. Some businesses, especially those outside the software tools industry, are accomplishing part of this by using an API management company (such as Mashery or Apigee) to host the APIs and provide support.
Janel Garvin, CEO of Evans Data, has seen many vendors attempt to catch developers' attention. She's learned to emphasize at the Developer Relations Conference (the only conference for developer relations professionals, which the company has held for the last 10 years) that the work never ends. "Often, people who are new to this think in terms of a set list of structured activities; e.g. conduct a hackaton, make a video and post it somewhere, set up a forum and a bug reporting site, and that's it, you're done," she says.
But you're not. "Running a developer program is really about creating a community," Garvin says. "Your program is a living, growing, and hopefully evolving entity that you need to nurture continually." (Evans Data also has a white paper on Five PitFalls to Avoid in a Developer Program; free registration required.)
So what attracts developers to a platform? Here's a few suggestions from those who have been successful.
What developers want
At a technical level, developers want simple ways to integrate their software with a platform. Without some way to connect the developer's Tab A into the platform Slot B, the exercise is bound for disappointment. "Good APIs are a joy to use, and bad APIs are downright frustrating and annoying," says Sharma. "Unfortunately, when a new API comes out, it often doesn't come with the right set of tools for developers to quickly discover, evaluate, and begin engaging with that API." So any vendor does need to put more than slipshod attention into API design.
From a business viewpoint, however, "Developers want to build something great, and they want to make money," says Dave Howell, CEO of Avatron Software. "Platforms allow developers to make money the obvious way, by helping to get software into customers' hands. They do that by creating popular app stores, helping with marketing, creating awareness, and of course by selling a lot of devices or host apps."
The lesson for vendors is that they have to give developers both a technical reason to commit to a platform (help me get great software done better) as well as a business reason (with financial reward just one of the issues).
What vendors offer – or should
Vendors need to treat their APIs as a product that is marketed to the developers they want to attract. "API providers should start with messaging and branding of their API — almost like it's a product — and being clear about 'What you can do with this API,'" says Sharma. "This relies on the ability of an API to be discovered and marketed appropriately, but once you've cleared this hurdle you need to really quickly provide an easy onboarding process for developers to start using it."
But marketing a platform to developers isn't like selling to customers. "Developers are not a business model," cautions Ed Anuff, Apigee VP of product strategy. "They don't pay you; you pay them or your customers pay them."
"The most important thing is to make developers believe that they are building for the next ubiquitous, exciting platform. You want to establish a bit of a gold rush mentality where being early is significantly better than being late to the party," says Davin Chew, CTO of Business Intelligence startup SumAll.
Developer recruitment efforts can use all the traditional ways to get attention – I've never met a developer who could resist a free t-shirt or coffee mug – but some think more creatively.
For example, Smartsheet is taking a crowdsourced approach to build out its developer program. "We wanted to not only accelerate the development of applications and integrations, we also wanted to create more of them," says Jodi Sorensen, Smartsheet's director of marketing. "And as a by-product, [to] create a large ecosystem of developers with Smartsheet expertise and increase awareness of our brand."
The Web-based collaboration platform company holds developer "challenges" with its partner CloudSpokes, and offers cash prizes for winning work. "For example, one challenge we held was to create an integration between the Wufoo API and the Smartsheet API. CloudSpokes also offers incentives – or 'badges' – as developers progress through the challenges," Sorensen explains.
Open source can be your friend. Anuff suggests that those who want to attract developers should "Look for open-source projects that would be complementary to your platform, and sponsor or contribute code to the project to make it usable with your platform."
Regev Yativ, president and CEO of Magic Software Americas, says, "We appeal to their desire to focus on creating business logic for applications across all platforms." Magic Software Enterprises' application platform is used in all sorts of "alternate" programming scenarios, such as apps that handle listings for the U.S. real estate industry's Multiple Listing Association, software to robotically retrieve medical supplies, and tools to track employee access at sporting venues.
"To find them, we offer free downloads coupled to domain targeted messaging, blogging, and event participation," says Yativ. "For example, one of our bloggers wrote an article about how to build a mobile commerce app or shopping platform. We also use viral marketing techniques. A You Tube video spoof 'And So You Code' created independently by one of our employees went viral with more than 800,000 views."
Success stories are often the best influencers, says Anuff. "Companies should aim to get a few prominent developers or high-profile apps built that they can point at to capture the imagination of developers."
Tech support, code, and the other usual suspects
Some elements of a developer program are almost checkbox items: Developers expect these resources whether the platform is from a startup, an established household-name vendor, or a top-notch open-source application. Among them:
- Self-service access to developer materials, such as API documentation
- Developer programs available 24x7 ("Developers are busy and set aside time to learn new things on their schedules, not yours," says Anuff.)
- Lots of sample code that's simple to try out
- Quality tech support (specific to developer issues) with quick turnaround, by e-mail, phone, and other media (such as IRC).
One important option – at least for those companies willing to make an investment – is computer-based and classroom training, or at least face-to-face developer gatherings where developers can help each other, share ideas, and socialize.
But more than anything else, perhaps, is the need to create a developer community, or to connect with existing ones. The latter is an option especially for those trying to get developers to write for non-traditional platforms, such as the aforementioned car-connections or perhaps make apps for kitchen appliances. "By tapping into existing developer communities, many businesses have had success attracting developers to their new platforms early on," says Dave Messinger, CTO of CloudSpokes, which provides companies with an opportunity to get technologies in front of an already-active developer ecosystem.
Omar Armenteros, project leader for the open-source Websitepanel (an Outercurve Foundation project), understands the value of community and collaboration. "We provide a good collaboration system where people can work with each other and have a clear understanding of how to get involved. We're making it easy, because it's a turn-off if it's hard to contribute," Armenteros says. "It's important to give people a reason to participate, because many are self-started when they get here. This level of visibility into the project keeps people contributing and everyone knows where we are going," says Armenteros.
In fact, when a community is strong enough, you can get away without other developer program (alleged) must-haves. "Project transparency is the most influential aspect that attracts contributors; that means giving a clear indication of roadmaps and the project's direction," Armenteros says. "Nobody knows what you're trying to achieve without roadmaps, good forums, collaboration, and continuous conversations between regular contributors and the software's users. We've been pretty successful at that and have over 14,000 members."
But it wasn't always that way. Websitepanel implemented a few things to make it easier for developers to communicate. "We revamped the download process to force people to become registered community members. We also implemented BuddyPress, a sub source of WordPress, and created a Facebook-like group system where people could friend and message each other directly," says Armenteros.
What do you see vendors doing (successfully or otherwise) to attract developers? What do you wish they did? Tell me about it in the comments.