Work

Better together: Elements of successful scientific software development in a distributed collaborative community

Year: 2020
Type: article
Abstract: Many scientific disciplines rely on computational methods for data analysis, model generation, and prediction. Implementing these methods is often accomplished by researchers with domain expertise but without formal training in software engineering or computer science. This arrangement has led to underappreciation of sustainability and maintainability of scientific software tools developed in academic environments. Some software tools have avoided this fate, including the scientific library Rosetta. We use this software and its community as a case study to show how modern software development can be accomplished successfully, irrespective of subject area. Rosetta is one of the largest software suites for macromolecular modeling, with 3.1 million lines of code and many state-of-the-art applications. Since the mid 1990s, the software has been developed collaboratively by the RosettaCommons, a community of academics from over 60 institutions worldwide with diverse backgrounds including chemistry, biology, physiology, physics, engineering, mathematics, and computer science. Developing this software suite has provided us with more than two decades of experience in how to effectively develop advanced scientific software in a global community with hundreds of contributors. Here we illustrate the functioning of this development community by addressing technical aspects (like version control, testing, and maintenance), community-building strategies, diversity efforts, software dissemination, and user support. We demonstrate how modern computational research can thrive in a distributed collaborative community. The practices described here are independent of subject area and can be readily adopted by other software development communities.
Language: English
Open Access status: gold
Estimated APC paid: $2,500
Awards: G1064193810, G1066706594, G1094994676, G1987214103, G2007023920, G2034479465, G2101168040, G215535693, G2197666047, Rosetta: An Integrated Macromolecular Modeling Suite, G2300272407, G2547820421, Predicting Protein-DNA Interactions with Structural Models, G2785242417, Order in Disorder: Context-dependent strategies for integrating peptide-mediated interactions, G336284209, Ensemble Docking Interrogates Structural Determinants of Ligand-Protein Interactions, G380482681, G3935982496, Computational Design of Protein-Ligand Interfaces - a Therapeutic Strategy, Computational design of specific binding proteins using Leave-One-Out, G4664997997, Interactions between Turbulence and Waves: Kinetic Approach, Computational tools for understanding chemically modified RNA structure and interactions, CI-EN: Collaborative Research: Enhancement of Foldit, a Community Infrastructure Supporting Research on Knowledge Discovery Via Crowdsourcing in Computational Biology, G5371488306, G5743278651, G590594143, G6204560716, Directed Protein Evolution for Design of LAGLIDADGs with Novel Recognition Speci, G676004083, Computational Methods for Requirement-Driven Protein Design, G7079438, ABI Innovation: Robotics-inspired modeling and design of proteins, Computational Modeling of MUC1 Glycoforms for the Development of Cancer Therapeut, G759778078, G7842614533, Directed Biomineralization: Designing Peptides to Control Crystal Nucleation and Growth, G8608450990, Computational design of new protein structures and interactions, G879674629, G9000022141, G9000025774, G9000028358, G9000054956, G9000068992, G9000070101, G9000097047, G9000101530, G9000109110, G9000141891, G9000144513, G9000176553, G9000236365, G9000274851, G9000288944, G9000295081, G9000340286, Modeling and design of complex RNA structures, Decrypting Variants of Uncertain Significance in Long-QT Syndrome, Integrating computation and genetics to quantify specificity in protein networks
OpenAlex ID: W3022874274
FWCI: 5.317
Cites: 41
Cited by: 42
Related to: 10