Published May 21, 2021 | Version v1
Journal article Open

Experience With Managing Technical Debt in Scientific Software Development Using the EXA2PRO Framework

  • 1. Department of Applied Informatics, University of Macedonia, 546 36 Thessaloniki, Greece
  • 2. School of Electrical and Computer Engineering, National Technical University of Athens, 15780 Athens, Greece


Technical Debt (TD) is a software engineering metaphor that resembles the production of poor-
quality code to going into debt. In particular, a development team that ‘‘saves’’ effort while developing by
not removing inefficiencies, has to ‘‘pay-back’’ with interest, in the form of additional maintenance costs
(i.e., fixing bugs, adding features, etc.) due to the poor maintainability of the developed code. Although
maintainability assurance is an established practice in traditional software development (lately known as TD
management), it has still not attracted the attention of scientific software developers; i.e., researchers writing
code and developing tools for purely research purposes. Nevertheless, based on the literature and practice,
maintainability seems to be ranked as an important key-driver for the development of such applications; since
the effort needed to update the code before the experimentation (e.g., executing a simulation) is common
and should not receive low priority. In this paper, we present the outcome of a 3-year research project on
Technical Debt Management (TDM) for scientific software development. The outcome of the project is a
framework (termed: EXA2PRO TDM framework) and an accompanying platform for assisting scientific
software developers in managing the TD of their applications. The framework is a collection of methods
tailored for the mainstream programming languages of scientific software development, which have been
empirically validated through five pilot applications. The majority of the EXA2PRO framework suggestions
have been applied by scientific software developers and eased future maintenance activities.



Additional details


EXA2PRO – Enhancing Programmability and boosting Performance Portability for Exascale Computing Systems 801015
European Commission