Software Engineering and Coding Skills in Health and Social Care (HBI114)

Module Objective

The technology for Clinical Bioinformatics is moving quickly. There is therefore a need for Clinical Scientists in HSST to properly understand the processes used for developing new software and software infrastructure, and they should be involved in its user specification, developmental testing and acceptance. In addition, software is a key component of the patient diagnostic pipeline and so it is important for patient safety that any code that is developed or deployed can be shown to be safe and effective. For that reason the Clinical Scientist in HSST must have knowledge of the appropriate regulatory, governance and quality assurance frameworks that apply to software and how they should be applied within the clinical environment.

By the end of this module the Clinical Scientist in HSST will be able to analyse, synthesise and apply their knowledge and understanding of software engineering process and be able choose an appropriate strategy for a given task and the challenges inherent in managing a software engineering project. They will be able to develop an effective piece of software that includes threading and object orientation, written using a good development environment and use modern software engineering practice to develop an application to meet the needs of the service. The Clinical Scientist in HSST will also be expected to consistently demonstrate the attitudes and behaviours necessary for the role of a CCS.

By the end of this module the HSST Clinical Scientist will be able to analyse, synthesise, evaluate and critically apply their knowledge of software engineering and coding skills in health and social care within the context of a high-quality, safe clinical service, including:

  • software development processes and methodologies;
  • software estimation;
  • risk management;
  • test design principles;
  • definition of test success criteria;
  • test-driven development and Agile development processes;
  • object orientation;
  • design patterns;
  • optimisation, threading and concurrency;
  • scalable computing;
  • software development environments;
  • unit testing;
  • familiarity with major programming languages;
  • role of documentation;
  • version control;
  • software project management;
  • software support;
  • free and open-source software development best practice;
  • evaluation, installation and deployment of code;
  • commercial vs in-house vs open-source’;
  • quality assurance and governance frameworks for software;
  • costs;
  • configuration;
  • software release risks and opportunities.

By the end of this module Clinical Scientists in HSST will have a critical understanding of current evidence and its application to the performance and mastery of a range of technical skills and will be able to:

  • Choose an appropriate software engineering framework and manage the process to ensure successful delivery for a set of given case studies.
  • Implement and roll out software of measurable benefit, taking into account the knowledge objectives.
  • Critically review and reflect on the results of a software engineering project to support future improvements in process

By the end of this module Clinical Scientists in HSST will be expected to critically reflect and apply in practice a range of clinical and communication skills with respect to software engineering. They will communicate effectively with clinicians, academics and other healthcare professionals as well as the patients and public, where appropriate, and will be able to:

  • Establish a professional rapport.
  • Interpret clinical and scientific goals.
  • Set and manage appropriate expectations.
  • Provide user acceptance testing.
  • Establish and provide appropriate, sustainable mechanisms for support.
  • Promote quality assurance and programmes of continual improvement with regard to clinical and scientific computing systems in line with professional best practice guidelines for both internal and external sources.
  • Consult with peers to encourage the local integration of developments in national and international informatics systems.
  • Lead and be accountable for the integrity of software engineering processes across their area of responsibility.

In addition, Clinical Scientists in HSST will be aware of their own attitudes, values, professional capabilities and ethics, and critically reflect on: (i) their professional practice; and (ii) the challenges of applying research to practice in relation to these areas of practice, identifying opportunities to improve practice building on a critique of available evidence.