AboutUs.org Developer Blog

Sam Goldstein

I'm a programmer and the Director of Engineering at AboutUs.

Agile vs. Open Source: They're Actually a Little Different

posted on 17 May 2011

Last night I was hanging out at the North Portland Coder’s Night (nopoconi) and Ward and I got to talking about the difference between Agile Software Development and Open Source Software Development. I’d always thought of the two together, but Ward had some good insight into the differences in these two cultures and methodologies that I realized fit well with my own experience.

While there’s a lot of similarities between Agile and OSS philosophies, there’s a key fundamental difference. Agile methodologies like Extreme Programming are about getting the right people in the room. Face to face communication is much more efficient, says XP, and the best way to get results is to have a small, empowered team of smart people in clear and constant communication.

Open Source starts with a different idea; code should be available and editable by anyone. Letting the people in the room make all the decisions isn’t fair to the people that aren’t in the room. What’s most important is that the processes are in place that allow people all over the world to contribute to the codebase and improve the project. This means being set up to review patches, and have discussions (in IRC, forums, wikis) that anyone can participate in. While agile strives to put a tight-knit team in close quarters, OSS strives to create a community that anyone can participate in, despite their location or circumstance.

While we were talking about this, I began to realize I’d seen these two patterns in lots of software companies. For example, at AboutUs, we all work in one big room together (Ward once called it a Wiki space in video). We have a small team. When we have a question we can yell across the room. That’s agile. A good friend of mine works on the Firefox team at Mozilla. His team members are all around the world and do most of their communication over IRC, skype, and through issue trackers.

A lot of times we talk about building software as a choice between Big Design Up Front and Agile methodologies, but in fact there’s a lot more options out there that we can draw upon to build great software.

blog comments powered by Disqus