Allow me to introduce myself: I’m Colin Eberhardt, technology director at Scott Logic and the first at-large member of the Symphony Software Foundation. I’ve been developing software for the financial services sector for the past ten years, and through working as a consultant, have had the pleasure of working with many different investment banks, brokers, asset managers and energy trading firms.
When I was asked to write a post for this blog, my first thought was to write something about the benefits of enterprise companies contributing to open source; about the transformation that led to Microsoft becoming one of the biggest contributors of 2016, or the increased government use of GitHub -- or, perhaps even the challenges the financial services firms face in joining this community.
However, as an at-large member, an individual member, I decided to write something a bit more personal. I decided to write about why I, as an individual, spend so much of my time, my weekends, my evenings on GitHub as an active member of the open source community. I’ve worked on projects of varying scales, from solo projects to small collaborative group efforts, all the way up to projects with hundreds of contributors. With each project, I’ve learned something new.
With that said, here are the seven reasons why I contribute to open source:
- It keeps my skills ‘fresh’ - as someone who is in a management position at a consultancy, it can feel like I am becoming more and more distant from the physical process of creating software. Working on open source projects allows me to get back to what I love best, writing code. It also allows me to experiment with new technologies, learn new techniques and languages. Keep up with the cool kids!
- It teaches me about people - working on an open source project with a group of people you’ve never met teaches you a lot about how to interact with people. You quickly discover that everyone has their own pressures, their own commitments and differing timescales. Learning how to work collaboratively with a group of strangers is a great life skill.
- It makes me a better communicator - maintainers of open source projects have a limited amount of time on their hands. You quickly learn that to successfully contribute, you have to communicate clearly and concisely what it is you are changing, adding or fixing and most importantly, why.
- It makes me a better developer - there is nothing quite like having hundreds or thousands of other developers depending on your code! You pay a lot more attention to software design, testing and documentation.
- It makes my own creations better - possibly the most powerful concept behind open source is that it allows you to harness a global network of creative, intelligent and knowledgeable individuals. I know I have my limits, and I don’t know everything, but by engaging with the open source community, I can take my creations and the community helps me make them better.
- It teaches me the value of small things - if the documentation for a project is a little unclear, or incomplete, I don’t hesitate to update it and make it better. One small update or fix might save a developer just a few minutes, but multiply this across all the users and your one small change can have a significant impact.
- It makes me better at marketing - ok, this is an odd one! There are so many great open source projects out there that it can feel like a real struggle to get noticed. Working in open source has taught me a lot about the value of ‘marketing’ your creations. This isn’t about spin, or creating a flashy website. It is about clearly communicating what it is you have created, how it is used and the benefits it brings.
I really could keep going, how open source helps you build partnerships, connections and friends, but hopefully you get the idea now. There are a great many reasons why I, as an individual, thoroughly enjoy being part of the open source community.
You might be wondering how this applies to the IT strategy for large financial services organizations? Personally, I think this is all quite relevant; who wouldn’t want a team of developers who are great at communicating, working with people, have cutting edge skills and are able to market their creations?
Regards, Colin E.