Get the highlights in your inbox every week.
How to lead an open source project
4 keys to leading open source teams
I like to be busy and have a lot of energy to be a part of leadership teams in open source communities, aside from my fulltime job as Developer Evangelist for Cisco in the DevNet.
I'm a community leader and member of the PHP and the Joomla communities. I've been part of the Joomla organization since 2011 and have held leadership roles for the past few years. Previously, I was a Board of Director for Open Source Matters (OSM), the organization that supports the Joomla! Project legally, financially, and from all business aspects. For the past year, I've been on the Joomla Production Leadership Team (PLT), which is responsible for coordinating the production of the Joomla CMS and Framework, including the code, documentation, and localization. I was brought on to help evangelise and market the Joomla project in the greater developer communities by speaking about our community and code. I also run the Seattle PHP meetup and Seattle Joomla meetup. And, I organize the Pacific Northwest PHP Conference in Seattle (PNWPHP).
I've learned many lessons learned that I think every open source project and project leader should consider. Here they are:
Culture differences and language barriers
Understand that in a global organization people are coming from different cultures and might also have a language barrier as English is the most common language. Think of it like this: English is most often the 2nd language of open source contributiors. Communication becomes difficult when someone "sounds angry" or "bossy" via email or other text-based coorespondance. Oftentimes, people are not meaning harm in their speak or their assumptions but meaning and context can be lost in translation.
Without transparency in processes you may see communication barriers falter between teams. I am guilty of this and have changed up they way I do things to create transparency, which actually causes less chaos than you'd think. The biggest fear with transparency is negative feedback from the your team or the community. The fear that others may try to stop you from doing things your way or may reject the work your team has already put a lot of effort into. But instead what transparency does is creates a longterm investment in positive communication, and over time, it will create less of a barrier between you, your team, and your community, with less people upset to boot.
Without transparency, contributors and the community will slowly stop trusting you and the process.
Skills vs. behavior
It is heartbreaking when you allow a contributor who is lacking in positive communication, who doesn't get along with others, and who behaves poorly, but is one of the best contributors or coders you've got. Sometimes when you allow that one skilled person to be a part of your team, it can cause many others to work poorly or lose motivation on the project. You could be causing more problems by allowing this type of contributor to be a part of your team. One way to avoid the problem from the beginning is to screen for communication skills before allowing them to have a big or important role on the team.
Find the best tools to communicate with your team and community. Consider tools that allow others to "spectate" and see the process. Create monthly reports for the public to view so the community can see the awesome things you're working on. This will prevent people from thinking your team isn't doing much, or enough, and allows for them to give suggestions and ideas for improvement. Use some kind of collaboration tool and/or a project management tool with task management so contributors can create tasks, assign due dates, and mark tasks off as they become completed.
It is critcial to encourage others and their work. If you constantly give positive feedback and constructive criticism, your team and community will grow.
A great leader recognizes others for the great things they do. Take time to recognize your teammates and contributors for their excellent work. Something as simple as sending a message out on social media saying thank you can go a very long way. You may be surprised at the changes you can make. I regularly send private messages to people recognizing the work they've done and letting them know how I proud I am of their accomplishments.
I once had someone customize and printe out an award congratulating me on the hard work I've done on a particular project. It made me feel great and confident that I can exceed and do greater things. And, as people have recognized me for my work, I have been compelled to "give back" even more, going out of my way to do things for others.
Depending on the situation, and when dealing with major change in processes or organizational flows, it's best to make change at a gradual pace rather than making a large change fast. Make sure ideas and processes are transparent and known to the community with steps and estimated dates of completion. Typically, it's important to do things at a steady pace so you don't shock the community.
There are various ways someone burns out. If you are a "Yes" person, remember it's okay to say "No thank you" or "No, I can't do that, but I can do this." If you would me less stressed or helpful being on less teams or projects, then prioritize them and excuse yourself from one or more. I've seen many people contribute in too many areas at once, then a year later, they disappear and stop working on the project at all. Speak up and let people know when you aren't able to work on particular tasks.
Create new leaders
Leaders should train someone else on the team on how to take over their role in case they move on to another position or project due to a variety of reasons. Part of that is spending time going over processes, but also giving that person full access to all documents and information that is part of leading the team or community.
Encourage and recognize contributors for their work. Bring in contributors, especially on the leadership side of things, based on skills and communication, and not solely based skills. Spend time reading articles on effective communication and learning to act like a leader. Although most of your leadership skills will grow from experience, reading about leadership can help you make better decisions and determine best practices to improve yourself and those around you.
Be as transparent as you can with everything. Allow the community to make suggestions. They are there because they love your project. The contributors are there because they believe in your project. Create gradual change rather than quick changes. And, treat everyone with respect!
Tessa will be giving the talk Leading an open source project at OSCON 2016 on Wednesday, 05/18/2016, 11:05am–11:45am