Practical software engineering for software-writing scientists

R Raul P. Pelaez (Department of Theoretical Condensed Matter Physics, Universidad Autónoma de Madrid 3 , 28049 Madrid,)

Abstract

Scientists have long developed software as an integral part of their research, creating tools to simulate models or analyze data. As these projects grow in scope and longevity, they often encounter challenges related to complexity, maintainability, and reproducibility. This Tutorial introduces a set of practical software engineering techniques (such as version control, testing, documentation, continuous integration, and packaging) that can help address these challenges. Drawing on well-established principles from the field of software evolution, the discussion is tailored for scientists who write software but may not have formal training in software engineering. Some example projects are drawn from the chemical physics community, showcasing how following these principles benefits them and the community. It also reflects on the evolving role of large language models in scientific software development, considering both their potential and their limitations. The goal is to present approachable, widely adopted practices that support sustainable, transparent, and collaborative scientific software.

Article Details

Volume / Issue Vol. 163, Issue 17
Published November 07, 2025
ISSN 0021-9606
Publisher American Institute of Physics

Journal Info

The Journal of Chemical Physics

American Institute of Physics

ISSN: 0021-9606 Physical Sciences

Authors (1)

R

Raul P. Pelaez

Department of Theoretical Condensed Matter Physics, Universidad Autónoma de Madrid 3 , 28049 Madrid,