Practical software engineering for software-writing scientists

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.

Authors

Institutions

Publication Details

Journal
The Journal of Chemical Physics
Published
2025-11-04
DOI
https://doi.org/10.1063/5.0293841
Primary Topic
Scientific Computing and Data Management
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Practical software engineering for software-writing scientists

Raúl P. Peláez
The Journal of Chemical Physics
Scientific Computing and Data Management
article

Practical software engineering for software-writing scientists

Raúl P. Peláez
article en

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.

The Journal of Chemical PhysicsVol. 163(17)
Universidad Autónoma de Madrid (ES)
Openalex Percentile: Top 70%
Scientific Computing and Data Management
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Practical software engineering for software-writing scientists — Raúl P. Peláez · The Journal of Chemical Physics (2025) | TGRS Research Map | TGRS