Training activity information

Details

Create a pipeline/software with error handling

Type

Developmental training activity (DTA)

Evidence requirements

Evidence the activity has been undertaken by the trainee​.

Reflection on the activity at one or more time points after the event including learning from the activity and/or areas of the trainees practice for development.

An action plan to implement learning and/or to address skills or knowledge gaps identified.

Considerations

  • Best practice guidelines and local practices
  • Testing frameworks and practices
  • Style guides
  • Annotating and commenting scripts,
  • Unit testing (test driven development)
  • Redirecting input and output (stdin and stdout)
  • Error handling (stderr)
  • Log files
  • Impact on computing resources (CPU and storage)

Reflective practice guidance

The guidance below is provided to support reflection at different time points, providing you with questions to aid you to reflect for this training activity. They are provided for guidance and should not be considered as a mandatory checklist. Trainees should not be expected to provide answers to each of the guidance questions listed.

Before action

  • Why is error handling critical in robust software and pipelines, especially in a healthcare context?
  • Are you familiar with error handling techniques in your chosen programming language? Do you understand common types of errors that can occur in pipelines/software?
  • How will you implement effective error handling mechanisms? How will you ensure that errors are caught, logged, and managed appropriately?
  • Will you research error handling best practices for your chosen language? Will you think about potential error scenarios in a typical pipeline?

In action

  • As you are building the pipeline/software, where are you anticipating potential points of failure? What error handling mechanisms are you implementing at these points?
  • How are you testing the error handling? Are you intentionally introducing errors to see how the software responds? What adjustments are you making based on these tests?
  • Is the error messaging informative and helpful? If not, how are you modifying it to improve clarity?
  • Are there any unexpected errors arising during development? How are you debugging and addressing these in real-time?
  • How is the inclusion of error handling impacting the overall structure and complexity of your pipeline/software? Are there any trade-offs you are noticing?

On action

  • What types of error handling did you implement in your pipeline/software? Did it handle errors as you expected? What did you notice when you tested it with potential error scenarios?
  • What did you learn about implementing error handling in software development? What challenges did you face in anticipating and managing potential errors? What skills related to robust software development and error management did you develop or improve? How did your reflect-in-action during the development process (e.g., debugging error handling) contribute to the final outcome?
  • What will you take from this experience to improve your approach to building software that is resilient to errors? Are there specific error handling techniques you want to learn more about?

Beyond action

  • Looking back at the error handling mechanisms you implemented, how has your understanding of robust software development and error management deepened through subsequent pipeline development or software testing activities?
  • Have you encountered different or more sophisticated error handling techniques in pipelines or software you’ve used or observed since completing this training activity? What did you learn from these examples that you could apply in future projects?
  • Compare the error handling in your initial pipeline to any error handling you implemented in later training activities. What differences are there, and what does this tell you about your development as a software developer?
  • Consider a scenario where inadequate error handling in a bioinformatics tool could have significant consequences in a clinical workflow. How does your experience in this training activity inform your appreciation of the importance of robust error management in such settings?
  • How will your skills in designing and implementing effective error handling contribute to your ability to develop reliable and safe bioinformatics solutions for clinical use in the future?

Relevant learning outcomes

# Outcome
# 2 Outcome

Use a programming language to create software.

# 3 Outcome

Apply best practice in software development and code testing.

# 4 Outcome

Modify, install, update and test software.

# 5 Outcome

Identify and ensure the needs of stakeholders and patients are met in the development of software, maintaining patient safety and confidentiality.

# 6 Outcome

Appraise the application of the software development and management cycle in a healthcare environment.