InnerSource: What can it do for you?
InnerSource: what can it do for you?
Everybody’s heard of Open Source, but what about InnerSource?
InnerSource. I still remember the first time I heard this word. It was during my first interview for Dynatrace and I had no clue what it meant.
The next thing I know, I had to prepare a presentation on the topic and that’s how the beautiful online exploration began.
Luckily I wasn’t alone.
Organizations like InnerSource Commons exist and have tons of documents, free ebooks, and videos. Without them, I would have been lost. And now, after my first six months at Dynatrace, I’m proud to be able to witness how InnerSource can work with our company culture and strengthen it. With our first teams adopting the principles and plans to bring more into the fold, I can’t wait to see what the future holds.
But first, let’s answer a few questions.
What is InnerSource? Why are people talking about it? How does it work? What can it do for my company?
Well, I guess I really set myself up for a challenge, but I’ll try to answer all of these questions as well as I can. And if you still have some, just reach out or join the InnerSource Commons Slack, someone is always happy to answer questions and there is lots of great material to read or watch.
What is InnerSource?
For those who aren’t familiar with the concept here is my own one-line explanation:
InnerSource is a process/culture based on Open-Source principles, only used within a company.
That isn’t too bad!
But let’s go back a little further and define some of these open-source principles:
- Transparency — anyone can view the source code
- Community — anyone can contribute
- Collaboration — individuals or people from different companies work together
- Asynchronous — communications are usually written
- Documentation — this is a consequence of the previous point
Great! Now that we have gotten that out of the way, let’s dig a little deeper.
Why are people talking about InnerSource?
Well, here the answer is actually quite simple. In recent years, the entire software/tech industry has been shifting towards Open Source. Giants such as Google, Microsoft, Facebook, and many others have started their own Open Source programs and the majority has answered this call to action by following them and by contributing more and more to Open Source projects.
In parallel, companies have also noticed how well the open-source structure works, the speed and quality with which code is delivered, and the communities that have developed around different projects. Thankfully many have taken these lessons and started applying them internally to replicate the results and the culture that comes with them. And many companies, software and non, have raked in the benefits.
How does InnerSource work?
Finally! Time to see how it works!
First, it is all based on the idea that any project is visible to all members of an organization. By doing this, everyone has access to all the information and can see who is working on what, what the blockers are, what the next steps are, and, in general, how they work. This is a great way to eliminate silos, reduce duplicate work and create more cross-company collaboration.
Second, all decisions should be documented or more generally take place in written form. This can help others understand why decisions were made and how they intend to move forward. It also reduces the number of meeting as everything can happen in an asynchronous way, therefore everyone has the chance to participate in the discussion.
Third, development or projects are based on a Contributor(C) and Trusted Committer(TC) structure. What does this mean?
- A Contributor is anyone that wants to contribute to a project. They can do so by reading the documentation and discussions available for each project. A contributor can eventually become a Trusted Committer, once they have contributed enough value to the project.
- A Trusted Committer is part of the original team that developed or created the project. They have in-depth knowledge of the utilized technologies and the project itself. TCs, together with the original team, create a series of documents that describe how to contribute, and how and when to get in touch with them.
The objective here is to give contributors the tools to submit great contributions and eventually become TCs. That’s why TCs will review contributions and provide feedback to the contributors. This doesn’t mean they will correct the code, but that they will guide and explain to the contributor how they can perfect their contribution.
What can InnserSource do for your company?
Great, so now that we have gotten the technicalities out of the way, let’s have a look at the advantages InnerSource can bring to a company.
Speed
Releases happen more often, as more people know about blockers and are able to contribute. This aspect is also true for onboarding new people: everything they need to know is available in written form. Questions, structures, and discussions are all documented and searchable.
Quality
Quality is probably one of the most unexpected benefits, but if Open Source has taught us anything it is that a thousand eyes are better than two. More people seeing the code = fewer bugs.
Higher efficiency
It is less likely that two different teams work separately on the same topic, therefore reducing duplicates and saving energy, time, and frustration. Also, it is easier for code coming from different teams to be more compatible as they know how the rest works.
Collaboration
People from different teams can easily work together. A great consequence of this is better company culture, as teams are more likely to see the whole picture rather than the sliver of code they are usually allowed to see. People speak more with one another to collaborate better.
Ownership
People have ideas, they develop them and contribute them. They really have the power to help and drive something forward. They understand “why” decisions are made and how things work.
All the reasons mentioned above make InnerSource too good to turn down or at least too good to not try. Of course, as with anything, there might be drawbacks in the short term; but long term the advantages can be incredible.
So why not give InnerSource a go? What have you got to lose?
Let me know what you think about InnerSource and share your experience if you’ve already tried it out! I’m always happy to talk about it!
InnerSource: What can it do for you? was originally published in Dynatrace Engineering on Medium, where people are continuing the conversation by highlighting and responding to this story.