InnerSource: Approach, Benefits, & Usage

Justin Kalicharan
9 min readJul 18, 2023

--

With technology changing at an ever-increasing pace, maintaining strong development practices is essential to remaining competitive. A key practice that is often overlooked is the idea of reusing assets within your company, to quicken the pace, and reduce the effort when creating software.

First you may ask “what is an asset”? An “asset” can be a software development process, a software library, a collection of automation scripts, application code, or even software frameworks. Software developers are familiar with the idea of open-source software (which is open collaboration and reuse of assets), however looking within the company to identify, develop, enhance, and reuse internal assets is often overlooked. This is where the term InnerSource originated, the idea of open-sourcing internal assets.

When teams working with the InnerSource approach build proprietary software using the best practices of open-source software, like Microsoft or PayPal, we get highly reusable code, that can be updated by many different teams, with significant reductions to the cost and time required to build and release software.

In this blog, we’ll discover all about the basics of InnerSource with its advantages.

About InnerSource

InnerSource refers to a software development strategy in which development and engineering teams apply all the best open-source practices to their proprietary code. Not only does it help in introducing an open-source culture within the company, but it also promotes internally-built assets for reuse. Moreover, it strengthens collaboration and brings transparency to the workflow by bridging tasks between departments.

In the InnerSource approach, project managers or scrum masters would work with software engineers and software architects to employ a new practice of checking a centralized book-of-reference for approved reusable assets. This InnerSource portal would be a single spot teams visit first, to find assets to reuse, or find an asset that can be adapted for their specifics business needs.

Applying an InnerSource-First practice ensures teams can reuse existing solutions, empowering talent and eliminating redundant code.

PayPal is one of the leading companies that has incorporated open-source development practices, to transform processes and increase productivity and profitability. They have extended the phenomenon of “open” in open source to challenge teams on how far they can go. Other organizations like Autodesk, Bosch, Bloomberg, and Walmart have adapted their practices of building software to leverage InnerSource ways of working.

InnerSource Designs & Applications within Large Corporations

Like any change within an organization, the most difficult change is often the culture of a company. Here are some considerations when applying InnerSource practices within your organization.

1. Create a Supportive Culture

InnerSource requires a collaborative environment where sharing knowledge and bringing creativity is promoted. Fostering open-sharing of code within your organization and encouraging teams to find and adapt assets from other areas in the organization, encourages cross-team communication, and reduced knowledge silos.

2. Define Clear Goals and Objectives

Setting clear InnerSource strategies helps large-scale corporations to focus on specific business-related goals. It improves the quality of code produced collectively, increases development speed, and encourages a communal knowledge base. Once the teams have a clear objective in mind, only then they can apply and measure the benefits of InnerSource practices.

3. Set up an InnerSource Governance Model

Next, you can fix the governance boundaries for InnerSource projects by determining which teams are included, how they will contribute, how the contributions will be assessed, and how they will handle conflicts or blockers. This calls for the formation of a designated InnerSource team to govern or oversee every aspect of the process.

4. Choose an Appropriate Technology Platform

It is also essential for development teams in large-scale companies to choose a medium for collaboration. Since teams are expanding worldwide, they need an all-in-one platform that is accessible everywhere for tasks like version control, reviewing code, sharing documents, or internal communication like Git. It should be noted that the tool that you choose must match your organizational needs and infrastructure.

5. Identify Initial InnerSource Projects

When you first apply the InnerSource approach, you should start with a pilot project to familiarize your team with the method. Go for projects that require transparency, cross-departmental reliance, and excessive knowledge sharing. Moreover, recruit staff that are open to teamwork and collaboration.

6. Documentation & Guidelines

Based on the goals and governance model you have established, document the new guidelines and policies for development. It should highlight the teams contributing to the project, practices to implement, standard procedures to follow, and collaborative channels. With clear guidelines in order, the results can be consistent, and onboarding new teams will be easier.

7. Provide Training and Support

Large-scale corporations must provide workshops and training for teams on the InnerSource approach. It creates awareness about correct practices, streamlining workflows and simplifying the complexity of tools. From mentorship programs to documentation, attention to training fosters healthy participation and provides a forum to answer questions that will come from adoption.

8. Foster a Collaborative Environment

When it comes to InnerSource, the main approach is to introduce collaboration spaces in the organization. Using collaboration tools like MS Teams, or Slack, provides capabilities to share knowledge, conduct reviews, and provide feedback. Additionally, this gives every employee a means to observe and collaborate in a common space globally.

9. Calculate the Success Ratio

For InnerSource initiatives, companies should define success metrics with their executives to assess the results. The objective and key results (OKRs) should be team focused, and measure improvements in quality of code, redundancy rate, percentage of team collaboration, and the duration of completing each project. These OKRs should be evaluated on a monthly or quarterly basis and utilize the data to polish your approach.

10. Iterate and Scale

With the OKRs in hand and frequent evaluations of your performance, you can iterate, learn from your mistakes, and refine your approach for future projects. If you’ve previously integrated this approach into just one team, you can now expand it to others and gradually to the entire organization. Take constant feedback and improve as you go based on team experience.

InnerSource Industry Benefits

With InnerSource, your organization unlocks several advantages that can reflect on its profitability and growth. Some of these benefits include:

1. Cost Effectiveness

InnerSource can help your organization keep up with a strict budget by saving costs. It promotes code reusability and reduces redundancy in code development. When developers can access and leverage existing internal projects, it reduces the need to develop the same functionality from scratch, saving both time and resources. PayPal reported a 56% reduction in development time and cost by adopting InnerSource practices.

2. Developer Productivity

InnerSource promotes collaboration and knowledge sharing among developers, leading to increased productivity. By making source code and project information more accessible, developers can learn from each other, reuse code, and solve problems more efficiently. A study conducted by OpenTeams found that companies implementing InnerSource experienced an average 22% increase in developer productivity.

3. Risk Reduction

InnerSource helps mitigate risks associated with software development by promoting code reviews, continuous integration, and testing. Increased visibility and collaboration, enables early identification and resolution of potential software issues, leading to higher code quality and fewer defects. This reduces the likelihood of errors and security vulnerabilities. Cisco reported a 30% reduction in defects and security vulnerabilities by adopting InnerSource practices.

4. Innovation and Knowledge Sharing

InnerSource facilitates innovation by enabling employees to contribute their ideas, improvements, and solutions across teams and departments. It encourages cross-pollination of ideas and harnesses the collective intelligence of the organization. This leads to accelerated innovation, improved problem-solving, and the discovery of new approaches or solutions.

5. Talent Attraction and Retention

InnerSource practices create an environment that promotes learning, collaboration, and professional growth. This can enhance employee satisfaction and attract top talent who value open and collaborative work environments. Additionally, by contributing to InnerSource projects, developers can showcase their skills and expertise, further boosting their professional reputation.

6. Agile Development

InnerSource aligns well with agile development methodologies by promoting transparency, collaboration, and quick feedback cycles. It aligns with teams that work in an agile environment, accelerating the pace of development and enabling faster time-to-market for products and features.

Figure 1.0: InnerSource flow between global teams, community, and asset owners

Case Study: PayPal’s InnerSource Journey

PayPal is a leading online payment company, with consumers spread all over the world. They have introduced InnerSource within their development processes to facilitate collaboration, enhance outcomes, and accelerate their processes. With the InnerSource approach, PayPal aims to transform the landscape of the online payment industry.

CHALLENGES

Before implementing InnerSource practices into their development cycle, PayPal has come across a wide range of challenges. These challenges include repetitive code and reduced communication resulting in blockers, and knowledge silos for developers. Since efficiency was impacted, PayPal saw the need for a different and more efficient development methodology.

THE SOLUTION

The following categories details the different solutions PayPal considered, when employing the InnerSource approach:

1. Encouraging Contribution

The biggest challenge was to remove boundaries within their organization. To break down barriers, PayPal established internal forums, communication channels, and emailing lists for InnerSource discussions, which facilitated participation and engagement. These changes promoted developers to share their ideas and knowledge since their contribution were recognized.

2. Establishing InnerSource Governance

To ensure there was an even distribution of work, PayPal created a governance committee that clarified the roles and positions of every employee in their departments, contributions from each role, and responsibilities in an InnerSource model. The governance committee assesses every team for efficiency in project management and reviews quality.

3. Proper Documentation

PayPal wrote new policies and guidelines to establish a consistent process and workflow. With one standard practice documented across every department, it aligned all teams to work in a consistent way.

4. Providing Technical Infrastructure

PayPal invested in additional technical infrastructure and tools to support InnerSource practices. They adopted a Git-based version control system and introduced code review tools that facilitated collaboration and followed quality assurance best practices. Their development teams implemented a knowledge-sharing platform where developers could document their work, share insights, and seek feedback.

5. Choosing InnerSource Projects Wisely

To kickstart the InnerSource initiative, PayPal identified a few key projects with high visibility, cross-team dependencies, and potential for knowledge sharing. These projects were chosen strategically to utilize the benefits of InnerSource completely and gain momentum. The selected teams were enthusiastic about the opportunity to collaborate and contribute to a shared, open, codebase.

6. Cultivating Innovation

PayPal initiated a cultural shift by promoting collaboration and open communication among developers. They organized internal training sessions to familiarize teams to InnerSource ways of working and fostered new ideation around the latest trends to keep up with the market.

RESULTS

After implementing the InnerSource approach in PayPal, here are their key outcomes:

1. Code Reusability & Effectiveness

Using InnerSource, PayPal achieved significant code reuse, reducing duplication, and optimizing development. Developers could easily find and reuse existing code, saving time and effort. This led to faster development cycles, increased efficiency, and reduced costs.

2. Easy Knowledge-Sharing & Open Communication

The InnerSource approach helped increase collaboration across teams and departments at PayPal. Developers openly contributed, reviewed, and discussed code, promoting a culture of knowledge sharing and innovation. This resulted in improved problem-solving, accelerated learning, and the discovery of novel solutions.

3. Reducing Errors

The introduction of InnerSource enabled PayPal to establish rigorous code review processes and continuous integration practices. It assisted in bringing quality code, decreasing errors, and improving data security.

Summary

InnerSource is one of the latest software development approaches that utilizes the standards of open-source systems to facilitate team collaboration. It encourages visibility and collective code ownership and lets every team in the department contribute evenly. It increases efficiency and productivity by utilizing the best practices benefitting every type of organization. Moreover, it promotes reusability, speeding up the development cycle and bringing forward innovation. By following InnerSource practices, organizations will be able to drive better results and market products and services at a much faster rate.

References:

Adopting InnerSource. (n.d.). O’Reilly Online Learning. https://www.oreilly.com/library/view/adopting-innersource/9781492041863/ch01.html

An introduction to innersource. (n.d.). GitHub Resources. https://resources.github.com/innersource/fundamentals/

What is InnerSource? (n.d.). What Is InnerSource? | GitLab. https://about.gitlab.com/topics/version-control/what-is-innersource/

Cooper, & Stol. (2018, June 15). Adopting InnerSource Principles and Case Studies (1st ed.) [Online]. O’Reilly Media Inc. https://paypal.github.io/InnerSourceCommons/assets/files/AdoptingInnerSource.pdf

--

--