“We are better collectively” is a core ethos of open source development. Underlying this belief is a presumption that everyone shares in collaborating and supporting open source software (OSS). But it’s just that -- a presumption. Today, while small startups to large enterprises rely on and benefit in some form from open source, many businesses are unaware of how they can better support the open source community. Concerns like security and intellectual property inhibit businesses from actively engaging with the open source projects they depend on. However, there are solutions.
Awareness of impact
Before we address how to support the open source community, it’s important to discuss why. I suspect many businesses don’t know how much they rely on OSS. From tractors to refrigerators to banking, software is the supply chain for almost every product and service we engage with -- and open source is behind them all. Just consider how we communicate: Google's Android is the most popular mobile operating system, powering 86% of smartphones in the world. What powers Android? The open source Linux operating system.
I recently connected with Shilla Saebi, Open Source Program Manager at Comcast, who shared with me, “We know that open source is the way the industry is moving. And if we're not participating, then we're going to be left behind. So not only do we want to give back where we're consuming; we also want to see what we can do to help the community.”
With projects like VSCode,Vue.js, Babel, and Kubernetes, OSS has become a necessity for anyone building software. A 2017 report by Black Duck found that 96% of scanned proprietary applications contain open source components. But while OSS is important infrastructure for companies worldwide, it’s still maintained and run by individuals, who often work for free.
Part of the disconnect between leveraging and supporting OSS is due to businesses struggling to find ways to be involved. There are many hurdles businesses must overcome, like technical challenges around contributing to products, not having proper documentation, and regulatory and security concerns.
Contribution strategy and prioritization
We need to work on collectively making the barriers lower for both consuming and contributing to open source.
Open source is a community. As a community, its sustainability depends on our collaborative efforts. Supporting the people that support our infrastructure is then essential to its long-term value and health. Whether making financial donations to maintainers who support the OSS you benefit from or contributing time and work to a project, there are many ways businesses can give back. These efforts rely on awareness of impact, involvement from the community at large through participation, and a clear contribution strategy and prioritization.
OSS engagement from an organization goes beyond code. To drive the change to open source, a cultural shift will need to happen thoughtfully and thoroughly across the organization. Here are our recommendations on how to start:
1. Choose a specific project to support
Can you think of one example of an open source project that you’ve benefited from? And if so, can you think of how you’ve made real contributions to that maintainer or project? If you’re just being a consumer of OSS, consider taking a more active role. This could be as simple as weighing in on an issue or contributing a few lines of code. You can also check whether a maintainer has set up GitHub sponsors if you’d like to fund their work.
2. Consider open-sourcing a tool you’ve built for your team
Some of the top open source projects by large companies were originally built to solve internal challenges. Facebook’s React was created for just that reason. Now it’s one of the most widely used and most starred projects on GitHub. Chances are, you have a tool the larger development and open source community can benefit from.
3. Encourage engagement with the OSS community
At some organizations, engagement with the OSS community is viewed as something developers might do in their spare time, and they’re not always encouraged to engage with OSS while building tools internally. Try shifting the tone around engagement with the OSS community and see what kind of ideas your teams have for contributions to OSS.
4. Break down barriers to innovation
The typical siloed development process slows down the pace of innovation. Some of our customers are big proponents of “innersource”, taking open source methodologies behind their own firewalls to create a more collaborative and transparent engineering culture. Making projects available for everyone in your organization is just one example of innersource. Teams should be able to access documentation, track discussions, and understand how decisions are made.
5. Standardize for better efficiency
Team members can easily collaborate using the same tools and systems as the OSS community. Reduce duplicate efforts and release applications faster by making it easy to discover, customize, and reuse existing internal projects and code.
Software isn’t built alone. Today, open source and the enterprise are more interconnected than ever before, sharing valuable projects, time, and resources. Our goal is to see all businesses open up to open source -- and drive the future of software forward, together.
Mario Rodriguez is a Senior Director of Product Management at GitHub, currently focusing on all things Enterprise. Prior to Github, Rodriguez worked as Group Program Manager at Microsoft where he led the Azure DevOps Platform and Artifacts teams. His core identity is being a learner and time away from product engineering is often spent with his two daughters.