As a young developer, there were few things scarier to me than the mystique of Open Source Software (OSS). I had read, and heard, time and time again that it was important to find a project that I cared about/used and to contribute. But when you pull up that repo for the first time and check out the issues tab, it can be downright intimidating and anxiety-inducing. I probably read through “good first issue” tags 20 times before I got the courage to add a comment stating, “I’d like to help with this PR.”
Then I did a thing: I pulled down the repo, read through all the documentation, looked into the source code related to this issue, and just tried some things. Some worked, some didn’t. I got to a point where I felt like it was right on the edge of being fixed, but there was a blocker. I reached out to one of the maintainers who had been my guru on the issue and he helped me get my PR across the finish line. It was gratifying. I had now contributed to a project used by thousands every day.
As developers, OSS gives us the opportunity to find community, take on new challenges, and create something that is valuable for our fellow developers. At SfG, we value open source and know how important it can be. So on the heels of the Open Source North conference, I asked some of my fellow teammates why OSS is important:
Casey (CEO): “OSS is peer-reviewed, transparent, and reusable. Versus closed source which is built on trust of whoever wrote it.”
Erin (Technical Project Manager): “It keeps us efficient and more minds is better than one.”
Ryan (Senior Web Application Engineer): “Open source projects have the benefit of having a diverse network contributing to the success of the project. Overall it drives the projects forward at a rapid pace and allows for open discussion about the direction of the project with many voices coming together to put forward a great product. As a product evolves with the community backed changes, it inspires me to learn why the changes were made and how I can use those changes to become a better developer.”
Kevin (Senior Architect): “Freedom to tinker. Technology has a great deal of power in our everyday lives. Without the ability to take it apart, inspect it, and modify it to our own use, that power is wielded exclusively by the companies that make the technology.
Software in the modern world is never a standalone work. The indivisible unit of running software is an entire system, from the hardware up to the operating system and ultimately to all the user processes running at once: the true ‘full stack.’ In modern systems, this more often than not also extends to the network level, many computers not just communicating with each other but dependent on each other to carry out their configured function.
In order to understand and debug software effectively, you need the ability to dig into all the layers and layers (and layers! and layers.) of abstraction that make up the system. There are tools for doing that at most layers, even with closed-source proprietary software. But one of the most basic, accessible ways to debug is to read the source code.”
Annie (Web Application Engineer): “I literally can’t do my job without it. Well… I could, but it’d be a lot harder. There are so many resources on it!”
Evan (Senior Web Application Engineer): “I think it’s important because it pulls back the curtain on institutionalized learning and validation. OSS is a level playing field for anyone to work from. And its great for those of us that learn best from experience. That’s why I think it’s important from a community standpoint. From a business perspective, it drastically increases the rate of development. Not just on a project basis, but the rate technology advances and tools mature.”
Eugene (Mobile App Developer): “As a mobile developer, I use open source software all the time. OS frameworks are integrated into every mobile app we write, so we can benefit from open source contributors who worked on those frameworks.”
Liz (Director of Strategy & Account Management): “I appreciate OSS because it allows the technology community and those who use software to continue to innovate and evolve without emptying out our pockets.”
Brad (Senior Web Application Engineer): “I think it represents the best and worst parts of the engineering community; on one hand it promotes togetherness by being a casual environment to build tools, as well as being well-rounded because people of many backgrounds will find multiple issues for a single product, and on the other hand it glorifies workaholism, exploiting people for free labor, and can be used as a tool for harassment.”
Jared (Senior Web Application Engineer): “For me OSS has meant a career. The wide use of Ruby and Ruby on Rails, both pieces of free software, have provided plentiful opportunities and will continue to do so for many more years.”
Chelsey (Intern): “Isn’t education in general OSS? (LOL) But seriously, I can’t imagine having things *not* OSS… maybe it’s a generational thing that I am taking advantage of, having all of these things for free and whatnot, but if you’re going to be a programmer, how can you continue to learn if things are closed off? Having the ability and the power to use things that are open for everyone is empowering.”
Samantha (Intern): “I get that it’s as important for people as the public domain is. OSS is important to give more people access without gatekeeping. I’ve never contributed before, but I would be interested in helping out with a project that I identified with.”
See more about Software for Good’s commitment to open source here.