Recently, we’ve been working with a lot of public agencies (mostly in the transportation sector) who are interested in setting up developer conferences or app contests. While we are big fans of both conferences and contests, our main point of advice has been get away from thinking just about conferences & contests, and focus on building an holistic developer outreach program. Since we’ve been having these discussions mostly through private channels, we also wanted to put our thoughts out there for everyone. So, below is the initial list of recommendations we’ve been developing:
Focus on building a holistic and sustainable developer program & community, not a one-off conference or contest. The ultimate goal is to encourage developers to build apps that improve the civic experience. Conferences and contests are important pieces of the puzzle, but aren’t complete solutions on their own.
Release early and often. It’s a bit counter-intuitive, but this actually reduces risk, since it allows for constant feedback and readjustment, which helps you avoid veering off on the wrong track. Small, incremental improvements, coupled with avenues for feedback from developers, will cultivate a stronger and more sustainable community.
With these ideas in mind, here are ten specific recommendations for how to build a robust developer community (in this case focusing on transit, specifically, but the basic principles apply to all sectors):
- Choose one or two people in the agency to be a consistent presence on the Google Group and at meetups. This will help build trust and improve developer relations by putting a human face on your developer policies.
- Start with a friendly and honest introduction on your Google Group, and invite developers to be part of the process – to be active allies and not a passive audience.
- Schedule your first meetup. At the end of that meeting, decide with the attendees when to schedule the next one (in two weeks, in a month, depending on interest and current activities)
- Show progress by making incremental improvements to the data sets and by releasing new sources of data. Don’t try to guess what developers might want; just ask them. This becomes increasingly easy to do as you build relationships with more and more developers.
- Be clear and honest about the constraints when releasing data: if it’s not logistically or economically feasible to release certain data sets, say so.
- After you have held a few meetups and have gotten to know the developer community, plan your conference or contest. A good format would be a hybrid unconference/conference, with organized introductory speakers and unconference slots in the afternoon. Weekends are best, as is starting after 11am. Once you have an active relationship with the developer community, they can help you plan aspects of the conference.
- If you want to do an app contest and announce the winners at the conference, you will need to build in more lead time to ensure that developers have time to build high-quality, useful apps.
- When considering keynote speakers for a dev conference, consider both tech industry leaders as well as high-ranking agency representatives, to demonstrate agency buy-in.
- Prizes: tours of publicly inaccessible areas, including control rooms, bridges, abandoned tunnels, or construction zones, would be great prizes. A chance to use a train or bus simulator would also be an exciting prize for transit developers, specifically (MBTA gave away a session in the bus simulator as well as “golden” Charlie Cards as prizes in their app contest).
- Most importantly: don’t think that you need to have all the answers. The sooner you can reach out and engage with the wider developer community – even with just a few messages to the Google Group – the sooner you can benefit from the feedback, ideas, and energy of a much larger base of supporters.
As you know, there are examples of other agencies who have taken many of these ideas to heart, most notably the MBTA, BART, and TriMet. Looking closely at what each of these agencies has done is the first step towards developing a successful and sustainable dev program.