What is it and why should I care?
This will admittedly be a short post because it’s a pretty simple concept. Here’s the simple idea in bullet form:
– Developers are builders of software (and security systems and even documentation sometimes)
– There is a need for software & docs
– Developers build software & docs and contribute it to the community
– Developers help others in the community, give back, and build credibility.
It’s admittedly sometimes a hard sell to ask someone to come home after work and do more of the same. It’s certainly not for everyone. However, we as developers certainly have a useful skill that can help others out if used properly. There are many drivers for why to do this, as well as benefits which I’ll list below. A couple personal reasons for me are that a) I can, and others can’t. It’s a good feeling to help others in need, and b) I was helped when I couldn’t. I received a lot from the community both in the way of software that I used as well as mentoring. It’s nice to give back in some way.
What should I do about it?
So, if you buy into my notion above, what are a few concrete things you can do? Here are just a couple of ideas.
1. Build (better) documentation for an existing tool.
Lots of great projects exist that aren’t being used or are chastised for being bad when they really just need documentation. Taking an existing tool and building some useful documentation (Spring framework and Twitter Bootstrap docs are great examples generally) can be a really helpful thing to the community. This is also a great way to get your feet wet with a project before jumping into coding.
2. Find some bugs in a project and patch them.
This is along the lines of my last post. Figure out how to break something, then do a responsible disclosure, and better yet – fix it! Developers will be grateful for the patch. If it’s a project you’re interested in working on, it’s a good way to show the developers you write good code, and to get involved in a helpful way.
3. Write an open-source security (or other) tool
Write a tool that scratches an itch either for you or the community at large. It’s a great use of your skill, you’re likely to learn a lot and you benefit others as well as help secure software. It’s tough to beat those benefits. You can use your own distribution channel or you can do something like make it an OWASP project if you want some good visibility and prefer to have it in a community ecosystem.
4. Do something with charity.
You can use your skills and donate them to charities. There are lots of things you can do in your community or around the world. Many find this to be a rewarding experience, and it can provide new opportunities for people and change communities for the better.
Projects like these also have a benefit that you build up a portfolio of work that you can share – a bit of a virtual resume. This is a concept that’s become pretty popular in tech circles in the last few years with the so-called “social coding” movement. While there are lots of business and likely financial rewards for doing some of the things listed above, there are also a lot of intangibles, and those are what I see as the real benefit.