Building Better Software

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.

Read key papers on:

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:

International Initiatives

Explore the following  international communities focused on making research visible, many of which ARDC staff are or were active members:  

Connect With Us

Have questions about software quality? Contact our research software team.

Last updated

14 May 2022

Type

Page

Categories

Research Topic