Just about every carrier/operator and handset manufacturer has some kind of developer outreach or partner program of some kind going on. Most of it has been spurred on by trying to follow in the footsteps of Apple and Google. Apple was wildly successful with their app store, so everyone followed after and created some kind of storefront of their own. When the developers didn’t show up in droves, the answer has generally been to create programs to get developers to work with the new systems. So, we’re not off to an auspicious start… but still, the cause is just, so lets see what we can do.

As a developer and community oriented person it pains me to see so much money being spent on misinformed efforts aimed at what should be a fantastic goal. I would love to see a whole bunch of developer programs out there generating good will and innovative applications. But instead what’s happening is companies are burning up tons of capital, generating mediocre results at best, and are going to end up coming out the other side of this with a bad taste in their mouths when it comes to dealing with developers. So here are some points to help out, hopefully it’s not too late.

Big issue #1 : Building a developer community is not a marketing function. If you want the folks in your developer program to be able to help developers working with your products you really need some engineers who are expert at, you know, actually working with your products. Generally you don’t get that set of skills from the folks in the marketing department (no offense to those folks). It’s just a quirk of the way these things get setup that the wrong people keep getting applied to the problem. Take a look at the makeup of the group meant to interface with developers. Are less than half the folks engineers? If so you’re doing it wrong.

The second issue is that building a developer community suffers from at least two different dimensions of cyclical network effect issues. The first issue is that it’s difficult to get developers without users, difficult to get users without apps, and difficult to get apps without developers. That part of the issue most folks are familiar with however. It’s easy enough to just pay for the first group of apps for a platform to seed the cycle. There are plenty of ways to screw that up as well, but that’s probably a subject for another post. The second form of network effect is more direct though, that it’s hard to get developers going without other developers for them to pull from. This is more the community end of things.

Apparently folks really doubt it out there in the real world, but I am a developer. I’ve signed up for and poked around with probably a dozen different developer programs (basically, anything that’s free). Typically as part of that program there’s a discussion forum of some sort meant to give developers a place where they can help each other. Generally they’re a black hole to toss time and questions into, but nothing comes back out. My prototypical example is this question I asked on Betavine back in the day. Though I really don’t mean to pick on Betavine in particular, it’s just an easy example to use cause they’re one of the few smart enough to have the forums publicly accessible so that I can link to the thread. I’ve actually put it to the test a number of times when companies at conferences say they’re trying to help developers… scary huh? Apparently no one was expecting that.

Now compare that to something like the iPhone questions on stackoverflow. That’s what it looks like when you get a self-servicing developer community going correctly – twenty six thousand questions tagged iPhone as I’m writing this. I don’t think it’s a coincidence that the folks behind stackoverflow are all engineers. If you want to build useful tools for developers you need to understand developing.

And finally, having a hackathon is not a substitute for having a functioning ecosystem. If you have a decent system up and going, you have users, you have developers, you have your own engineers – awesome. A hack event is an excellent way to get folks together, expose outside developers to people inside who can answer their questions, and spark interesting conversations. But if your pitch is more “We’re releasing Project X next month, so to celebrate we’re having a hackathon next week where you can get advance access to Project X and start working on great new apps!” – that’s just trying to get free QA work and unpaid development time. Us developers can be naive, sure. But we’re not stupid. If you’ve got something to offer the community, you’ll frequently find the community has a lot to give back. If you try to game the system you often won’t hear anything back at all however. We’ll just ignore you.