The Carpentries Lab: Good Enough Practices in Scientific Computing

A peer-reviewed lesson, based on 2017 paper of the same name, has been added to The Carpentries Lab

We are delighted to (belatedly) announce the addition of a new community-developed lesson, Good Enough Practices in Scientific Computing to The Carpentries Lab. The curriculum was peer reviewed in the Lab Reviews repository, and approved for inclusion in The Carpentries Lab on 17th July 2023.

The Carpentries Lab was set up as a space for peer-reviewed lessons developed by the community. Designed to complement The Carpentries Incubator, where the community collaborates on the development of new lessons on a wide range of topics, the Lab is intended to serve as a platform for open peer review of these community-developed lessons and the hosting of lessons that have passed through that review process.

About the lesson

The lesson was inspired by, and adapted from, the paper Good enough practices in scientific computing1 by Greg Wilson, Jennifer Bryan, Karen Cranston, Justin Kitzes, Lex Nederbragt, and Tracy Teal, which “presents a set of good computing practices that every researcher can adopt, regardless of their current level of computational skill.”

This lesson addresses good practices for data analysis, computing, and collaboration that are broadly useful for researchers. The underlying principles of planning, modular organization, good names, and documentation, are important for both novices and experts who take computational approaches. The lesson helps novices to learn these good practices in their own right, empowering them to learn other computational skills. For example, novice programmers can struggle with poor planning, poorly organized files and projects, unclear names for variables, documenting and describing their code. Teaching good practices separately means that programming lessons can focus on programming concepts and syntax. Making good practices explicit also helps more advanced researchers to collaborate with others, and to explicitly teach good practice to novices.

The lesson was developed by a team based primarily at the University of Edinburgh: Tomasz Zieliński, Andres Romanowski, Emma Wilson, Felicity Anderson, Elvina Gountouna, Matthias Mimault, Alison Meynert, Edward W.J. Wallace. The team has a mixture of roles in research support, biological and biomedical research, and bioinformatics. Many members are Carpentries instructors, and all are committed to helping colleagues to use computing better in their research, especially bioinformatics. For example, Edward Wallace is a quantitative biologist whose research group investigates gene regulation in fungi, and Alison Meynert was a Research Fellow and Bioinformatics Analysis Core Manager who’s about to transition to a role at Fulcrum Genomics.

“After many years teaching computational skills, we came across the same problems repeatedly: learners get stuck on names, concepts, and organization.” said Edward Wallace. “We first adapted the Good Enough Practices paper into a workshop, initially as PowerPoint slides. Within the UKRI-funded Ed-DaSH project, we turned the material into a Carpentries-style lesson, which required distilling key messages and concepts using less text, while adding more interactive material. After years of iterative improvements based on learner and instructor feedback, we find the material to be very effective.”

He adds, “From another perspective, the target audience is ourselves several years ago: it’s the skills that we value now, that we wish we had learned earlier.”

About the Review Process

The lesson was reviewed in a public issue thread on The Carpentries Lab reviews repository. After some initial editorial checks, the curriculum was reviewed by two volunteers from The Carpentries community: Lex Nederbragt and Heidi Seibold. Lex is a Carpentries Instructor and Instructor Trainer, an Associate teaching Professor at the University of Oslo, and one of the authors of the original paper that inspired the lesson. Heidi is an Open Science trainer and consultant, and an independent researcher at IGDORE.

The authors shared these reflections on the review process and how it impacted the quality of the lesson:

Peer review brought in a whole host of improvements that collectively made the lesson far better. It clarified the core messages and reduced duplication. We were delighted that Lex Nederbragt was a reviewer, as he is one of the authors of the original Good Enough Practices paper and star of the memorable “a video introduction to live coding, part 1 and part 2” , used in Instructor Training.

The peer review experience was very helpful and positive. Everyone was constructive and really worked to make the material better. The review process took a long while, many months, and far longer than we’d budgeted in our grant application to fund staff time to develop the workshops.

Next steps

The authors routinely use the lesson for training of first-year graduate students in biological and biomedical sciences in Edinburgh. Feedback is overwhelmingly positive, which they find gratifying after putting so much work into developing good material.

They shared this advice for other Carpentries Instructors who might wish to use the lessons:

We recommend the workshop for first-year PhD students, for researchers who are moving through collecting data towards larger-scale data analysis, and for those who have started to write code and need help organising it. We particularly recommend it as a preliminary before learning about version control with Git, and have designed it with that in mind. It addresses a gap in the Software Carpentry Git lesson, where our learners had reported that the lesson told them how to use Git but did not explain what Git is for. For researchers in biomedical sciences, the workshop prepares for Project Management and Organization for Genomics, which gives practical applications of the principles outlined in this workshop.

The wider Carpentries community can now find the lesson in The Carpentries Lab, use and adapt it to teach their own workshops, contribute feedback, and suggest improvements. A paper about the lesson recently entered review for publication in The Journal of Open Source Education.

The Carpentries Lab is looking for reviewers! To volunteer to review a lesson in the Lab, please read our Guide for Reviewers, and register as a reviewer so we can contact you when relevant lessons are ready for review. Lessons in the Incubator can be submitted for review in the Lab by opening an issue on the reviews repository.


We are very grateful to everyone who helped make this review in The Carpentries Lab a success. Congratulations to the authors for creating an excellent lesson that will prove a useful resource to so many people:

  • Tomasz Zieliński
  • Andres Romanowski
  • Emma Wilson
  • Felicity Anderson
  • Elvina Gountouna
  • Matthias Mimault
  • Alison Meynert
  • Edward W.J. Wallace

And huge thanks to the reviewers, who devoted a significant amount of time to reviewing the lessons, and exemplified the communication, diligence, and expertise required for a successful peer review process:

  • Lex Nederbragt
  • Heidi Seibold

1: Good enough practices in scientific computing, Wilson et al., PLOS Computational Biology, 2017

Dialogue & Discussion

Comments must follow our Code of Conduct.

Edit this page on Github