I sat down with Max Howell, the creator of Homebrew, one of the most widely used dev-tools ever, and one of the most ubiquitous open-source projects of recent years. In my conversation with him, Max shared some interesting insights on how he managed to maintain and manage a great product and project.
This conversation was part of the DevLake community meetup, DevLake is the open-source dev-data platform giving you the power to connect, query, and visualize data from all your development tools, all in a totally personalized dashboard.
So let’s get into it!
An important point in being an effective open-source maintainer, is that it is truly all encompassing:
“It’s a crash course in everything from product management, to customer service, to design, to DevOps… you really have to be ready to do all these things or recruit and engage people that can.” – Max Howell (Creator of Homebrew)
1. Create a list of relevant forums, and pay close attention to the questions and discussions:
As you get started, identify projects with similar use-cases, features, tech-stacks, and audiences, and make it part of your process to understand where things go wrong, what kinds of issues people run into, and figure out how you can preemptively account for these wherever possible.
As you get more traction and a community, you need to monitor everywhere (not just your own community) to ensure you’re being as supportive as possible.
2. Get really good at saying NO. With meaning.
Early on especially, there is a temptation to accept almost anything that comes in, but if you do this your project can lose purpose, vision, or quality. As the maintainer you need to be comfortable saying no, and providing feedback and guidance to ensure the next contribution is worth saying yes too. You also need to be extremely clear about what is acceptable, what the purpose of the project is, and what the roadmap should look like. The less guessing contributors have to do, the better the project and product will be.
3. Don’t leave things too polished.
There is always a temptation towards perfection. However, if you don’t leave opportunities for users and community members to find bugs, issues, or opportunities to polish the project, you’ll overly constrain the ‘hacking’ opportunities for people to get their hands dirty.
4. Keep your documentation as simple and consolidated as possible.
Think about the user-experience of your documentation and ReadMe as a product unto itself, try to reduce the number of pieces that are necessary, consolidate where you can, and optimize to make things interesting and easy to read.
5. Less features = Better product.
Be disciplined with your roadmap, use-cases, features, and goals. The more this grows, the less coherent the vision will remain, and the chances of shipping seriously buggy or unstable releases increases dramatically.
6. Don’t be afraid of becoming a leader and ‘figurehead’
Many new maintainers feel a sense of “Imposter Syndrome” and as a result shy away from the spotlight or from taking charge of their own project. In Max’s words “Every great project ever, there’s been some clear person, a clear leader who can set the goals and make the decisions.”
There has to be somebody who leads the project and does so publicly to set the tone, be accessible, share the updates and insights, and make the decisions.
7. Be comfortable with the ‘thankless’ nature of OSS.
Many new maintainers struggle with the reality that for the most part, their users won’t have an opportunity or motivation to reach out and thank them or share their stories. Once you’re growing, you have to accept that the joy and satisfaction is in building something great, and with the faith that you are enabling others to build great things, and that ultimately it will indeed be worthwhile.
In my next blog, I’ll be sharing Max’s thoughts on the future of open-source, and what he believes the current challenges (and future solutions) will look like!
Follow along for the next post!
Join me this Thursday where I will be discussing open-source sustainability with Joseph Jacks (Founder of OSS Capital and the Open Core Summit): https://twitter.com/i/spaces/1BRJjngEvqNJw?s=20
*Learn more about what we’re up to with DevLake: * https://github.com/apache/incubator-devlake