This article is a personal look at Open Source, and how I value it. Part 2 will be a deeper dive into Open Source. Its true values, success stories, horror stories, licenses, and much more. Make sure you come back to read that one!
I gave a talk last week at WXG 2014 on “The Value of Open Source.” This topic is something near and dear to all of our hearts here at SendGrid, and was definitely an eye opener for me; revealing a lack of Open Source uptake in the developer community. Around 1/3 of my audience didn’t embrace Open Source in one way or another and this came as quite the shock to me!
When I start a hack, my process is generally:
git add .
git commit -m "whatever"
99% of hacks on my laptop are on my GitHub. Do people find them useful? Probably not, yet I still share all my source code – it’s a habit and part of my workflow, I guess. What surprised me, is the amount of Devs who don’t do this, or any variation of this.
Obviously, we all have our “private” projects. I know I do. Ideas we think are just too awesome to share publicly, code we don’t deem idiomatic enough, or private projects for work. I fully understand that not everything can be Open Sourced, but for those projects that can – why not?
When I originally wrote up the slide deck for the talk, I honestly thought it was a bit boring. I figured I was spewing generic, hackneyed information that 100% of my audience would have already known about, or failing that, not actually be interested in. How wrong I was. This all leads back to my (false) prior assumption that every developer engages in Open Source in one way or another. Realising there was a large portion of developers not embracing the Open-Source-Ethos was not only eye-opening, but excellent; as it gave me a chance to educate and empower on the true value of Open Source.
Open Source to Me
So what does Open Source truly mean to me? Where does the value in Open Source lie? If you asked me this question two years ago, I would have answered “Code. Open Source means code.” Whilst I still believe code is a huge element in Open Source, I now understand it doesn’t define it.
When I asked this question to my audience during my talk, I naturally got a mix of answers, but I was pleasantly surprised to find that the majority agreed with me on this one. The majority answer was: People.
While there is a large focus on code in Open Source, the true value lies in the community surrounding a project, and the developers who work hard to contribute to said project. Contributions to Open Source projects can often be a thankless task. It is also not done for money, but for the love of a project. There aren’t many other industries in the world that do anything like this.
The relationships between product owners and contributors should be a stellar one. Unfortunately, this is often not the case, and that upsets me. I’ve seen many product owners totally neglect their loving community, ignore them, and in some extreme cases even heckle them. This is absolutely ludicrous.
If you’re an Open Source project owner/manager, remember: these developers are contributing to your project to make it better. They’re giving up their own time to fix bugs, fix spellings, refactor code, and generally improve your project. Plus, they’re doing it out of the kindness of their own hearts.
Nurture your Community
It doesn’t take much time or effort to say “thank you” to your contributors. There are companies that offer crazy sums of money for people to patch bugs, but obviously, that’s not a viable option for all of us! Here at SendGrid, we send out badges to all of our contributors. We engage with them, thank them, and (I hope) make them feel appreciated, because they really are.
To me, one of the best parts of owning and contributing to Open Source software is the learning involved in doing so.
From a product owner perspective:
You have a bug in your code that you missed or couldn’t fix. A community member comes along and writes a fix for that bug. You now have a solution to your code problem and will learn from that.
From a contributor perspective:
You have the opportunity to fix a bug or submit a feature to your favorite piece of software. You get to interact directly with other community members, and build something awesome. The knowledge shared between the community around a project is truly spectacular, and in my opinion, one of the most important values of Open Source.
It’s safe to say, I am a HUGE advocate of Open Source. I love almost everything it stands for. The idea of sharing anything and everything so another member of the dev community can benefit from it would be, in itself, enough to make me go Open Source if I wasn’t. But it’s more than that. By contributing to Open Source projects I am learning, sharpening my skills, and empowering other devs.
By Open Sourcing my own projects, I am opening up a world of possibilities (sorry for the cliché!). Allowing other people to contribute to my source code means I have a bigger number of people working on it, therefore a faster turnaround time in bug fixing and code refactoring. I am opening up a floor of learning from developers writing better code than mine, and me learning from it. But again, I’m empowering developers by giving them a piece of software, to use as they wish, if they should ever need to do so.
If you ever find a bug in a piece of software that you like, and if you can, FIX IT YOURSELF! Getting involved in the Open Source community is an incredibly rewarding experience.
Open Source rules.