Pattern: Open Source Internal Projects
Use open source solutions for any software need that is not directly related to the company’s core business valueThe company is building a lot of software, but most of it covers generic needs—only a minor percentage is related to delivering the actual core business products/services.
In This Context
When a project is strictly internal, there is a tendency to cut corners to save time.Meanwhile, the open source community is constantly coming up with new tools to solve business use cases in the cloud native world.Internal projects that are not in a company’s core business area take time away from that essential work. Furthermore, they rarely get the priority to be built at the highest quality, and always get lowest priority for maintenance. Over time they become outdated and quality suffers, while innovation is limited or lost. Meanwhile, the rest of the market goes full-speed ahead.
- When something is invisible to the public, there are few incentives to make it nice.
- There are many other teams outside of the company having similar challenges.
- Good devs are attracted to interesting tech.
- Internal projects rarely get budget for cosmetic or procedural improvements.
- Many major cloud native tools are open source projects (Kubernetes!).
Therefore
All software that does not address company core business (“secret sauce”) can be open sourced from the start.
- Use open source software (OSS) whenever possible.
- New projects should be OSS by default.
- Use OSS governance and development practices even for internal projects.
- Always give back by contributing to the open source products you choose.
- Promote and market OSS projects.
Consequently
If there is a gap in functionality, instead of building a new solution internally, contribute to existing open source projects and contribute back to them. Alternatively,create your own open source solution and invite others to use, contribute to,and improve it.
- Code quality is higher, as the project is more visible.
- Contributions from other people help the project continually improve.
- Contributing to OSS boosts the company’s tech reputation.
- Lose some control.
- Competitors can use it too.