Open source is a great platform for hobbyist coders; it allows you to store your source-code (the underlying work behind a website/application) up in the cloud where others can find it and suggest modifications. This opens up your work to ideas and improvements from millions of like-minded developers, which can result in simple hobby projects going in unexpected and exciting new directions.
It’s common to see closed source software get abandoned due to the authors waning interest, code burnout, or the anxiety of dealing with an often demanding community, which has risen-up around the software. But with enough traction an open-source project can be picked up and finished by others rather than going to waste. Chances are there are other developers working (or wanting to work) on something similar, so it makes sense to share the burden with them.
Why is everyone staring at me?
But I’ve found that the biggest hurdle when trying to convince someone to open-source their project usually isn't the time and effort it would take to document it, but the innate fear of the criticism they might receive for how they've built it thus far.
While the education system is slowly starting to pick up on just how important of a skill coding will become, the majority of people coding today, learnt to do so in isolation. This often results in them coming up with strange and idiosyncratic solutions to common problems. Combined with the lack of math, engineering and computer science courses that would accompany a full degree in programming, many of these self-taught developers suffer from imposter syndrome and imagine a torrent of mockery awaits if any professional programmers were to see their codemanship.
Rewind back to when I was a kid - I had tinkered with computers and machines most of my life, but was very anxious when uploading an HTTP server I wrote to some now extinct source-code sharing website. I knew there were probably better ways of coding a lot of what it was doing, and that my code was pretty inconsistent and sloppy due to learning so much whilst writing it. But I didn’t have the time to rewrite the whole thing (I was a kid so in retrospect I probably did, I suspect Sim City was to blame for this). I didn’t want it to go to waste, so threw it out there not expecting much.
The power of open-source
A couple of weeks passed, and the counter was showing a few thousand people had downloaded it. Generally the comments were positive and constructive. Sure, some people had pointed out that a massive 200 line function I wrote to do something, could have been done using a single command instead - but I was glad to find this out sooner rather than later.
A few months passed and I’d almost forgotten about it when someone from Nascar e-mailed me to say they were using it to sync telemetric data from their cars on the test-track to handheld devices held by the pit team every lap. They e-mailed me some modifications they had made to reduce the latency and support more simultaneous connections, which I put back into it and re-uploaded.
Weeks later, one of the big European internet café chains got in touch and asked if I wanted to do some freelance work to extend my code. Turns out they were using it for their login system. The code I’d almost just left to sit around on my computer unfinished was now getting used by hundreds of thousands of people every-day, which I thought was pretty awesome. The reason they used it was because it was faster than the alternatives; which was mostly down to the improvements Nascar had added to it.
So ultimately I learnt some new things, got invited to a Nascar test track and earnt a bit of money. Making it open-source was probably one of my better childhood ideas (FYI – don’t ever try to put Milk in a sodastream).
Fast forward to the present, sites such as Github and Bitbucket make the whole process of publishing, collaborating and implementing others feedback incredibly simple. And generally coders are a helpful bunch as we all had to start somewhere and know how it feels to write a completely redundant 200 line function. I’d also suggest making your projects open source from day-one, as getting feedback early is often invaluable and can save you a load of time in the long-run.