Jessi Moths, a solutions engineer at GitHub, shares how we can bring innersource into your company.
First, let's define innersource: it is the application of open source principles to enterprise development.
The open-source community and enterprise teams face common challenges. By looking at how open-source successfully tackles these challenges, we can apply them to our enterprise.
Here are some of those challenges:
Innersource has four goals:
All of this leads to overall better quality software and happier team members.
There are five attributes of innersource in action that are worth calling out:
These attributes of innersource can tackle many of the challenges of communication in enterprise, which can be some of the most difficult ones to solve. You have to speak to people all across the organization to get your work done sometimes. Open source has to model communication in small places in order to succeed, and innersource will help us shore up our communication.
Doing all these things can result in a massive buildup of information. You must curate all of it. Consider these attributes as defaults, not rule of law. And be open with each other, free to suggest changes to improve your quality.
You’ll also want to have a single source of truth for your information in order to promote discovery. Information is useless overhead if no one can find it. This doesn’t mean you have to use one platform across your enterprise, but you should centralize as much as possible.
Remember to design for reuse. Find ways to ensure your information can be reused across many different scenarios. For example, you can link to your business glossary in your wiki from a user story and from a slide deck during a demo.
Next up, keep in mind that documentation is part of your software. It should be part of your day-to-day work, alongside your code. By continually working on it, you will keep the effort needed to maintain it as low as possible while keeping its accuracy high.
Finally, keep friction low for people to contribute to your documentation. For example, don’t require specific team membership for coworkers from other teams to edit your wiki.
By innersourcing our team, we can have effective communication, documentation, and collaboration in our enterprise. Make your processes as open and documented as possible. Keep everything as centralized and friction-free as possible.
In the end, innersourcing will enable you to have a strong, creative team able to create effective software, even in large organizations.
This post was written by Mark Henke. Mark has spent over 10 years architecting systems that talk to other systems, doing DevOps before it was cool, and matching software to its business function. Every developer is a leader of something on their team, and he wants to help them see that.
Photo by Joshua Sortino