When people hear a project or product is open source, they understand that to mean it’s publicly available for anyone to view, modify, and distribute. InnerSource is open source ideology applied to an organization’s internal software development processes and projects. It’s a simple idea with the potential to transform your engineering culture.
What is InnerSource?
InnerSource is a software development approach that leverages open source principles to promote collaboration and code sharing across teams and departments.
Adopting an open source approach to software development allows developers to contribute to projects outside of their immediate team, and it facilitates transparency and knowledge sharing. It also helps organizations manage dependencies and prevent bottlenecks.
How does it work?
Organizations using InnerSource maintain a centralized code sharing platform, which can be as simple as a company GitHub account. The repositories within this GitHub account are set to internal viewership only and not publicly accessible.
All developers across all teams can access and contribute to projects on this platform. Version control systems and collaboration tools like GitHub make it easy to propose changes, review code, and work together.
Benefits of InnerSource
The general goal of InnerSource is to encourage a more open and collaborative development culture. Benefits of InnerSource include:
Improved Code Quality
With more developers contributing to each project, there’s a built-in element of peer review, which means identifying potential issues, bugs, and vulnerabilities early on. This leads to better code quality and a shared sense of responsibility for quality assurance.
With InnerSource, you’re building a robust, searchable repository of code that anyone on your team can refer to and reuse in other projects, which reduces duplication of effort and results in increased efficiency.
Enhanced Transparency and Trust
InnerSource fosters transparency because it allows everyone to see what everyone else is working on. Feedback and conversations are well-documented, and there’s no need to wonder what another team is working on because you can go and check it out yourself.
More Effective Collaboration and Knowledge Sharing
The InnerSource model encourages cross-functional collaboration and knowledge sharing, and it eliminates knowledge silos. When all code is universally available internally, everyone can learn from it, and everyone can contribute their unique ideas and solutions to problems.
Despite the various benefits of the InnerSource model, there are some valid critiques and challenges to overcome with its implementation.
Some people object to InnerSource due to security and privacy concerns. InnerSource may not be the right option for organizations with very strict intellectual property protection requirements or sensitive codebases that need to be kept confidential. But for most organizations, there are ways to restrict access to sensitive projects while still benefiting from the open source model for other projects.
Because it can require a significant shift toward transparency and collaboration, some people might hesitate to embrace the InnerSource model. But as with any organizational change, it takes time to adjust. As the culture shifts, the benefits quickly become apparent, and developers get excited to share what they’re working on.
Process and Etiquette Questions
With Innersource, anyone can make major code recommendations and changes without consulting the team that owns the project. This autonomy is important and should not be discouraged. Just make sure major changes are discussed with your team, and any agreed upon coding standards are followed.
Will InnerSource Work for Your Team?
Most companies can leverage InnerSource to their benefit, and some types of companies might find it particularly advantageous.
Large enterprises, for example, often see major efficiency gains when implementing InnerSource because of how it facilitates knowledge sharing across different departments and business units. Organizations with distributed teams also benefit greatly from the ways InnerSource encourages asynchronous communication and collaboration.
Ultimately, InnerSource can be a great approach no matter the size of your organization or software development team. If your company has the infrastructure and appetite for change, implementing InnerSource is straightforward and simple.
Getting Started With InnerSource
When you’re ready to bring the benefits of InnerSource to your software development team, you can start small. Begin with a few pilot projects with teams willing to embrace and cultivate a supportive environment for collaboration and code sharing. Establish processes for code contribution, review, and documentation. Grow and adapt your efforts based on feedback and organizational needs.
If you’d like to learn more about what it looks like to use InnerSource, or if you have specific questions about how to implement it within your organization, reach out to our team. We have seen the benefits of InnerSource firsthand and would be happy to help you make use of them as well.