(This post originally appeared over on the LiMo blog)
1. Call a spade a spade
Before I even get involved, I want to know: what’s in it for me, and why should I care. It’s amazing how many organisations talk about addressable market or target technologies or available devices. Blah blah blah. I want to know: what’s the future of your platform, how quickly can I be productive, and how can I get my apps in the hands of users. Seriously. Cut the fluff, cut the marketing, you’re talking to a technical person here. We detect bullshit for a living. So: tell us what we get and when we get it. Clearly. Concisely. It’s not difficult! In return, we might buy into your platform, and then you’ll have an army of evangelists more useful than a thousand glossy corporate brochures.
2. Captain Awesome
There’s a commonly-held myth that everyone develops for the iPhone because of the fantastic tools, or the fantastic documentation, or the promise of becoming an App Store Millionaire, or because the Reality Distortion Field made them do it. Well, they may all play a part, but the number one reason is this: a compelling device that people want to use. Compared to all that came before it, the iPhone was all about usability – even in the early editions of the operating system. If you don’t have a compelling, awesome device, please stop asking me to develop for it.
3. Hide and Seek
So you have a compelling device. You want me to invest in your platform. You push me to your website. But then you’re not prepared to let me see the details of that platform – technical documentation, wiki pages, forum searches – without forcing me to register. Why should I have to give you all my personal details when I’m not even sure your platform is viable or of interest until I’ve had a chance to review those materials? How are us developers supposed to share hints, tips, and pointers to useful information if it’s all behind a registration wall? What’s so top secret about those device APIs that you can’t make them public?
4. Please Hold
The rest of the internet has accessibility-crushing CAPTCHAs and automated email verification (“click the link to confirm your account”). But your site is special, and so you give each and every sign-up request that personal bit of attention. You really want developers for your platform, which is why you make me wait 72 hours before I can login and download the material I seek. But honestly, a cooling-off period is good. You don’t want me to hastily rush in and adopt your platform and start being productive. I need to take some time to reflect on my decision – time I can spend evaluating your competition. Just don’t expect me to be back after those 72 hours, mmmk?
5. No really, who are you?
Please enter your login and password. My login might be my email address. It might be a username you asked me to create. It might be a randomly generated username from your firstname.lastname.integer mashomatic. I will never know, and you will provide no hint. Oh – and as a special bonus, I need a separate username and password for the forums, the download site, and the wiki. Because single sign-on is, like, so last century.
In fairness problems 3-5 are common to all sorts of websites, not just for developers. But you’d think if they got 1-5 nailed, it would be all plain sailing here on in. Dream on! As if that wasn’t bad enough …
I can almost guarantee your developer kit is not available for my chosen developer environment. (Hey, Linus, we’d love you to build cool stuff with our Windows SDK! Steve, old pal, try this Eclipse plugin! Balmer, dude, you’ll really dig this XCode tutorial!) And if it is … what are the odds of a simple installation? If I want to develop for three different platforms, all of whom use Eclipse for their SDK? Why yes, I would like to install three personalised copies of Eclipse, thank you very much. That sounds tremendously efficient and much smarter than using a plugin ecosystem.
7. The dotted line
Please read the following license agreement carefully:
Use of this SDK is subject to the terms and conditions of our SDK license agreement. This agreement is between you (“YOU”) and big faceless corporation (“THE MAN”), a company incorporated under laws in a country far far away. By accepting these terms you give us all rights to your code, to your firstborn child, to 10% of your annual income in perpetuity and furthermore you acknowledge full responsibility and warranty and fitness for purpose of your application. You will be liable for the sum of one billion dollars ($1000000000) and forfeit any right to talk about THE MAN without express consent for ever and ever, amen. Please indicate your acceptance of this agreement by depositing a litre of blood here: [ x ]
You want me to develop for your platform, and you start the relationship with 35 pages of legalese? Seriously?
8. Goodbye Cruel World
The quickest problem to describe, the hardest to solve. How long does it take from access to the website to being productive and seeing “Hello World” in an emulator? How much documentation do I need to read? Is everything self-evident, following common methodologies and best practices? Does it all fall into a typical developer workflow?
Assuming I got my “Hello World” working, how easy can I get it on my real live actual phone? My neighbour’s phone? Share it with everyone in my office and gather useful feedback from them? Beware: if your answer is “send them to the app store”, my neighbours and colleagues will all demand you give them bundles of cash to spend there.
So, you told me why I should write for your platform. You have a compelling device. You made all your content readily available and accessible. You had a speedy sign-up, and let me pick sensible login details. Your tools were lightweight and fitted with my normal workflow. Your licensing terms were reasonable. I could become productive quickly, and get my app on several phones without too much pain. Now I want to take the next step, and meet the others who are developing for your platform, to become an active member of the ecosystem. I want meetings, get-togethers, hackathons, and conferences. You’ve kindly arranged all of these, but … do I get to talk technical, or will I be in a room full of suits? Will it all be glitz, glamour, vapourware roadmap and marketing, or will you concentrate on nuts and bolts and real world problems? Is there all the power and wireless I could ever need? Do you have ALL your developer materials handy (like on a USB stick) to save me waiting a day for the download? Can I run off with one of your devices, or some developer-specific test hardware? Will you have passionate spokespeople who are engaged in what they talk about, or marketing drones wheeling out the corporate message? Will it be Death by PowerPoint, or Death by Pizza?