Being able to rely on open source technology is a huge advantage for startups. Teams are small, time is constrained, and there is a wealth of available libraries and packages out there to be used and tweaked for the needs of your company.
With so many people working on open source, commiting features, bug fixes, and forks, it becomes essential that we as users/contributors of this ecosystem are aware of things as they change, so that we understand how they effect our codebases and products. I thought I would share some of my tips for managing my consumption of open source, and I hope some of you share your tips in the comments below!
TL;DR: Github has totally revolutionized the way I write and consume software. There are plenty of ways it can help you, be creative!
1. Setup a Github organization for your company
Most projects that we rely on heavily, we end up forking to our organization account. We do this to make sure that our dependencies are stable and reliable. Nobody can delete these projects on us or somehow compromise our environment/requirements by just removing their projects from the internet. Having our own forks also makes it obviously very easy for us to apply changes and customizations to the libraries we use, and merge them into any upstream changes that become available from the author.
2. Setup an RSS reader for project commits
On every Github/commits page, there is a link to the commits as an RSS feed, I recommend grabbing an RSS reader (I use Vienna, its free), and capturing all of these feeds into a single stream that you can consume and track. I find this technique keeps the various components of our system on the top of my mind, and I can get a real sense for the impact and features of the version updates that I take in. You’ll feel much more connected to the developers, as well.
3. Read as much of the code as you can
Sure, you don’t have to read all of the code that makes up MySQL, but whenever possible, you should get to intimately know your libraries and components. Afterall, they may make up a substantial portion of your product, and if they have bugs or act incorrectly, its important you understand it. There is especially no excuse if the library you are relying on is written in a language you are fluent in. Read code. It makes you a better developer.
4. Find and read (and contribute to!) the bug tracker
Nearly all open source projects have issue trackers (especially on Github), make sure to familiarize yourself with the state of issues and feature requests. This is critical for you to have a sense of whether or not this library will have an issue accomplishing a given task you intend to use it for. Issues will happen, you’ll find bugs, its open source, you do have the power to fix issues and submit to the project, and its the right thing to do. If you are not capable, at a minimum, file the bug and attach a reproducible test case, this goes a long way in the author(s) actually wanting to help you.
What tips do you have for managing change in an open source eco system?