As any developer can tell you, the way we write apps has changed dramatically over the past year. It's been amazing to see how the quality of code being written has changed, too. Developers are no longer isolated creaturesa€‰-a€‰code sharing has become a standard practice. Developers write helpful tools or apps and immediately want to share them with the world. They write blog posts and include a link to a GitHub repo with the latest changes. Projects are extended and improved and developers' eyes are opened with new techniques they hadn't even thought of. This is social development at its besta€‰-a€‰the sharing of ideas and code to create an even broader community driven by the want for something better.
It wasn't so long ago that a closed development process was the norm. You offered up a finished product to the world, and people either liked it or moved on to the next. Users might send in some feature requests, but whether they'd end up in the next release was anybody's guess. Projects were developed by a certain group, and it was up to them if they wanted to listen to the feedback from their users.
Then came social coding. Developers were given a new road to follow, one that opened up a whole new world of contribution and commmunity. Suddenly, apps became living, breathing things, begging to be shared. They reached out into the world, an extension of the developer, and asked to be accepted and improved. GitHub and its fellow code sharing sites made this revolution possible. They made sharing a few simple commands away and revolutionized the way development works.
I propose that 2011 be known as the Year of Social Development, a point in time where it has become so widely accepted to share code that there's no excuse not to.
I won't bore you with yet another introduction to GitHub, though; there are plenty of sites out there for that. Instead, I want to share just a few of the ways that you can use these same social development sites to give back to the projects you love.
First on the list is code contributions. This is, by far, the most powerful way you can give back to a project. GitHub and Bitbucket both call these pull requestsa€‰-a€‰code improvements and commits created by another developer in an effort to make the project better. These can range from simple documentation changes to brand new features that have been on the TODO list for a long time. I highly encourage you to find a project that you love to use, see if they've opened up their source, and contribute back if you can. It's a satisfying feeling seeing an acceptance message and seeing your commits included in future releases.
Next on the list is something that can make or break a project, it's docmentation. Just now, I mentioned contributing to the documentation via a pull request. What I'm talking about now is a different sort of documentation, the kind found in manuals, example code, tutorials, and wikis. Find a piece of code that you don't see a wiki page for and make it! If you found it useful enough to track down, chances are others will want to know about it, too.
Finally, if you don't know enough about the project to contribute code, or there's no way for you to update the documentation, there's still a great way to give backa€‰-a€‰submit bugs. Too many developers find things that aren't quite right and work around them. Next time you come across something like this, don't code the other way; let the developers know there's a problem. Unit testing and general usage will only reveal some bugs. Issues really show through in specific situations. Be sure to include as much detail as you can in the report; those make for happier debugging for the devs.
Even if you can't contribute to a project via the code, documentation, or bug reporting, there's always one more way you can offer supporta€‰-a€‰send the developers a message letting them know how much you appreciate their hard work. Nothing feels better than someone halfway across the world telling you what you've made helped them.
Social development is here to stay. Get involved, contribute where you can, and maybe even start a project of your own!
My developer gift suggestion is more for the up and coming geeks in your lives. I'm a huge fan of the stuff ThinkGeek sells and they have some great stuff for the kiddos. If you haven't picked a gift for this holiday season may I suggest one of these bibs, a t-shirt like this or maybe even a ship of their own.