Better Scientific Software Communities (BSSC)
What is BSSC?
BSSC is a series of guides that are developed with the support of the Better Scientific Software project (BBSw). The articles collect knowledge about growing and managing the community around a scientific software project and make this knowledge accessible to current and future maintainers. The tutorials are split into small modules for better accessibility. If you are currently maintaining a scientific software project, or think about starting one, we hope to have some useful information for you.
Note: There is a lot of information about managing open source projects in general, and about technical best practices for software development (see Resources). BSSC is specifically for managing communities of scientific software. We provide links to general resources, but do not discuss them in detail.
Current List of Modules
- Engaging scientific users at project launch,
- Integrating scientists uncomfortable with open-source software,
- Balancing community and architecture work with scientific research,
- Combining high software quality with a welcoming atmosphere for diverse contributors,
- Mediating between users working on conflicting features or overlapping publications,
- Providing fair credit and growth opportunities for contributors,
- Managing relations with competing projects,
- Managing changes in leadership, manage project forks
Data Basis
These guides a not a scientific study. They are based on my own years of experience, anecdotal evidence, and the answers to a questionnaire that was thankfully answered by a number of successful scientific software projects. Therefore, we can not prove that these guidelines are useful, just that they worked for some projects in the past.
Contributing
Any contribution to this project is welcome and will be acknowledged in the list of BSSC contributors. Please follow our contribution guidelines when making a contribution.
Who am I?
I am a maintainer of and contributor to open-source scientific software projects for the majority of my (still short) scientific career. I am a computational geophysicist by background, and I started as user, then developer, then maintainer of a project called ASPECT that models rock movements in the solid Earth. I later started working for the Computational Infrastructure for Geodynamics, an organization commited to developing and disseminating software for geophysics and related fields. Since then I have worked on and provided guidance to several other software projects in the Earth Sciences. During my work on these projects and during conversations with maintainers of other scientific software projects I have experienced that while many projects employ state-of-the-art technical best practices, they often struggle to create and maintain an active and welcoming community around their software.
As a BSSw Fellow, I want to develop a tutorial series that discusses the typical social challenges that arise during the evolution of a scientific software project. Aimed at current and prospective software maintainers and community leaders, the tutorials will discuss topics such as building a welcoming community atmosphere, overcoming skepticism of sharing science and software, mediating between users working on conflicting topics or publications, and providing credit and growth opportunities for contributors.
Resources
Most of the modules contain some links to further reading specific to the questions that are addressed in that module. However, there are also excellent resources available that cover the open-source software (if not the science) side of this material. I highly recommend the following pages for further reading. Many parts of this website have highly benefited from these resources:
Code of conduct
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in BSSC and our community a harassment-free experience for everyone. Therefore we have adopted a code of conduct following the Contributor Covenant Code of Conduct. We expect members of our community follow these guidelines to make sure we create a welcoming and open environment for everybody.