About a year and a half ago, I started moving all my personal and professional software development to Git and Github. Here are a few thoughts on what it’s meant for me as a developer.
Originally, the primary impetus for the change was that, as version control software, Git is so much better than Subversion. But in the last few months, the value of Github (the site, as opposed to Git the software) has become increasingly evident and important. As developers (in the WordPress world, especially) have taken more and more to Git, and as folks in general have become more familiar with Github, the value of Github’s social model to my work has increased by a huge amount. Between private and public repositories, client work and open source projects, I collaborate with dozens more people today than I did at this time last year. Some of this collaboration is planned ahead of time, and so maybe isn’t so notable. But increasingly, it’s unexpected and unsolicited – forked repos, pull requests, bug reports and patches.
Probably many of these changes are incidental, and are unrelated to version control at all. But I like to think that the mechanisms of Git – cheap branching, sophisticated merging – and the design of Github – activity streams, easy forking – have played a role. Using Github has changed, and continues to change, my development practices, by making me think more about audience and reuse (notions that are familiar to teachers of writing), encouraging the “release early and often” mantra (since all my stuff is public anyway more or less as soon as I write it), and orienting me toward collaboration by default, rather than solo coding. All these changes are highly laudable, leading to better product, and making my work more fun.
If you are an open-source developer, working in locked-up or practically invisible repositories (or, heaven forbid, not under version control at all), do yourself a favor and get acquainted with Git and Github. The benefits are potentially transformative to the way you approach your work.
Thank you Boone! This post came at a perfect time for me. After 5+ years off from development (to be a stay-at-home dad), I am motivated to start an Android/iOS project. I have been intrigued by Github for a while, and am thrilled they recently created an official OS X client that looks to make managing a repository dead simple.
The app will have a very limited market, but it is a process that needs to be automated and simplified. Do you have any advice for someone who is launching his first open source project? To be honest I don’t expect anyone to contribute, but I have been a fan of the Open Source ideal for a long time. Besides, the cross platform mobile frameworks I am evaluating require Open Source to use their framework for free. 😉
Hi Brian – Glad that my post was timely!
I guess, as far as this piece is concerned, by main advice for someone starting an open source project is to try, from the very beginning, to foster community around the project. Using Github for development is a good start, as it makes your code (and your bugtracker, and your commits) publicly viewable. Make a good webpage for your project so that newcomers (potential devs as well as potential users) get a good sense of how to get involved. And above all, welcome new contributors with open arms 🙂