Coordinating Software Developer Volunteers

Ushahidi
Jan 25, 2010

One of the things we know about software developers contributing to open source projects is that they don't have a lot of time. Everyone has their day jobs, their personal projects, their families…in other words life. We like to support a relaxed, but structured atmosphere where there's things that need to get done but no pressure on any one volunteer dev. As a group, they tend to like 'sprints' where several developers gather to get as much done as possible in only a few hours. Events like Crisis Camps, Where Camps and Dev Camps are really helpful in that they facilitate spaces where developers can come together to brainstorm and get things done. However, the one barrier to entry many of them find is that they aren't comfortable with the language that the rest of the community wants to use, or that the platform is built in. For example Ushahidi is built on the Kohana PHP framework, but a lot of developers prefer to work in Ruby or Python these days. In addition, location plays a role too. We have developers volunteering from every continent, across cultures; some languages are more popular than others across the pond. How do we approach solving this challenge to be as inclusive as possible?

Moses Mugisha, Ugandan Volunteer and Developer of SULSa

We're using the modular approach. Various components of our systems are built in various languages. The Swift River system itself is being built in PHP on Kohana, the same framework that Ushahidi uses. But SULSa (Swift User Location Services App) is written in Ruby using the Rails framework. Our taxonomy and natural language parsing program, SiLCC (Swift Language Computation Core), is being developed in Python. Ushahidi itself also has an API that anyone can use to pull or push data, using any programming language they want. Internally, this modular approach allows us to scale, by distributing server load across many different nodes that each handle vertical tasks on their own. But when it comes to coordinating volunteer developers, it means that there's always something someone can contribute to, which hopefully makes working with our community that much more inviting. Interested in volunteering with us as a software developer? Check out the following links...

Swiftriver Discussion Group

Swiftriver Public Skype

Swiftriver Github

Ushahidi Forums

Ushahidi Github

Ushahidi Public Skype

Ushahidi IRC