I’ve been hearing about Innersourcing for a while now, but I only recently took the time to really understand what it means and why it’s important.
What is Innersourcing?
In summary, Innersourcing is the practice of applying open source principles within an organization.
It involves making code available to other employees, allowing them to contribute, review, and collaborate on projects regardless of where they sit in the company.
Is basically allowing other teams to contribute to your codebase, and vice versa.
Why is important?
It can bring several benefits to an organization, but for me, the most important ones are:
- Innovation: It can lead to new ideas and solutions that might not have emerged within a single team.
- Quality: With more eyes on the code, new perspectives are brought to the table, which can lead to higher quality software.
How is implemented?
Implementing Innersourcing mainly requires a cultural shift:
- Encourage teams to share their work and be open to contributions, through rewards and recognition.
- Define how contributions should be made, reviewed, and accepted.
- Provide tools and platforms to foster collaboration.
TIP
Start simple: for #2, add a
CONTRIBUTING.mdfile to your repositories. For #3, create internal forums for discussions and sharing ideas.
Personal experience
At my current job, we’ve been trying to promote Innersourcing. From my experience, collaboration happens naturally when tasks require it—for example, when one team’s work directly affects another’s. This has been the primary scenario where I’ve seen people actually collaborating across teams.
I also heard about an interesting case where one engineer made a PR to a different team’s repository and eventually got invited to join that team, which is pretty cool.
Overall, I think teams spend most of their time focused on their own work.