Guy Kawasaki, a true evangelist if there ever was one (in fact, when it comes to preaching the gospel of software development, he WAS the first evangelist), liked to talk about the concept of “letting a thousand flowers bloom”. He borrowed the concept from Chairman Mao, and all political ideology aside, the gist is this: give people the tools and the opportunity to build something – if you spread the opportunity wide enough, you’re bound to see something good come from it.
Software developers are the perfect audience in which to seed opportunity and encourage action. At the risk of generalizing, it’s safe to say that developers take their work seriously, and of course they have to because if their work is poor, their product doesn’t work, and it’s immediately apparent. There’s astuteness and weariness to developers, and this is borne out of the fact that they require the right tools in order to produce. Using poorly designed development tools, or building on a weak platform means wasted hours and lost productivity. It makes them look bad, prevents a product from being shipped, and loses the company money.
But what developers crave, and are willing to become religiously zealous about, are tools that help them perform better. They know their problems, and they have a sense for what’s needed to solve those problems. Developers also understand that help, support and training don’t necessarily come in the form of a 12-page PDF. People learn in different ways, and there’s a different level of urgency, depending on the issue. But more than anything else, it’s crucial, if you want developers to use your tools and develop for your product, to be their advocate and provide them with everything that will make them smarter and more productive.
Now, there’s some self-interest going on here, and that’s just how the game is played. Developers know that, and there’s no point in you doing any of this unless you’re trying to extend your application. You have an API for which you want developers to use to connect their app and/or functionality with to your application. If you do your part, you’ll make it easy for developers and if things play out like you hope, you’ll have tons of developers creating add-on applications that connect with your API and increase the functionality of your app. This delivers your app to exponentially more users and gives you added functionality to your product you might never have known could have existed.
To get this rolling, you first need a destination – a community. You need to feed the community with information, truly useful information that will enable developers to get tools, learn how to use them, see examples, get smarter about your applications, and interact with other developers. This last piece is key because there’s only so much that you can trust when it comes to a big, capitalist company giving away free advice. Birds of a feather…well, you know. Developers trust one another, they speak the same language. And you have to empower THEM to own the work they create and the solutions they come up with.
That community has to also be run on trust and empowerment – truly, this is like a political movement. You want to encourage as many people to join in your efforts, but it’s no fun joining a movement where you’re told what to do and where to go. Especially developers – you’re going to get a much higher degree of participation and engagement if the participants are also the people who make decisions and run the show. It’s a relationship between you and the community – the community has to know that you’ll listen and empower them. And if you think that’s giving up too much, well, consider the spirit of what Kawasaki is talking about. If you’re encouraging and allowing developers to be sucessful, those people will benefit, but your product and your business will become more successful as well.
Make no mistake – you are the gatekeeper and the main moderator of your developer community. But ultimately, you provide the foundation and the structure; it’s the developers who run things and make stuff happen. When you operate your community like that, and if you treat your community with respect, you’re going to see some amazing things happen.
To get a sense for how an effective developer community operates, we invite you to check out SOA Software API Management Platform and our Open, our free API community for developers. The essence of Open is that is enables developers by allowing them to connect with published APIs, and add their own APIs for their own continued development or collaboration with others. It’s a public, free-of-charge playground where developers can engage with one another to create innovative apps around open and private APIs, and find relevant APIs for developers to find and use in their apps. From what we’ve heard from our customers and partners, the combination of our powerful API management solutions (as seen in EAP – our Enterprise API Management Platform) along with a social community will be a huge factor in their ability to be successful at increasing API usage and adding new revenue channels.
Through SOA Software Open, API developers will be able to:
- Publish and promote their APIs through the SOA Software Open community for other developers to use.
- Enable Search by indexing their API content (name, description, docs, discussions and tickets) so that App developers can easily find the API, together with supporting information to help them use it.
- Add OAuth (or other security features and mechanisms) to their APIs.
- Proxy their APIs to add security, monitoring, provisioning, QoS management and more. Or simply use Open to provide the social and search features they need.
SOA Software Open provides app developers with an incredible array of tools and services:
- Community: developers can collaborate with other developers to build apps, ask questions, search existing discussions and tickets, follow users, APIs, apps or groups, build their own groups, or just quietly lurk to learn more.
- Documentation: it will have documentation on APIs and product, and developers will be able to create interactive documents for their own API, or create and upload their own documents.
- Monitoring: community members can see how their API or app is performing and where their traffic is coming from with our real-time dashboard, historic charts, and reports.
- Debugging: the ability to identify and track issues so you can fix problems before they impact your customers.
- Test Client: developers will be able to send test messages to see how the security (including OAuth) works, and what the request and response messages should look like.
Try it out here