This the title of a very interesting talk (which I wish I had given myself!) by Jed Brown of CU Boulder at the 2017 NSF SI2 meeting. Jed is involved in writing code for the Portable, Extensible Toolkit for Scientific Computation (PETSc) , which is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. The practices he describes came largely out of supporting PETSc, yet are applicable across many disciplines. I would recommend anyone wishing to build a software community read these slides before diving into the development.
I am not able to post the slides here, but I will show some “slideshots” that I think have particularly broad applicability; in particular, note the comments about forking in the slide on “Upstreaming and community building,” something I haven’t given a lot of thought to.