Introduction to Software Development for Research

Learn about best practices in software development to improve your workflow and increase the impact of your research.

General

The Turing Way Community (2022) The Turing Way: A Handbook for Reproducible Data Science

Aleksandra Nenadic, Steve Crouch, James Graham, et al. (2022) Intermediate Research Software Development (beta). Carpentries Incubator. Zenodo

Software Development Life Cycle & Methodologies

The Agile Alliance (2001) Manifesto for Agile Software Development

Data Management

The Turing Way Community (2021) Data Management Plan, The Turing Way: A Handbook for Reproducible Data Science

The Turing Way Community (2020) The FAIR Principles, The Turing Way: A Handbook fo Reproducible Data Science

The Turing Way Community (2021) Version Control for Data, The Turing Way: A Handbook for Reproducible Data Science

The Turing Way Community (2021) Sharing and Archiving Data, The Turing Way: A Handbook for Reproducible Data Science

The Turing Way Community (2021) Linking Research Objects, The Turing Way: A Handbook for Reproducible Data Science

Research Data Management @ University of Exeter ← university’s guidance on research data management

Research Ethics and Governance @ University of Exeter ← university’s guidance on research ethics and governance

DMPonline ← a helpful tool for writing Data Management Plans (DMPs)

Open Research Exeter (ORE) ← university’s institutional data repository

Symplectic ← university’s system for recording research outputs, funding and professional activities of researchers

Registry of Research Data Repositories ← resource to identify a suitable data repository

FAIRsharing ← resource to identify a suitable data repository

NIH Generalist Repositories ← resource to identify a suitable data repository

Creative Commons Licenses ← information on the different types of Creative Commons licenses

Data Carpentry ← free online subject-specific workshops on data and its management

Problem Solving

Donald Bell (2003) An introduction to the Unified Modeling Language. IBM Developer

David Amos (2018) Object-Oriented Programming (OOP) in Python 3. Real Python

Version Control

Introduction to Version Control with Git and GitHub ← university’s introductory course to version control (with freely available course notes)

Readable Code & Documentation

Google Style Guides ← style guides for a range of languages

Stephen Druskat, Tyler Whitehouse, Alessandro Felder, Sorrel Harriet, Benjamin Lee (2019) What are best practices for research software documentation? Software Sustainability Institute

Testing

The Turing Way Community (2020) Code Testing, The Turing Way: A Handbook for Reproducible Data Science

Collaboration & Reproducibility

GitHub, Inc. (2023) About issues. GitHub

Google (2019) Google Engineering Practices Documentation. Google

Erin C McKiernan, Philip E Bourne, C Titus Brown, Stuart Buck, Amye Kenall, Jennifer Lin, Damon McDougall, Brian A Nosek, Karthik Ram, Courtney K Soderberg, Jeffrey R Spies, Kaitlin Thaney, Andrew Updegrove, Kara H Woo, Tal Yarkoni (2016) Point of View: How open science helps researchers succeed. eLife 5:e16800

Justin Kitzes, Daniel Turek, Fatma Deniz (Eds.) (2018) The Practice of Reproducible Research: Case Studies and Lessons from the Data-Intensive Sciences. Oakland, CA: University of California Press

Andrew Connolly, Joseph Hellerstein, Naomi Alterman, David Beck, Rob Fatland, Ed Lazowska, Vani Mandava, Sarah Stone (2023) Software Engineering Practices in Academia: Promoting the 3Rs - Readability, Resilience, and Reuse. Harvard Data Science Review, 5(2)

Reproducible Analytical Pipelines (RAP) Team (2022) Reproducible Analytical Pipelines (RAP) strategy. Government Analysis Function

The Turing Way Community (2020) Licensing, The Turing Way: A Handbook for Reproducible Data Science