DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’» is a community of 963,274 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

Create account Log in
Cover image for How to Build Great Open-Source DevTools: With Max Howell (Creator of Homebrew)
Maxim Wheatley
Maxim Wheatley

Posted on • Updated on

How to Build Great Open-Source DevTools: With Max Howell (Creator of Homebrew)

I sat down for over an hour with the creator of one of the world's most successful developer tools, the near ubiquitous Homebrew package manager. This is the first in a four-part series that dives deep into our conversation to share some of the most actionable insights with the community.

In today's blog, I get into the thoughts, advice, and lessons that Max shared when it comes to building and managing great open-source developer tools.

Thank you to the Apache DevLake community for making this event possible, and to Max Howell for his time, wisdom, and generosity! DevLake is the open-source Dev-Data platform bringing all your DevOps tools into one customized, transparent, powerful dashboard!

"I think part of what allowed Homebrew to take off so quickly, was that by design, but also somewhat unintentionally, it was really easy to start hacking on, without needing to invest a massive amount of time or effort to get going." - Max Howell

Here are some of the most interesting and actionable insights he shared with us on building great open-source developer tools:

  • Figure out how to make error handling and messaging as informative as possible. The more you can help your users help themselves, the more readily your project can scale. Responsiveness is essential to build a great community, community is essential to building a great open-source project, if you aren't in a position to remain responsive as you grow, you'll be challenged to really scale.

  • Start small, and with a clear use-case and workflow. If your project is too large in scope and ambition, it can be challenging for developers to figure out the codebase and even harder to get started. Even if you have a grand vision, reduce it to the most essential ingredients.

  • Put together a ReadMe that quickly gets new people up to speed on several key things:

    • What is this, and what makes it new and different?
    • Who is this for, and what will they do with it?
    • How do they get started and how do they use it?
  • Don't make your releases "too polished" and be mindful of achieving a balance where there are clear areas and opportunities for new contributors to fix and improve things. There are levels to becoming even more strategic with "good first issues" etc.

  • From a product/project strategy perspective, be cautious about adding too many features, if you make it easy for the user to "shoot themselves in the foot", it's less likely that they are going to keep using the product. Reliability in both implementation and execution are critical to obsess over. If people 'hurt themselves' or their project with your tool, they'll never come back.

  • As a project leader, you need to stay focused on how you're really empowering your end-users to work more effectively, seamlessly, and quickly on the things they care about:

    "They don't care about your project, they're probably grateful for it, but they care about what they are building, what they are working on, and that your project helps them do that better." - Max Howell

  • Be obsessed with reducing the number of steps and the number of proverbial "hoops" to jump through to get to the key distinguishing feature.

"90% of developers don't want to spend excessive time tinkering with things, figuring out something that they may or may not end up finding valuable, the power users will hack their way through regardless, but to get real momentum it has to be easy and FAST."

  • Find ways to really work with the major ecosystem tools, platforms, and infrastructure "open source developer tools are always incremental, and built on the shoulders of giants." You don't want to build something that requires some fundamental shift in how they are already working, to succeed you have to be harmonious with existing behaviors, and require the least amount of behavior changes to adopt.

In my next blog from this interview, I'll be sharing Max's thoughts on how to maintain and manage an open-source project effectively as it goes from initial community-pick-up to global sensation. Follow along for the next post!

Join me for my next interview with Sharan Foga, Board Member of the Apache Software Foundation this Thursday!
https://lu.ma/01lv9yy0

Learn more about what we're up to with DevLake: https://github.com/apache/incubator-devlake

Top comments (8)

Collapse
 
ppborah profile image
Prasurjya Pran Borah

Insightful! πŸ’‘
Thanks for sharing @maximwheatley! πŸ™Œ

Collapse
 
maximwheatley profile image
Maxim Wheatley Author

Always so grateful for your amazing support and work in our community Prasurjya! You're awesome!

Collapse
 
shreya_gr profile image
Shreya

thanks for sharing. Shaping the one so this is insightful piece :)

Collapse
 
eurico98 profile image
Eurico98

Intresting post

Collapse
 
maximwheatley profile image
Maxim Wheatley Author

Thank you for reading it! Hope you learned something too! :-)

Collapse
 
ramessesii2 profile image
Satyam Bhardwaj

Waiting for the next blog :upside_down_face

Collapse
 
maximwheatley profile image
Maxim Wheatley Author

Here it is! Another one coming out next week too! :-)
dev.to/maximwheatley/tips-for-mana...

Collapse
 
ramessesii2 profile image
Satyam Bhardwaj

awesome, thank you @maximwheatley

πŸ‘‹ Have You Posted on DEV Yet?

Head over to our Welcome Thread and tell us a bit about yourself!