Technical Debt and Code Migration

Fuente: Zenodo
Gespeichert in:
Bibliographische Detailangaben
1. Verfasser: Holland, John Gerrard
Format: Recurso digital
Sprache:Englisch
Veröffentlicht: Zenodo 2025
Schlagworte:
Online-Zugang:
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_version_ 1866901912243142656
author Holland, John Gerrard
author_facet Holland, John Gerrard
contents <p>RSEs often have to deal with code which wasn’t originally designed with testing, maintenance or<br>performance in mind, or was written in a language or a style which is now considered outdated,<br>obsolete or insecure. This is a problem for RSEs writing and maintaining software for long-lived<br>research programs, who may be slowed by this technical debt. A common response is to start a<br>project to rewrite the code in another programming language or an updated framework, and in<br>parallel to make functional improvements. Anecdotally, this kind of project is at risk of delays<br>and cost-overruns.<br>In some fields, like web programming, the time for a framework to appear, reach its zenith of<br>popularity, and then become uninteresting and obsolete, might be a handful of years. In others,<br>code which has been in use for decades continues to be used.<br>In this talk I’ll discuss some of the lessons our group learned during upgrade projects, and ask<br>what we might be able to learn from long-lived code.<br>First we’ll look at a project to migrate an image processing pipeline from MATLAB to Julia and<br>make it HPC-ready. We’ll focus on the availability of ready-to-use image processing functions,<br>the costs of reimplementation, and the characteristics which help a library to endure.<br>Then we’ll look at how our group has standardized its web development stack, and what we<br>learned about React, Tailwind, Typescript, Vite and Next.js. We’ll also look at how changes in<br>Google Firebase hosting, which were meant to make developers’ lives easier, made our code<br>review process much less intuitive, and how that was resolved.</p>
format Recurso digital
id zenodo_https___doi_org_10_5281_zenodo_17307297
institution Zenodo
language eng
publishDate 2025
publisher Zenodo
record_format zenodo
spellingShingle Technical Debt and Code Migration
Holland, John Gerrard
Research Software Engineering
<p>RSEs often have to deal with code which wasn’t originally designed with testing, maintenance or<br>performance in mind, or was written in a language or a style which is now considered outdated,<br>obsolete or insecure. This is a problem for RSEs writing and maintaining software for long-lived<br>research programs, who may be slowed by this technical debt. A common response is to start a<br>project to rewrite the code in another programming language or an updated framework, and in<br>parallel to make functional improvements. Anecdotally, this kind of project is at risk of delays<br>and cost-overruns.<br>In some fields, like web programming, the time for a framework to appear, reach its zenith of<br>popularity, and then become uninteresting and obsolete, might be a handful of years. In others,<br>code which has been in use for decades continues to be used.<br>In this talk I’ll discuss some of the lessons our group learned during upgrade projects, and ask<br>what we might be able to learn from long-lived code.<br>First we’ll look at a project to migrate an image processing pipeline from MATLAB to Julia and<br>make it HPC-ready. We’ll focus on the availability of ready-to-use image processing functions,<br>the costs of reimplementation, and the characteristics which help a library to endure.<br>Then we’ll look at how our group has standardized its web development stack, and what we<br>learned about React, Tailwind, Typescript, Vite and Next.js. We’ll also look at how changes in<br>Google Firebase hosting, which were meant to make developers’ lives easier, made our code<br>review process much less intuitive, and how that was resolved.</p>
title Technical Debt and Code Migration
topic Research Software Engineering
url https://doi.org/10.5281/zenodo.17307297