Your Platform Must be Compelling
To attract the attention of developers, your platform must be compelling. Wikipedia defines The World Wide Web as:
A system of interlinked hypertext documents accessed via the Internet.
The web provided a simple way for posting text and images whenever you wanted, available all the time, accessible by anyone in the world. Using a simple markup language, all a programmer had to do was write a little bit of markup, use a simple tool to upload it to a server, and her work was viewable by anyone in the world at any time of the day. There was no one telling her what she could or couldn’t post. Armed with a browser to decode these documents, users could consume and bounce between all of these documents. It was simple, valuable, and extremely accessible. Most importantly, it was extremely compelling.
But what makes a platform compelling? Programmers are finicky, but simple to please. Hitting a few key points may make all the difference in growing your developer community.
Low effort, high reward
Programmers are lazy. That’s usually what makes them good programmers. They’re willing to put in a little work if it means they don’t have to do a lot of work later. Something that lets a programmer jump right in, put in a little time, and end up with something great will have that person hooked.
Ruby on Rails nailed this.
- Removed core decisions from the boostrapping process of starting a project
- Provided a source tree for developers allowing them to bounce between projects without a learning curve
- Provided well thought out support for tons of features every web app needs
- Provided a drop dead simple plug-in system allowing common patterns in web apps to be reused with other projects, shared with other developers, and more importantly, not reinvented
These added up to an environment that removed wheel reinventing and allowed developers to add awesome features to their app with very little effort. Developers flocked to it.
Enable multiple points of value for free
There’s nothing a developer likes more than creating a project and getting things for free. Make getting extras easier for your developers and they’ll run to you.
iOS nailed this.
- A very exciting hardware target (iPhone) allowing developers to create software they’d have with them anywhere they go
- Provided development tools allowing ideas to go from inside a head to a desirable mobile device unprecedentedly fast
- Trivially support 2 other device classes (iPod touch & iPad)
- Deployable to the App Store with millions of users that actually pay for apps
iOS developers typically get all of these things at trivial costs. Say what you want about Android and its device numbers, but it barely hits these four points. That’s why it’s void of interesting, classy apps.
Make it accessible
How long does it take for me to access, learn, and integrate your thing? Programmers have short attention spans. When picking from a pool, the speed in which they can get their hands dirty is a major decision factor.
Twitter nailed this. At least in the beginning.
- RESTful API
- No API key needed
- Basic Auth for authentication
After a single glance at the API documentation, a programmer could start playing with the API. What’s easier and cooler than getting your Twitter stream by doing a cURL GET? No need to sign up or get approved for an API key first. No obscure awkward authentication scheme for posting. Just 100% HTTP, something every modern programming language has support for. It was trivial to begin creating one of the over 1 million Twitter clients and integrations.
It all adds up to fun
All of these add up to something super fun to play with. Yes, play. Programming is a funny thing. It lies somewhere between career/hobby and eager programmers are always looking for something new to play with.