What I learned from contributing to an Open Source project
A while ago, I had the opportunity to contribute to the Avant Window Navigator open source project. My participation in the project has waned lately, but I’ve had a little time to reflect on the time that I spent working on it. In no particular order, here were some of the things I took away from the project. Note that this is just based on a single project, and that my experience might have been quite different had I participated in other projects:
Learn to detach yourself from from your code. Once your stuff is checked into a public repository, anything can happen. Generally, most people will respect what they see as “your turf,” but that isn’t always the case. People will suggest improvements, implement them, and share them with the world before you even get a chance to review them. Overall, it’s a good thing and part of the ecology of an open-source project. At your typical office-programmer job, people usually end up becoming specialists in specific areas and the demarkation of responsibilities are quite clear, sometimes at the expense of progress. The boundaries are a lot looser in the open source community.
Interpersonal Relationships are Weird. When you’re in an office, you know that Fred is a little odd, and gets touchy when people criticize his font selection, because your co-worker warns you when you’re at the coffee machine. Anyone who lives and dies by their e-mail knows that emotions don’t get conveyed adequately in text, and the same is true with online forums and IRC channels. Some people lose their inhibitions when they don’t understand that they’re communicating with other people, and turn into jerks. Fortunately, there aren’t very many of these people.
There’s a wide range in quality. There’s no entrance requirement, so there’s a pretty wide variety in code quality. There are some incredible, amazing, talented people out there who are coding for their love of the craft. There are also people who make some sub-par stuff.
Apprehension about bugs. When I started, I was really worried about what would happen when I released software that was buggy. In a commercial environment, there are often layers of people between the programmer and the end-user, so bug reports come to you filtered and sanitized. In the open source world, people will report bugs openly, directly to you, on forums, for all the world to see. That made me nervous as hell. It turned out to be not so bad. The users knew that they were using bleeding edge stuff, and they expected a degree of instability and seemed to accept it quite well. They were helpful and sympathetic when reporting problems. I think it cuts both ways; when users report their software defects to someone far removed from the programmer, they’re less sympathetic and more irate than if they’re communicating directly with a person who can help them. Users are people, just like programmers, and they usually realize that the programmers are doing this for free and are quite polite.
Uptake on Localization was less enthusiastic than I thought it’d be. My weather applet was among the first to support multiple languages. Because there were so many contributers from outside the U.S. working on AWN, I thought people would jump at the opportunity to translate my applet to their native language. In the end, there were only three people who volunteered.
I felt old. Most of the people contributing to the project were in college or in their mid-twenties. I’m in my mid-thirties, and after working for 10 hours, coming home, feeding the kids and getting them ready for the next day, it’s 8:00 and I don’t feel much like getting out the laptop and coding. I managed to sneak in a few cycles at work, but I always felt a little guilty about it. While the other contributers were complaining about their upcoming finals, I had to deal with the upcoming PTA meeting.
You can learn a lot. I got into this project to “scratch an itch.” I was using Linux at work, I needed a dock, because I’m a Mac guy and I like docks. AWN was a Dock for Linux, but it was missing a clock. So I learned Python to create one. Now I know some Python, and I have a clock on my dock. I’m a happy man.


January 24th, 2008 at 2:50 pm
Google Ad is blocking the article in IE7.
January 24th, 2008 at 6:16 pm
@acc-he: I’ll be darned, you’re right! Must be a problem with my CSS that causes the left margin to float over the content. It’s obviously been a long time since I’ve double checked my site with IE!
January 24th, 2008 at 7:49 pm
@acc-he: There – all fixed. Thanks for finding that one!
February 3rd, 2008 at 4:03 pm
I think there’s two reasons for the lack of interest in localization. For a start, the people who can translate your app into their language are exactly the ones who don’t need it localized.
Also, quite a few of them have seen previous attempts at making internationalization and localization work over the years, and may feel that it’s easier just to put up with foreign software.
February 12th, 2008 at 1:28 am
That’s a fairly profound viewpoint..Now the world needs to come up with a modern ideology that works. I have found Paragent software which seems to be looking good in open source so far, any suggestions regarding this would be appreciated.
March 6th, 2008 at 8:39 pm
The best solution for open-source localization: do it, but do it wrong. Use Babelfish and you’ve got about 10 languages right off the bat. Will the translations be awful? You betcha! Soon enough some polyglot will come along and tell you your translation shouldn’t be this… is should be THIS.
Use people’s built-in sense of superiority, combined with their nationalistic pride, to do your translations for you. Outrage is a powerful motivator.
March 6th, 2008 at 10:03 pm
@Matt Brock.. that’s so evil, it’s BRILLIANT!
Actually, it’s not that far off from what I ended up doing with the Spanish translation. My Spanish is probably almost as bad as babelfish.
After completing it, I got a few “suggestions” on how to improve it. So you’re not that far off the mark!