|
|
|
|
|
by hereisdx
2161 days ago
|
|
Apart from a user, I am also a contributor to the Zulip project, for the last ~7 months. The community is very helpful and for getting started with open source development, I can't recommend a better place. You get really high quality code reviews, get to participate in meaningful discussions on features and the development goals of the project, and developers constantly share lots of knowledge in streams like #learning about software development, tech, git, best practices and so on. Also, the documentation is very detailed and the codebase is very high quality. It's really easy to get started. You can find the github org here: https://github.com/zulip |
|
One of our goals as a project is to have a "teaching-quality" codebase, so this is no surprise. I think this is incredibly important and something every community open source project should strive for.
An analogy I like to use is to think about the experience of contributing to your open source project as a product, so you should:
* Do usability studies where you help a group of people try to get started with your product (I used to do this all the time at events like Python conference sprints pre-pandemic). The first few we did were eye-opening as nobody got anywhere without a lot of handholding, and I suspect that's common.
* Make the development environment tooling Just Work and have a good support experience.
* Write good documentation that thoughtfully explains the ideas one needs to understand to participate on your project. My strategy for this was to avoid explaining how things work to a contributor, and instead meet the need by spending a couple hours writing something like https://zulip.readthedocs.io/en/latest/subsystems/sending-me... and send it to them. That way, even if that contributor bounces (as the vast majority of new people who show up to any volunteer organization do), I still used my time well.
I'm planning a series of blog posts on building a successful open source community, since we've spent a lot of time thinking about how to make contributing to Zulip a great experience, and some ideas are subtle (E.g. the secret to being able to give high quality code reviews is equipping new contributors with the tooling and documentation to help them avoid problems before a reviewer even looks at it!), and I regret not having spent more time sharing that thinking.