Introduction to good practices in research software development

Last updated on 2025-01-20 | Edit this page

Estimated time: 15 minutes

Overview

Questions

  • What are benefits of applying software engineering good practices?
  • How does software engineering differ from programming?
  • When to use which tools?

Objectives

  • Understand the benefits of applying software engineering good practices
  • Understand the key characteristics that make code modular and why it is advantageous.
  • Know when to use which software engineering tools.

Look through these introduction slides.

Initially, without software engineering tools, development speed is high, but it quickly drops as the project grows more complex.

Instead, if you use the right tools and skills the development speed will be slower at first because of the necessary setup, but increases as you get further in a project.

Nevertheless, all projects are different. A lot of the tools and skills we teach are useful in complex long-running projects, but can add unnecessary overhead in short-lived, simple projects.

We will refer to this line of thought throughout the workshop.

For each new tool that you introduce you can refer back to the ideas in this introduction: The tool can add overhead in simple projects, but can speed up development in more complex projects.

Discussion

Which good practices are relevant for your project and why?

Key Points

  • Software engineering tools and skills can increase development speed over time
  • You do not always need to apply all the best practices. For simple short-lived projects it is not always worth the investment.