Building Better Software
Better software means better research. Read this best-practice guide to building better software that anticipates broadest use and extends existing code.
There are many things to consider when building better software. This guide focuses on building better research software that:
- anticipates broadest appropriate use
- employs best practices for quality software
- where possible, extends upon existing software rather than recreating it.
Anticipating Broadest Appropriate Use
Broadest appropriate use means building a technical and social understanding of the environment in which new software will be developed.
From a social perspective, it is important to consider:
- what audiences and audience needs are you addressing
- what are the technical needs and constraints of those audiences
- what value will your software bring to your audiences.
From a technical perspective, it’s important to consider:
- what software you can and should build upon
- what languages and frameworks best fit the technical needs of your project
- identifying what is a sufficient solution given all of the above.
Much of this is included in best-practice guidance below.
Best Practice for Building Better Software
There are a number of best-practice guides available that provide advice for working through all stages of developing research software, such as:
- The Netherlands eScience Center’s comprehensive Software Development Guide which includes a useful checklist for each stage of development.
- Common Lab Research Infrastructure for the Arts and Humanities (CLARIAH)’s Software Quality Guide that can be used by both software developers and software adopters to assess the quality and sustainability of software.
- The German Aerospace Centre’s Software Engineering Guidelines to support sustainable software engineering in research.
These guides all have a Creative Commons licence applied so they can be adapted to suit different organisations and projects.
Released by the Research Data Alliance, FORCE11 and Research Software Alliance in 2022, the FAIR Principles for Research Software is useful to keep in mind when building your software. You can use this self-assessment tool, developed by the ARDC and the Netherlands eScience Center, to check and demonstrate your software’s FAIRness.
Read key papers on:
- Barely Sufficient Practices in Scientific Computing (2021)
- Good enough practices in scientific computing (2017)
- Best practices for Scientific Computing (2014)
Extend Over Recreate
Before creating new code, it’s always worth checking to see if it already exists in one form or another.
The Netherlands eScience Center maintains a list of software registries, which is a great place to explore before you start a new project.
Extending existing software has the advantage of:
- collaboration
- access to established practices for software management
- time saved by building on existing efforts.
Connect With Local or Regional Communities
The best source of support is your peers and support staff:
- Your institution may host local HackHours or equivalent events.
- Look out for local R-Ladies chapters, python user groups or similar.
- Start your own group to do code review, share tips or ideas.
International Initiatives
Explore the following international communities focused on making research visible, many of which ARDC staff are or were active members:
- Research Software Alliance has the mission to “bring communities together to collaborate on the advancement of research software”.
- Software Sustainability Institute (UK) cultivates better, more sustainable, research software to enable world-class research.
- rOpenSci and pyOpenSci promote open and reproducible research through peer-review of scientific software packages, and provide curated repositories of high-quality packages enabling scientists to share their own software.
- US Research Software Sustainability Institute is an NSF funded project with the goal of developing a pathway to research software sustainability.
- The Research Data Alliance, Software Source Code Interest Group is a discussion forum for management, sharing, discovery, archival and provenance of software source code.
- The FAIR For Research Software Working Group (FAIR4RS WG) has released the FAIR Principles for Research Software, which emerged from a range of existing community-led discussions on how to define and effectively apply FAIR principles to research software, and how to achieve adoption of these principles.
Connect With Us
Have questions about software quality? Contact our research software team.
You may also be interested in
Communities and Groups
ARDC Advisory Services
Unearthing Research Software: A Report
Last updated
Type
Format
Read time
Categories
Research Topic
Related Program
Related Projects
Related Articles
- Shaping Research Software: An Interview with Dr Saras Windecker
- Shaping Research Software: An Interview with Sharon Tickell
- Shaping Research Software: An Interview with Dr Kate Harborne
- Shaping Research Software: An Interview with Ben Foley
- Shaping Research Software: An Interview with Ryan Wick
- Shaping Research Software: An Interview with the predictNMB Team
- Shaping Research Software: An Interview with Roozbeh Valavi
- Shaping Research Software: An Interview with Manodeep Sinha
- Shaping Research Software: An Interview with Matthew Sainsbury-Dale and Andrew Zammit-Mangion
- Shaping Research Software: An Interview with Dr Adam Sparks
- Shaping Research Software: An Interview with Catherine Bromhead
- Shaping Research Software: An Interview with Cynthia Huang
- Shaping Research Software: An Interview with Dr Marcel Keller
- Shaping Research Software: An Interview with Melina Vidoni
- Shaping Research Software: An Interview with Michael Roach
- Shaping Research Software: An Interview with Fonti Kar
- Shaping Research Software: An Interview with Varvara Efremova
- Shaping Research Software: An Interview with Anthony Truskinger
- Shaping Research Software: An Interview with Johanna Bayer
- Shaping Research Software: An Interview with Lydia Lucchesi and Sam Nelson
- Shaping Research Software: An Interview with Dr Juan Nunez-Iglesias
- Shaping Research Software: An Interview with Dr Emily Kahl
- Let’s Make Research Software a First Class Research Output
- Survey Reveals 6000+ People Develop and Maintain Vital Research Software for Australian Research