Scratch your itches

I wrote a post about 18 months ago that said:

“So if you’re a programmer, or especially someone in my kind of position where you’re a lead engineer involved in design but not necessarily a lot of actual coding, make sure to keep your hand in and still code, and do it in public where everyone can see. Fixing or developing open source is great for that; coding in isolation will rarely do you any favours.”

I’ve not followed my own advice. While I’ve written a lot of code in the time since, especially in the last 11 months on a secret project and increasingly more at work which is great, I’ve necessarily not done the majority of it out in public.

I’ve had cause to do so recently though, as I explore using FreeBSD as the host OS for the secret project due to some of the technologies it’s a willing host for (ZFS, jails) being great fits for some of the things I want to achieve.

With the core application code written in Ruby, and RVM what I’ve used on Linux and OS X in the last year or so to build and manage multiple Ruby versions in dev and on the live system, I added FreeBSD support which the RVM team recently merged.

Being able to scratch that itch was made possible because of the open source nature of the technologies I’m relying on to build things. When I sat and thought about how fundamentally excellent it is to be able to have access to the source code to be able to not only modify to your own requirements, but give that code back for other people to benefit from, I realised that’s what drives open source forwards.

Nobody really comes along to an open source project with no other goal than to simply help out. Most of the engagements are because you use it heavily and fixing or extending it helps you out directly.

If I look back and think about the key moments in my life where I’ve learned a new technology or programming language or piece of software or something else where I’ve had to invest a lot personally and the payoff has been very much worth it, it’s been because I’ve had to scratch a related itch and that’s made me pick it up faster, get more involved and use whatever it is to my benefit.