I’ve been contributing on and off to PyMC3 and other projects for a few years now. I’m still learning a lot about Bayesian Statistics and building software. I intend to continue to work on this stuff.
Chris Fonnesbeck – recently did a talk at NeurIPS where he talks about some of the stuff we’ve learned in building PyMC.
Since we have a summit next week in London. I’m extremely excited to meet some of the guys face to face, it feels a good point to talk about some of the things I’ve learned.
- There’s a strange inflection point that happens when OSS software gets to critical mass of features, functionality and contributions. I can remember some feeling when PyMC went from something that was considered niche and non-developer ready to a fully fledged product. I can’t quite put my finger on it, but I can remember some point when it was practically impossible to keep up with the pace of development and the code base. I think this is fine tbh – any sufficiently complicated product will have those challenges. – Be prepared for this emotionally and don’t expect yourself to know everything about it.
- Documentation and examples are some of the highest value contributions you can make. Don’t underestimate these, and make sure to value them. One of my greatest personal contributions has been the Rugby Analytics example. I think it’s because sports are an easy to understand domain, and it’s a fairly thorough introduction to multilevel models. – Encourage documentation in your community, and be prepared to work on this stuff not just features.
- Having monthly meetings, journal clubs, slack channels, Discourse. All of these mechanisms work to solve slightly different problems, but they facilitate knowledge sharing, help encourage a community. These days OSS developers will be in different time zones, so a variety of async and sync communication is necessary. – It can take a lot of experimentation to get the right level of communication
It is well known that OSS sustainability is a hot topic. I’m not going to wade into those issues in this blog post. However it’s remarkable to me as a Software Engineer that OSS has won to some extent. I think there’s two reasons for that – access to innovation and access to community. We need to make sure we come up with responsible ways to make sure that’s sustainable. And I personally remember at various points feeling overwhelmed by the guilt of needing to contribute, or give talks about PyMC or whatever. We also recently in the PyMC community had some toxic behaviour on github. It’s this sort of thing that causes developers to leave projects. So be kind people, not many of us are paid to work on OSS full time.