In different periods of my career I have worked in open source projects in various roles. I even helped starting one from scratch, and although it serves a very niche use case, it still evolves and thrives. In this blog post I meant to capture my favorite take-aways of open source practices that help you grow your impact in open source projects and communities. My perspective is that of a company rather than the individual developer.
What I am listing below is applicable for companies that have innovative software products or services, leveraging the power of open source for rapid feature growth, compelling economics, and wider industry adoption. Companies with well above 90% open source in their code base, with open source software as a key pillar in their corporate strategy.
So, here goes my top-ten-list list of open source practices:
- Ensure alignment between the personal interests of your open source developers and your corporate interests. It is very hard to motivate developers to work on a given project when their personal interests don’t meet with corporate interests. Alignment on interests will have a very positive outcome.
- Allow your open source developers to have dedicated time for their upstream development and contribution, especially if they are a maintainers with responsibilities towards open source projects that extend beyond their own personal contributions.
- Support your existing junior developers with a mentorship program that pairs them with experienced open source developers who supervise their work, support them with code reviews, and advise them before they push code upstream.
- It’s impossible for any company to hire all the senior and most experienced open source developers. Therefore, companies need to increase the competence of their current developers via technical training and non-technical training that address the open source development model and the basic concepts of open source legal compliance.
- Companies can support their open source developers by allowing them to attend, participate and speak in open source conferences and events. Such participations help them connect at a personal level with their peers, build relationships, have face to face social interactions, and participate in technical discussions that guide the project direction.
- Provide an IT infrastructure that allows open source developers to work and collaborate with external projects and communities without any challenges.
- Track the source contributions to all open source projects to evaluate performance, set expectations, and even compare the performance of your company to other companies involved in the same project.
- Focus your open source contributions to projects that directly benefit your products and services, provide value, and show clear return on investment.
- Create collaboration projects with other teams within your company that use or contribute to the same open source projects as your team. These collaborations can take one or more of many forms and have the goal of unifying efforts, eliminating redundancies and focusing the resources on critical set of problems that need to be solved.
- Invest in improving your open source compliance practices. That includes your policies and processes, guidelines, training and tooling to enable automation and creating efficiencies.
I have chosen Swedish branch of Save the Children (Rädda Barnen) as charity. As a father myself I can’t think of anything worse than having my child suffering from catastrophes, unrest or even war, and I know that Save the Children does great things for children in difficult situations around the world. Currently, more than 400,000 children in Yemen are facing imminent malnourishment and I hope this charity helps some of them to a food package, clean water, safety and shelter.