What is Inner Source?

Davide 'CoderDave' Benvegnù - Mar 5 '21 - - Dev Community

Wanna know more about Inner Source? This is the post for you!

Let me explain you what Inner Source is, what it means and what problem it solves.

Video

As usual, if you are a visual learner, or simply prefer to watch and listen instead of reading, here you have the video with the whole explanation and demo, which to be fair is much more complete than this post.

(Link to the video: https://youtu.be/tfPhkZ87bEY)

If you rather prefer reading, well... let's just continue :)

What is Inner Source?

Inner Source is basically open source but inside a company or set of companies. You can imagine that it might be desirable for a company to share reusable components internally, but due to legal/monetization/other reasons they don't want to share beyond the company as open source.

Inner Source vs Open Source

Inner Source differs from classic open source by remaining within the view and control of a single organization. The “openness” of the project extends across many teams within the organization, and this allows the organization to even have trade secrets into the code without fear that they will be revealed to outsiders, while benefitting from the creativity and diverse perspectives contributed by people throughout the organization.

Often, the organization chooses to share parts of an Inner Source project with the public, effectively turning them into open source. When the technologies and management practices of open source are used internally, moving the project into a public arena becomes much easier.

Inner Source as vehicle towards Open Source

Also, for companies building mostly closed source software, Inner Source can be a great tool to help break down silos, encourage internal collaboration, accelerate new engineer on-boarding, and identify opportunities to contribute software back to the open source world.

The Discovery Problem

One crucial part of Inner Source is what's referred to as the "discovery" problem: how do you make sure people within the organization can discover the Inner Source projects when they start a new project that utilizes them?

To solve this problem, you have to use the proper tool for the job. While you can use basically any platform to do Inner Source, only some of the toolsets out there make it very seamless. This is one area in which GitHub shines, while other platforms like Azure DevOps are not that developed.

You can for example create something like the SAP Inner Source portal reference, that reads data from your GitHub organization and presents that in a very nice way

SAP Inner Source Portal

If you want to take a look at the portal, you can find it here: https://github.com/SAP/project-portal-for-innersource

Conclusions and Announcement

This was just a very short introduction to Inner Source, but let me know in the comment section below if you want me to go deeper into the topic in another post or video.

Also, before we close, I have an announcement to make, which I'm very excited about. I've finally launched my Patreon page! You can get exclusive content, both posts and videos that are not posted anywhere else. You can influence the content of my YouTube channel, you can have live chats and Q&A with me. But the coolest part is that you can have a 1:1 consultation with me to talk about anything DevOps, GitHub or Azure DevOps.

Patreon

Just visit my Patreon page to see the available options available

Like, share and follow me 🚀 for more content:

📽 YouTube
Buy me a coffee
💖 Patreon
👕 Merch
👦🏻 Facebook page
🐱‍💻 GitHub
👲🏻 Twitter
👴🏻 LinkedIn
🔉 Podcast

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .