Skip to content
James Smithies edited this page Apr 21, 2020 · 16 revisions
Clone this wiki locally

A Software Development Life Cycle for Research Software Engineering

A toolkit for documentation and processes for software development in a research setting.

This repository was established by King’s Digital Lab (KDL) on Aug 22 2018 and is intended to be an evolving piece of work, enriched with community contributions.

The documentation found here represents KDL’s implementation of an Agile software development lifecycle, and has been pragmatically adapted to suit the particular requirements and peculiarities of Research Software Engineering (RSE).

How to use this resource

Document guidance and templates have been written in simple Markdown. They can be copied and pasted into most desktop word processing software or converted via a variety of third party tools into formats that can be easily used offline.

1. Getting started

The core component of this toolkit is the collection of Document Templates that underpin the various stages of the SDLC. In addition to the document templates, there are Guidance Documents that offer advice on how to fill in the document templates and what factors to consider when planning a RSE project. This guidance is informed by KDL's experiences in many project developments but should not be considered exhaustive.

A quick note on naming conventions

The document names are prefixed alpha-numerically in the usual order in which they might be used in a typical project setting. The letter is followed by a number which denotes whether the document is 1, a template or 2, an accompanying guidance document. NB. versioning is not reflected in the document name. Not all documentation will be required for all projects.

Abbreviations used

Single letters are frequently used as shorthand for SDLC roles, particularly in the example cost tables. U = UI/UX Developer, D = Software Developer, A = Analyst, S = Systems Manager etc.

1.1. Document templates

All branding and commercially sensitive information has been removed from the original templates. The layout of the templates continues to evolve over several iterations and is geared towards achieving:

  • clarity of the project aims
  • clarity of the responsibilities of participating parties
  • a logical structure for peer review (internally)
  • a considered use of boilerplate text where applicable
  • transparency of the development process (and especially control of the evolving solution)
  • accuracy of project estimations, and control of in-flight budgets
  • direct reuse of text in funding applications

It is recommended that these completed templates be stored as project governance records in secure storage with access shared by the RSE team. Some of these documents are intended for internal audiences only and these will be identified clearly with the header “For internal use only”.

1.2. Document guidance

Each document template has a guidance document which explains the purpose of the document and offers useful direction for ensuring that the right information is gathered at the right time.

Each guidance document may contain one or more matrices of prompts and questions to help ensure productive meetings and to minimise the chance of misunderstandings or poor communication in the later stages of development. These prompts are not intended to be exhaustive and each research project will have complex and individual aspects but we hope that these suggestions will stimulate a productive conversation.

Links within these documents may direct the user to:

  • RSE team role descriptions
  • SDLC process documentation or guidance
  • process descriptions
  • terms in a glossary
  • additional documentation which may include 3rd party resources

2. SDLC Stages and Processes

The typical steps of the SDLC in practice can be concisely represented in a flow diagram but detailed information about each stage will be provided elsewhere.

SDLC Process

Download Fig.1