Good Enough Practices in Scientific Computing

Good Enough Practices in Scientific Computing presents a minimum set of practices for starting reproducible workflows needed for scientific computing research.


What is Productivity?

What is Sustainability?

What is Software Engineering for CSE

Published April 29, 2019

Contributor Patricia Grubel

G. Wilson et al., 2017. DOI: 10.1371/journal.pcbi.1005510

The authors target researchers who are new to scientific computing, short term projects, and small collaborative teams. However, anyone who wishes to improve scientific computing research practices can benefit from examining the practices described. The title of the article is somewhat misleading, since it covers many good practices, but may be interpreted by some to be "good enough". This article is not meant be a guide to restructure practices of a successful research team, but to aid individual new researchers and teams that need to add or improve current practices. Good Enough Practices in Scientific Computing can be a tool for the beginning graduate student, intern, or anyone new to research computing. Professors and mentors will find it beneficial to direct students and interns to this article very early in their research.

The article starts with a summary of the specific practices organized into the following key topics:

  • Data management
  • Software
  • Collaboration
  • Project organization
  • Keeping track of changes
  • Manuscripts

The practices include using manual methods or version control systems for preserving analysis procedures and manuscript development. Including manual procedures can help the beginner start good practices before learning git or another versioning system. Data management suggestions include preserving raw data, determining and producing "analysis-friendly" data, saving steps to produce intermediate data, and submitting data to public repositories. The summary can be used as a checklist by new and mature researchers and team leads. New scientific researchers will benefit from reading the article in its entirety then carefully implementing the minimum practices. The authors have assimilated these practices from their personal experiences, and from the experiences of thousands of participants in Software Carpentry and Data Carpentry workshops.