Thursday, November 17, 2011

Contributing to Open Source

I've been working on various open source projects since around 1993. Long before I even really thought of it as open source. It just seemed natural to me to make the fixes I needed and contribute them back. It was always a bit of a challenge to figure out how to get my fixes to the developers. Obviously, they don't know me, so they aren't going to just let me write the files directly. So, I end up sending patches via email or some other means.

Over the years, the process for contributing to projects has gotten easier. Even more recently, it has grown by leaps and bounds thanks to Github.

Case in point. I've been using the twitter bootstrap project for parts of the design of my new company Voost. I like the project a lot. Like millions of other projects, it is hosted on github.

Yesterday, I noticed a small bit of documentation was missing, so I forked the project by clicking a button on the website, created a branch to work on (git checkout -b docadditions), edited the documentation, committed and published my changes and then created a pull request which tells the developers of bootstrap that I have something to contribute:

https://github.com/twitter/bootstrap/pull/647

Mark, one of the developers, who I've never met in my life, was able to take my contributions and combine them with his code by simply clicking a button on the website. Yes, it was that easy.

I also had an enhancement request... so I created an issue...

https://github.com/twitter/bootstrap/issues/646

It was resolved in a few hours with just a small bit of effort. I can then merge his changes into my local fork of the project with a couple easy commands. We stay in perfect sync together.

Bam. That is how collaborative development should work.

As a comparison, in the past, I've done a huge amount of work for the Apache Software Foundation. They have a great open source license, and a huge following. But, they don't use github.

With the ASF, it feels like 1993 again. For each project I want to contribute to, it feels like I'm making a lifetime commitment to that project.

I have to go to the project website and navigate around to figure out how to join a mailing list. This takes several contextual steps in an email client. I need make sure to setup a mail filter to deal with a potentially insane amount of email that I really don't care about. Then, I email a patch to the list (or put it up on gist / pastebin)... and I hope maybe one of the developers might be watching my carefully crafted subject line. Chances are that nobody would respond or the email would get lost, so I'd have to keep nagging people because everyone is busy...

I don't really contribute to the ASF nearly as much anymore.

Thursday, November 3, 2011

Month 3 - It is official now.

It is official, Jeff and I have our own company now. Voost LLC. You can sign up on the website to be notified when we launch.

The focus of the company is on sporting event registrations. As a road bike racer who started his 'career' sending checks in the mail to promoters, I've often wondered why there isn't a great solution for handling registrations to events. (Especially when you'd get to an event, but your check didn't.)

Many companies have sprung up to do this online, but they suffer from high fees, websites that look like they were designed in the early 1990's by people with no design skills and general poor execution. Promoters have to jump through hoops to create events and get their money. Participants are missing out on social features like communicating about the event, ride share / hotels and simple things like the ability to see their (and others) results over time. How many times have you had registration open and the site just melted down as 6k people all tried to register at the same time?

So, it turns out that there is 10+ million athletes in the United States who cross a finish line at an endurance event every year. Voost is setup to do it right and disrupt the entire industry with a well designed solution. We've done our homework and we have a clear path of execution. Now, it is just a matter of time and effort to put our designs into code.

Things are still rolling along with long days of coding and adding features. It is now possible to sign up for an event and go through the entire purchase process. It sounds simple, but there was a huge amount of plumbing that needed to happen first. We are currently working on the event editor which allows promoters to easily setup their event entirely online in no time at all.

We've done a huge amount of work and I'm really proud of it. On a technical note, we've recently switched from Sass to Less. I like the syntax of Less better (especially the mixin's) and it was pretty simple to do.

We are hoping for a soft launch around December and pick up steam as we head into the new year. Wish us luck.