I came across a GitHub webinar on the secret to writing high-quality code more efficiently.
They spoke about Inner Source, which was new to me, but in a nutshell, and according to this great GitLab page on Inner Source, it can be defined as thus:
InnerSource is a software development strategy in which companies adopt an open source approach and culture to collaborate more effectively.
InnerSource is a growing trend found in high-performing development and engineering teams that adopt open source processes in order to work and collaborate more effectively. When teams use InnerSource, they develop proprietary software and open up the work internally between teams so that everyone — from developers to product managers — can contribute to the source code.”
The benefits of adopting open source development and collaboration workflows within an enterprise or across internal codebases are:
- High-quality code With unit tests, code coverage, and continuous integration, teams improvcode quality earlier in the lifecycle.
- Comprehensive documentation Code is better documented, both in comments and less formallin discussions, leading to a single source of truth and increased transparency and shareknowledge.
- Effective code reuse Code and architecture are discoverable and available across teams anthe organization.
- Strong collaboration Code reviews have less friction, communication becomes stronger, ancontributions increase in number.
- Healthy culture Silos are broken down, so developer job satisfaction improves, leading tbetter retainment and recruitment.
For example, if teams want to make a change to an open source project, they don’t need to gain approval. Instead, they contribute the change and let the system test its functionality and validity. In practice, teams fork from the codebase, make modifications, and create a merge request which the other developer can verify it, ask questions, and test it.
This same workflow can be adapted within a small developer team or larger enterprise to remove friction between teams and staff, for all the reasons listed above.
- GitLab on Inner Source - https://about.gitlab.com/topics/version-control/what-is-innersource/