Why your Company Should Contribute to Open Source Software
Driving would be overwhelmingly challenging if every time you were cruising down the highway you’d have to fend off attack robots while sticking to the speed limit. How insane would it be if you had to constantly adjust to an ever-changing road surface? Imagine having to do all this on a dizzyingly curvy road with a breakneck minimum speed limit, without having a navigator to assist you…
Although slightly less daunting, this is sort of what the world of software development is like. Everything is always changing, everyone is always keeping up with new frameworks, design patterns, updates and security patches. Browsers and operating systems keep adding features and clients grow increasingly demanding and relentless.
It’s not an unreasonable reality. The world changes and we all have to change with it. There’s no escaping this truth. But having a little help from some trusted friends would make this never-ending quest a little less stressful.
This is exactly what open source software is, a helping friend.
There’s this popular misconception in the non-technical world that participating in and contributing to open source is a kind of charity activity. Your software developers would be wasting “company time” by working on open source rather than client work, or product work. What you may not know, as a non-technical person, is that there’s usually no difference between the two.
In the highway scenario, you’re driving a car with thousands of parts all designed and made by millions of different collaborators. If you had to make everything from scratch, as Carl Sagan once said, you’d first need to invent the universe.
It’s nearly requisite that the software tools and frameworks your own developers are using are open source software.
You might be a great mechanic but not a good engine designer. You can tweak and upgrade certain things but it’d be wasteful and inefficient to design a new engine from scratch. The same principle applies to software. Sometimes, especially when pushy clients have pressing deadlines, you can’t wait for upstream contributors to add certain features or fix annoying bugs in the infrastructure software your business depends on. Your developers will have to make these changes themselves.
It would be madness to make these changes and not push them back up to the rest of the world. You’d need to fork each piece of software and manage those forks. Every single economist – and person with a sense of time’s worth – will tell you how absurd that would be.
By using the thousands of packages and tools at your disposal, your team has created vested interests in the well-being of these tools. Sometimes, whether through company policies or necessity, your teams may contribute back to the open source community. It’s a type of social contract.
If your company does this enough, it earns a positive reputation. This reputation acts as a signal to the rest of the world about the quality of employment at your company. There’s a strong correlation between healthy workplaces and collaborative teams.
Companies like Microsoft, IBM, Facebook and Amazon are massive participants in this game of collaborative growth. They even have dedicated teams to grow and maintain their flagship open source projects. These are giants. By using their tools instead of reinventing the wheel, any other company can succeed by standing on the shoulders of these giants.
But there’s more to open source than this. Transparent and open collaboration fosters a type of learning process that is very different from the one associated with closed, small team development.
Participation in the greater community teaches you about efficient and civil communication, collaboration, especially remote collaboration.
This opportunity for career growth while providing your software developers an avenue for personal achievement and contribution is invaluable. It’s also a great opportunity for your teams to share their own knowledge with the world.
Sometimes this kind of sharing even helps shape the future of development patterns and principles. A great example is how React and its design approaches have changed the web development world.
Teams that can’t communicate well aren’t able to grow and deliver as efficiently as they could otherwise.. Collaborative projects that require communication with external parties act like whetstones to sharpen your team’s communication skills.
The reality is that no matter how smart your development team is, the open source ecosystem has far more knowledge than your company could ever hire for. This is true for the behemoths mentioned above, and even more so for a much smaller company.
Building atop this fertile land is like gaining access to an army of collaborators.
- October 10, 2019
- 1 min read
- October 8, 2019
- 1 min read
- September 26, 2019
- 3 mins read