It is increasingly difficult to get developers' attention and keep it, simply because there are so many technologies, products and vendors out there competing to get developers on board — which allows them to be seriously picky about the projects they want to work with.
The key to appealing to developers, beyond providing a useful technology that works, is a simple one — build and support a community. Give them a place where they can meet other users to discuss their applications, share tips and tricks, and show off their work.
When a community is active and developers share feedback, it can be invaluable for the team behind the project, in terms of improving and enhancing the software's features. The community can also help push the adoption of the project, because you have peer-to-peer support and you are getting people to talk about it. Yes, word of mouth works with developers, and it'll help get the message out faster than any marketing campaign.
An open source project can also be built in such a way that it can crowd source additional capabilities. BIRT developers, for example, have contributed extensions on their own, out of dedication to the project or through community contests, and those contributions have improved the pertinence of the product.
Alright, so get out there and get your community started! But hold on … unfortunately, it's not that easy. To get developers to engage in an open source project requires pulling together many different strands.
Open source — getting on roadmaps
People are trusting open source projects more and more for good, quality toolsets and solutions. Why? One reason is there is comfort in being able to access the source code. Even if you never have to dive into the code to fix something or to add a needed feature, it's nice to know the option is there. The developed product can also be more flexible — think plug-ins and extensions. A key aspect of a healthy open source community is it allows its participant developers to drive the project in the direction the community wants and needs. This will also, of course, strongly influence any resulting commercial products — Think Drupal and Acquia.
Initiating Great Activity
License: The type of license you select for your open source project is a key factor. Some are restrictive and some very liberal. There is a lot of information on this subject out on the web. Do your research and make an informed decision on the one that works best for you.
Project a clear view to the developer: Don't expect developers to rush to your project simply because it is open source. It has to have a tangible value to their development projects. You must also provide detailed getting started instructions and API documentation or they'll move on.
Structure & organization is key: To build a community it goes without saying that you have to establish trust within the community. Trust comes from transparency. Developers want to know who you are. Letting them know not only builds that trust, but makes them feel good about the fact that the software they're going to use is backed by a stable company and lets them know who to go to when they want more.
In general, open source software gets closest to what users want because they can directly influence it by committing code, but they need you to be clear on what all is included in this process. If this isn't well defined, you're likely to get far fewer contributions from the user community. To create the right environment to nurture the creativity of your community, you must make transparent communication at all times your mantra.
Evangelism is a key part of getting the message out and firing up developers to grow your community rapidly. What makes good open source community evangelists? People who believe passionately in the project and can constantly evangelise through a variety of mechanisms, from forums to tradeshows. Since the evangelists are the people who work closest with the community, they should also keep an eye out for new directions that the community might be expanding in, so you can make sure your project continues to adapt to these needs.
Encouraging developers to play
The majority of developers want to get their hands dirty. So any learning resources you have — whether tutorials, examples or APIs — make sure these can easily be found. Set up an infrastructure where developers can get technical help and share experiences — such as forums. Be sure to nurture your early adopters and give them the support they need — they will likely be the backbone of your community.
The importance of senior backing
These days, most open source projects have some sort of a commercial entity either behind them, or very closely affiliated with them, that contributes and maintains the relevance of the project both because they want to be supportive and because they see the opportunity to monetise through commercial product development.
You may well stumble if you do not have the backing of an internal executive sponsor invested in the exercise of putting work into an open source community.
If the executive management doesn't have appreciation for the community and its benefits, interest will quickly wane. So, from the beginning you'll need to have a very clear idea of how the community is going to work and how it will impact the business agenda. Initially it is going to be about community growth. You need to track this carefully to show that there is real correlation between the community and the growth of the number of projects around the software.
New kid on the block
Of course you will have lots of interest at the beginning: you are new. But being the latest and greatest doesn't last for long. You have to make sure your project stays on developers' radar and that you continue to stay relevant.
A great way to avoid being last year's fashion is to collaborate with other open source communities. Participate in these through "Meetups" or making contact with other community managers so that you can host shared events, cross-posting etc. That way you can stay in the headlines and your project will retain its appeal.
The second way of avoiding developer drop-off is to present really compelling case studies that feature your technology. Get them out on blogs and social media posts. Constantly keep your eye out for hot topics that you can "piggy-back" on. The Internet of Things, for example, is hot right now.
Beating the Transience Factor
Developers are transient when it comes to open source — that is the nature of the beast. So how do you make sure they stay engaged, even if they aren't active in a project at all times? Make them feel they are still part of the community. It is important to continually reach out to them and keep them updated on what is happening.
A few ways developers are motivated include by pride, status, and peer recognition. Keep their interest alive by giving them the opportunity to help with a blog, answer a question on the forum or submit code examples. We award developers 'badges' for completing a certain number of each of these tasks. There is also a monthly leaderboard where members have a score based on these. It's part of the trend toward gamification and, yes, it really does work.
Set Up an Exclusive Advocacy Club
We invite a select number of developers to an exclusive advocacy club. They idea is to incentivise them through status to contribute more to the project and make the community more dynamic. Our evangelism team looks for developers in the community who are active on forums or regular sample posters in what we call the "devshare". It is a simple way of utilizing the core and specialised skill sets of various developers, and getting the others excited about a project.
In conclusion, in order to keep your open source community thriving, it is very important to ensure that the product fits on an on-going basis. Just because you have launched an open source community doesn't mean you can sit back; you have to continually work to engage your community and re-evaluate product fit to make sure it is working.
The beauty about open source software is that it is continually evolving in real time as developers modify and add to it, weeding out problems. An active open source community is an effective one that will enable the adoption of your products, but growing your community is ongoing. Remember Rome wasn't built in a day!
About the Author
Michael Williams is a committer on the BIRT Project, and he is also BIRT Product Evangelist & Forums Manager at reporting and business analytics software specialist Actuate Corporation, which sponsors open source BIRT and offers commercial BIRT-based software to a community of more than 3.5 million BIRT developers around the world.
Follow Michael on Twitter @mwilliams_birt or visit his blog http://blogs.actuate.com/author/mwilliams/.