At Barcamp Boston yesterday I held a session to answer a question: how to you recruit people to help out on your open source and side projects?
The problem is one that vexes many developers. You develop a useful bit of code. Maybe it’s for your own use or maybe you created it during a hackathon. Then you want to give back to the community. So you open source it and upload it to github. Maybe you create a web page for it and a bit of documentation.
But then the requests start coming: can you fix this bug? Can you add this piece of functionality? Can you help me use it?
And while you’d love to develop and support it, you don’t have the amount of free time it requires. Yet it’s clearly useful to people. So the question then becomes: can you recruit other people to help?
The problem becomes more complex when the users of your software don’t have the requisite programming skills to continue development. So you can’t simply recruit users to continue the development.
Luckily, the group yesterday had a plethora of recommendations:
- Ask a Community
Find an existing community where people interested in supporting your project are and ask them for help. The example given during the session was how Linux blossomed after Linus Torvalds asked for help on a Usenet newsgroup. A friend afterwards recommended posting to Reddit.
- Publicize Using Libraries
If your project uses third-party libraries, tell the developers of those libraries that you’re using them. Mention your project on discussion forums and sites for those libraries so other developers can see how the libraries are being used.
- Speak at a Meetup
Find a meetup of developers and ask to speak at it about your project. Meetups are often looking for speakers, and talking about your project to the relevant audience can attract others to your team.
- Host a Google Hangout
Do a virtual meetup using Google Hangout or other video conferencing tool. Show people what the project does, why it’s important and how they can help.
- Record a Video
Make videos about your project explaining everything form the grand vision of the project to how to contribute to it.
- Use Twitter Hashtags
Mention your project on Twitter with hashtags others are likely to monitor to attract like-minded people. Use the #newapp hashtag.
- Create an Engagement Page
Create a Facebook page, write a blog post or start a discussion on a forum. Create a way for people to express their interest in your project, even if they aren’t ready to contribute immediately. Allow people to subscribe for updates.
- Add Screenshots
Make the project visually concrete. Screenshots help people envision what the software does. Someone mentioned how some of the more popular projects on Github use screenshots in their Readme files.
- Create Easy Extension Points
Make your code modular and create obvious, easy-to-use extension points. That way even if someone can’t contribute to the core project, they can easily contribute extensions. This can also isolate the effect of developers submitting bad code into your project.
- Write Good Startup Documentation
Make it easy to get started. Write clear instructions on how to configure the build environment and to get started working and contributing to the project. Maybe even create a script that automatically configures the build environment. Document your code as well as the overall architecture and modules in the system.
- Target a Use Case
Find a use case that would naturally have users who are developers. For instance, for my Community Dashboard project, while non-profits don’t often have developers who can help out, the project would also be useful to Quantified Self adherents, many of whom are developers. Pitching the project to a separate community that has the resources to help out can help you build your project for your primary community.
- Research Kickstarter Strategies
Read up on how people build successful Kickstarter campaigns and mimic those strategies. An open source project is essentially like a Kickstarter campaign where people donate time instead of money.
Over the next couple months, I’ll be experimenting with these strategies to help recruit others for two projects:
A function for Google Spreadsheets that imports data from public JSON sources similar to how the native ImportData and ImportXML functions work. I need help with the tech support for the project and adding new features that people have requested.
- Community Dashboard
A dashboard designed to be configured and populated with no programming using only a Google Spreadsheet. Developed during Code for Asheville‘s Hack 4 Food event as part of the National Civic Day of Hacking.See a sample dashboard here and a video explaining the dashboard here. I started work on a new configuration system on the develop branch and need help finishing that. Later I’ll need help building visualization plugins using d3 and documenting how non-profits can use the software to build and maintain their own dashboards. The software could also be used by people into Quantified Self for building their own personal dashboards.
If you have other ideas on how to recruit people, or want to help out on one of these projects, contact me or add a comment below. Thanks!