Happy Holidays from Skookum Digital Works!
Here at Skookum Digital Works we both utilize and build open source software. We can't get enough of it. So when I saw 24pullrequests I thought "Challenge accepted!" From their website "24 Pull Requests is a yearly initiative to encourage developers around the world to send a pull request every day in December up to Christmas." It was a lot of fun and I wanted to share my experience here.
So starting on December 1st and through December 24th I worked daily with various open source projects to contribute where I could and give the gift of code (I can't think of a better gift, though my Grandma was none too pleased). It was a pretty daunting task, but I am glad I did it. Here you can find my pull requests in a pretty calendar format.
What I learned
I learned that no pull request is too small :) When I first started the challenge, I wanted to find various projects to hack on but I wanted to make feature enhancements right off the bat. Let me say this is not the only way to get involved in an open source project. You can also write documentation and unit tests and project leaders will love you for it (because it means one less thing they have to write).
Initially the most difficult task was finding a project that was easy enough to get involved in without a lot of overhead (setting up build environments, reviewing a lot of documentation, etc.). I thought it would be fun and more interesting to get involved with as many projects as possible, but it is like context switching at work - it is not efficient. In the first week I would usually spend an hour looking for a new project and getting setup just to start work on their project.
Eventually I realized that sticking with one project was a lot more efficient. You can see from my calendar that starting working on a couple of main projects and contributing to those regularly. This more closely models how most people work with open source software anyways. They find a couple of projects they are passionate about and they go to work.
Why is OSS so important?
It is important to get involved for a number of reasons, but ultimately OSS provides high quality codebases that saves people like me time. It is imperative that if we want to continue to build more and more complex systems we do not want to build everything from scratch every time. If I had to rewrite a JSON parser from scratch on every project I would not be as efficent as I can be and I would get stuck in the details rather than focusing on the solution spaces. Developers could pay for similar software, but lets face it if most developers were presented with the choice of writing it themselves or using some black box software they are going to choose to write it themselves in most cases.
OSS allows me to take advantage of countless hours that others have put into the ecosystem so that I can focus on the problems I am interested in. It makes sense that I should do the same for others since the idea depends so much on community. The holidays are about celebrating family and community and I was glad to become more involved in a community that I love.