Best Practices For Scientific Computing

Greg Wilson, D. A. Aruliah, C. Titus Brown, Neil P. Chue Hong, Matt Davis, Richard T. Guy, Steven H. D. Haddock, Kathryn D. Huff, Ian M. Mitchell, Mark D. Plumbley, Ben Waugh, Ethan P. White, Paul Wilson, 2014, PLoS Biol 12(1): e1001745. DOI: 10.1371/journal.pbio.1001745

Prerequisites

How To Write Good Documentation For CSE Software

What Is Good Documentation For CSE Software?

How To Do Version Control With Git In Your CSE Project

What Is Version Control?

How To Configure Software

What Is Software Configuration?

What Is Software Engineering For CSE?

Published May 23, 2018

Contributor Patricia Grubel

Best Practices for Scientific Computing is a good place to start for implementing practices that will improve scientific software development. It is a practical article that presents eight key topics with 24 specific practices recommended for scientists and is useful for anyone on teams that develop or maintain scientific software. The article is brief, so those short on time can glean practices that will aid their development, while those who are new to the practices can work through the suggestions. It is estimated that scientists spend approximately 30% of their time developing software. Best Practices for Scientific Computing is aimed to help those scientists improve their efficiency and productivity and the accuracy of their applications.

The article starts out with a summary of the best practices, making it easy to explore the practices for someone when looking for information on a particular practice or when referring a new team member to one. The article suggests working through these practices one at a time.

If your team has done well in implementing some of these practices, those can be skipped while you emphasize those that need to be implemented or improved. Have someone from your team revisit these ideas to see how the team is doing, what can be improved, and what they need to dwell into for more advanced ideas.

The article suggests implementing the practices incrementally and gives a link to the software carpentry website for more advanced ideas.

Readers may also be interested in resources at Software Carpentry.