I was pissed off last night. I got a direct message from a friend on Twitter saying he had left a comment on our new forums. Thinking nothing of it, I sauntered on over and read a beautiful rant on how we were failing at open source. A complete and utter slagging of our efforts in open sourcing our code. Of course my first emotion was indignation, a natural response whenever you're critiqued on something you've put an inordinate amount of personal effort into - I got defensive.
I then re-read the post and realized he was right. Our actions were indefensible and not in the spirit of the open source programming community that we are a part of. You see, this last week we turned Ushahidi over from a private alpha to open beta. This means the code should be easy to access, easy to find, and the community should be easy to plug into. Phew, we had failed. How miserable of a feeling...
The main points of this post (in summary for those who want the short version):
- Make the source code easy to access and the community simple to plug into
- Have communications channels open for people who don't know you personally
- Honest, constructive criticism is good (and proves people care)
- What we've done to address these issues
Easy Access
Our original goal with the download request page for Ushahidi was to make central point of entry for end-users to grab the code to put up on their own servers and deploy. So, it's useful to find an installation file, but not so for the source code. We hadn't created a way for developers to get into the code repository (in fact, our code repository was still invitation only... lame). Rabble ended up having to get the code from another one of our mutual contacts - one that didn't have any version number, changelog, or a release date. Our first act was to switch over from Unfuddle to Github for to solve this problem.Open Communications Channels
We have always prided ourselves on being an open organization, but that's mainly been through getting to the founding team via our contact form. It has always been easy to get, and stay, in touch with us once you're part of the dev community. We have a Skype channel for devs, but it was also invitation only. What we had done was create the traditional non-open source business-side approach to communication. Sure, we're available on the Ushahidi blog, our personal blogs, Twitter and our contact form - but none of that helps the greater Ushahidi dev community get in touch if they don't know who we are. It definitely doesn't help them connect to each other without us acting as a bridge. Our first act here was the creation of an IRC channel, open for anyone to join, moderated by Henry.Openness and Criticism
If someone cares enough about your project, they'll take the time to tell you what they like/don't like about it. That's valuable information, and it's especially useful when they don't just flame you, but offer solutions and alternatives that could work. Rabble did that, and it's made us a better project already. In less than 24 hours we've made some big adjustments (see below). That includes replying to this issue on the forums in the same transparent manner, getting IRC and Github setup and creating the new Ushahidi failephant especially for this blog post.What We're Doing About It
We've already done a couple things to make everything more accessible, open and easy to find. [caption id="attachment_545" align="aligncenter" width="500" caption="Options to download a zipped file or go to the code repository"][/caption]- You can now find the code at Github.com/Ushahidi - feel free to check it out and go to town on it in whichever way you like.
- There is now an open IRC #ushahidi chat channel on irc.freenode.net - join us anytime, a core Ushahidi team member is almost always around.
- We're changing the download request page so that end-users can still download a simple tarball to get going with the latest stable build of Ushahidi. However, the page now also shows a link to the code repository for all the devs out there.