DEV Community

Cover image for So You're Interested in Being an Open Source Maintainer
BekahHW for OpenSauced

Posted on • Updated on • Originally published at opensauced.pizza

So You're Interested in Being an Open Source Maintainer

A lot of contributors ask how to become a maintainer. I became a maintainer by creating an open source project and inviting others to contribute. @Ayu and @Chrissy became maintainers of some OpenSauced repositories by contributing to the projects, demonstrating leadership by helping others, and through their support for maintainers. There’s no one direct path to maintainership, but one piece of advice I give contributors who are interested in that path is to understand the role before taking it on. Being a maintainer can be lonely, and there’s a lot of work that goes into it that you should be aware of before jumping into the role. With that said, if you understand the role and have the capacity to take it on, you might find—like I did—that it can be one of the most gratifying experiences you could have in tech.

Understanding the Role of an Open Source Maintainer

Open source maintainers wear many important hats to ensure the health of the project. You are not just a contributor; you are a leader, mentor, strategist, marketer, community manager, and above all else, you should be a good communicator.

The Multifaceted Role of an Open Source Maintainer

Leadership and Vision

Open source maintainers keep open source projects running smoothly. You set the project's direction, define goals, and ensure that everyone adheres to the project's core values. You also manage the code, build a community around the project, and ensure quality code. This isn’t to say that you should be an expert in all of these things, but you should be able to build on existing skills to accomplish the following:

  • Prioritize issues and manage pull requests. This means deciding which issues are the most important to fix and then working with contributors to fix them. You also review pull requests, which are changes to the code that others have submitted, to make sure they are high quality and follow the project's coding standards. Not all pull requests will be code, though. Documentation updates could be the primary goal of the project or necessary updates that need to be made.

  • Guide new contributors, provide feedback, and resolve conflicts. Helping new people get started with the project, providing feedback on their PRs and issues, and resolving any conflicts between contributors could be one of your most important jobs as a maintainer.

  • Foster a welcoming and inclusive community, encourage contributions, and engage with users and contributors. Creating a positive and supportive environment for everyone involved in the project, encouraging people to contribute, and communicating with users and contributors to understand their needs are necessary for a successful project.

  • Ensure the reliability and stability of the project through testing, code reviews, and maintenance. This means testing the code to make sure it works as expected, reviewing changes to the code to ensure they are high quality, and fixing any bugs that are found. You should take the time to run the code and test it manually, ensuring that you avoid merging in bugs or breaking changes.

Governance

Governance is one of those words that you might hear people toss around a lot, but never explain. In open source, it means the framework of rules, practices, and processes that guide how decisions are made and how the project is managed and evolved. Governance can encompass everything from how contributions are accepted and integrated to how major decisions are made and conflicts are resolved.

You have to maintain and ensure the established guidelines and standards for a project are met, and, depending on the stage of the project, you may also play a key role in shaping them. Because you should deeply understand the project's vision and goals, you also ensure they are consistently met by coordinating contributions, managing the project roadmap, and leading by example.

Transparency is a key value of open source projects, so you should facilitate and encourage transparent and open communication. This allows for the voices of all contributors to be heard and valued. This allows for a resilient and engaged community to grow.

Community Building

Fostering a welcoming and inclusive community, encouraging contributions, and engaging with users and contributors is one of the most important parts of creating a supportive environment that grows with the project.

Astro has one of the most highly regarded communities because of their willingness to support contributors, create a clear path for contributors, and encourage the growth of the community.

Astro Contribution Chart

Fostering a strong community means creating clear paths of communication, which starts with creating clear contribution guidelines, READMEs, opportunities for feedback, and ways to engage with the community.

Challenges and Benefits of Being a Maintainer

Maintainership comes with its unique set of rewards and challenges.

Challenges

Time Management and Burnout for Open Source Maintainers

Open source maintainers often have to balance their project responsibilities with their personal commitments. This can be difficult, especially if the project is large or complex or you don’t have support. Especially for solo maintainers, the work can start to feel burdensome and even lead to burnout. You may also feel pressure to keep up with the latest changes in the tech, which can be time-consuming. Because open source maintainers are responsible for so many tasks, it frequently feels like there’s not enough time in the day to complete all your tasks, respond to comments, review PRs, and code the project.

With all these demands, including the demands of users, burnout is a real risk for open source maintainers, and it's important to take steps to avoid it. Some things you can do to avoid burnout include setting realistic expectations, taking breaks when needed, and getting help from others when possible. I know that’s easier said than done. It is easiest to set these boundaries when you’re starting out and make sure you stick with them as you grow into your role.

Dealing with Conflict for Open Source Maintainers

Open source projects are often home to a diverse group of people with different ideas and opinions. This can lead to conflict, which can be difficult to manage. You also have users that might demand a feature or a fix or an immediate response. You need to be able to listen to all sides of an issue and find solutions that are in line with the goals and values of the project. Part of dealing with conflict also means setting boundaries. It’s okay to make it clear that you take time off on the weekend or you don’t answer outside of business hours. Remember, building sustainable habits is key not only to your success but the success of the project.

Another way to handle conflict is by having a Code of Conduct (COC) that you can refer to and that you update as needed. When you have a COC in place and a contributor or user behaves in a way that violates the COC, you can point directly to the rules and guidelines set up for the project.

Sustaining the Project for Open Source Maintainers

Open source projects are often maintained by a team of volunteers who are passionate about the project and want to see it succeed. However, there are a number of challenges that maintainers face when trying to sustain an open source project. Some of these challenges include:

  • Finding and retaining contributors: It can be difficult to find and retain contributors for an open source project. Contributors need to be motivated and have the skills and knowledge necessary to contribute to the project. They also need to be able to work well with others and be willing to follow the project's guidelines.
  • Managing the project's codebase: Open source projects can have large and complex codebases. This can make it difficult to keep track of changes and to ensure that the codebase is well-organized. If you’re starting a new project, it can be equally difficult to make decisions on how to organize the code base and make decisions about what technology to use.

  • Communicating with the community: Open source projects are often community-driven. This means that maintainers need to communicate regularly with the community to keep them updated on the project's progress and to get feedback.

  • Managing the project's finances: Open source projects can have financial costs. This includes the cost of hosting the project's website and infrastructure, and the cost of the maintainers time.

Benefits of Maintainership

Being a maintainer has its benefits, whether you’re early in your career or you’ve been in tech for a while. Frequently, the benefits outweigh the negatives and, in fact, navigating the challenges listed above are great ways to show grow and to build on your skillset.

Personal and Professional Growth

As I said earlier in this post, maintainers practice and develop leadership skills, and they do it in the open. That means as you grow as a leader, you’re growing in a way that maximizes your visibility. Some of the ways you can enhance your technical and leadership skills while fulfilling your maintainer responsibilities include:

  • Mentoring contributors to your project.
  • Writing blog posts and articles about your project.
  • Giving presentations about your project at conferences.
  • Networking with other maintainers.
  • Doing PR reviews, writing issues for contributors at different technical stages, and by receiving and making decisions about feedback.

If you’re early in your career, this can be a practical way to grow with external motivation. Unlike a tutorial, the project and its contributors depend on you to make decisions, to understand and communicate the direction of its development, and to progress with them.

Networking Opportunities for Open Source Maintainers

Being an open source maintainers allows you to build connections with other developers, organizations, and potential employers in a way that you can’t replicate elsewhere. Being a maintainer, allows you to connect with other maintainers who understand the role's challenges. You may also find that you have additional access to groups, events, and communities made for maintainers.

By building relationships with other developers and organizations, open source maintainers can learn from others, share your own expertise, and find opportunities for collaboration and even employment.

By taking advantage of these networking opportunities, you can build a strong network of relationships that benefit you both personally and professionally.

Influence in the Open Source Ecosystem

Your project can have an impact on the open source ecosystem in a number of different ways. First of all, when you provide a supportive contributor experience, you’re investing in the open source ecosystem. Not only will your project benefit, but other projects that have the same contributors will benefit from their experience, their knowledge of best practices, and the impact that your experience has made that will travel with the contributors.

Depending on what you’re building, your software can have an impact on the landscape of open source. Are you building tools that other developers will benefit from? Are you innovating or experimenting with technology? Are you trying something new?

Being a maintainer improved my understanding of building projects, working with contributors, making decisions, and being able to communicate. I honestly don’t think any course, bootcamp, or education could have given me the experience that allowed me to grow into the Developer Experience Lead today. If have experience as an open source contributor, becoming a maintainer can be a great way to advance to the next level of your career. It might be your own project, a project you’re working on with others, or one of the projects you’ve been contributing to. No matter what, that experience will be an invaluable learning experience.

Top comments (3)

Collapse
 
glntn101 profile image
Luke

Great, thanks!

Collapse
 
jarvisscript profile image
Chris Jarvis

Great overview of how to be a maintainer.

Collapse
 
bekahhw profile image
BekahHW

Thanks, Chris! I have more coming.