These are points from a presentation about Why Contributing to the Hyperledger Community Will Help Meet Your Goals. Feel free to add to, edit or comment on anything here.
Points about why not to contribute
- It is usually faster to do development on your own or internally
- Your organization may not have created a process that allows developers to contribute
- It may seem like the project is fine and doesn't need help
- Other ideas?
Points about why to contribute
Shape the direction of the project to fit your needs and use cases
Make sure a project you rely on stays active and doesn’t stop
Decrease time to market and accelerate the work of the project
Tap into a worldwide group of people who are interested and want to help
- When the costs (time or $) of keeping your code in sync with the upstream project exceed the convenience of working alone
- When you want your code to be used by others (including customers)
- When you want your code to become a de facto standard or drive adoption of the mainline project
- If you anticipate relying on a certain codebase repeatedly in upcoming products that complements the upstream project
Lower maintenance efforts for internally managed code, i.e, minimizes technical debt
Upstreamed code becomes visible to others and receives peer review and feedback, leading to improvements
Upstream contributions provide stability to the project. They send a signal that the project is useful and important, which helps attract new contributors
Builds a positive relationship between the contributing organization and the project community
Upstreaming code is an effective way to provide technical leadership and influence the project
Upstreaming contributes to easier compliance and improved security due to centralizing code in upstream repos
Upstream contributions are an effective means of ensuring stability in a company's software supply chain
Helps organizations recruit talent from projects and retain their own developers by engaging them with the open source innovation engine