Research software code is likely to remain a tangled mess

As some of the previous comments imply, the quality of research code is a result of the context it is developed in. An interesting article about this:

Why I Write Dirty Code: Code Quality in Context

I also find the Software Engineering guidelines from the DLR (German Aerospace Center) on this topic quite interesting: DLR Software Engineering Guidelines

Essentially, they divide code into four application classes:

  • Application Class 0: For software in this class, the focus is on personal use in conjunction with a small scope. The distribution of the software within and outside DLR is not planned.
    Software corresponding to this application class frequently arises in connection with detailed research problems.
  • Application Class 1: For software of this class, it should be possible, for those not involved in the development, to use it to the extent specified and to continue its development. This is the basic level to be strived for if the software is to be further developed and used beyond personal purposes.
  • Application Class 2: For software in this class, it is intended to ensure long-term development and maintainability. It is the basis for a transition to product status.
  • Application Class 3: For software in this class, it is essential to avoid errors and to reduce risks. This applies in particular to critical software and that with product characteristics.
2 Likes