a blog by @captainsafia
So you wanna open source a project, eh?
Since I’ve been in the open source ecosystem for a while, I get a lot of questions from individuals and companies about how to join the open source world. Some individuals are interested in making contributions to an open source project. I’ve written and spoken about this extensively, so I’ll discuss another form of involvement in open source. Many individuals and companies are interested in making previously closed-source work available in the open.
I wanna discuss the steps that you will need to take in order to set up your newly open sourced project for success. This post doesn’t address the typical things that are addressed when talking about making closed projects open source. I’m not going to talk about licenses or contributor contracts or documentation — I’m going to talk about people.
These points are specifically focused at companies looking to open source new projects. However, these lessons can easily applied to individuals or small teams looking to build something in the open.
Empathy training for employees
Making a project open source is a great way to test the health and flexibility of your team. An open source project will present new challenges in communication, empathy, and project management for your team. You’ll need to make sure that you’re setting them up for success in this environment. I’d recommend that your employees go through empathy and allyship training, a refresh on communication skills, and a crash course on developer evangelism. These trainings will prepare your engineers for the extra challenge of working with people from a diverse set of backgrounds, communicating their thoughts effectively in the public forum that is open source, and sharing the work they are doing with the world with pride and approachability.
Have the appropriate mental health resources for your employees
Working in open source or helping manage an open source project is stressful for a lot of people. Because of the new challenges mentioned above, your employees might struggle to manage the new environment that they are in — and their mental health might suffer because of it. Before your company makes a certain piece of code open source, be sure to ask yourself “Are we ready to provide our employees the mental support that they need to be successful in open source?” If the answer is no, start developing the mental health infrastructure in your company. Make sure that your health insurance plan provides coverage for psychological therapy, make sure that you provide a good amount of vacation time for your employees, and make sure that your managers are aware and ready to handle the new management challenges that might arise.
Be prepared to value the community over your own employees
As a company, it’s important to take care of and value the employees that you pay to build your product and make change in your industry. As your project gains popularity and engagement, you might discover that one of your employees is a hostile presence in the project. They might disparage individuals who open issues, they might not respond well to not having their changes included in the project, they might engage in elitist behavior and belittle less experienced developers or developers who are not employees of your company. If any of these things happen, it’s important for you to remove this individual from the project (and your business). Regardless of how much value they bring to your company, you need to recognize the negative externalities associated with this individual and reduce the harmful impact they might have on your business and your project.
In the best case (and it’s a terrible best case), this person will hinder your companies marketing, sales, and recruitment efforts. In the worst case, this person might get you into some serious legal trouble.
Have the appropriate management structure in place
When managing an open source project, you have access to the technical and non-technical resources available within your company — and everyone who contributes to your project. As you begin to open source the project, it’s important to make sure that your management processes take into consideration the contributions and abilities of the community around your project. Don’t be afraid to involve contributors who are not employed in your business in key aspects of the project — especially if they are frequent contributors. Open source is open and your management team will need to develop an open mind around resource allocation and issue delegation.
And that’s about all I’ve got for you. In summary, as your company moves towards a more open source focus, you will need to make sure that your team is ready to adopt the ethos of open source — and manage the baggage that might come with it.
If your company is considering open sourcing a new project, but would like to set yourselves up for success, considering hiring me to help you out.