Reference

Last updated on 2025-10-24 | Edit this page

Glossary


Research Software Engineer (RSE)
RSEs combine expertise in programming with an understanding of research methods to make research software reliable, reusable, and reproducible.
reproducibility
ability for someone (including the original author) to obtain the same results using the same data, code, and methods.
version control
a system that tracks changes to code and documents over time, enabling collaboration and rollback to previous states. Example tools: Git, typically used with platforms like GitHub or GitLab.
repository
structured storage space for code, documentation, and configuration files, managed by a version control system. It serves as the “home” of a project where collaboration and review happen.
Integrated Development Environment (IDE)
software that provides a unified environment for writing, debugging, and testing code. Example tools: Visual Studio Code, PyCharm, RStudio.
code quality
degree to which code is readable, maintainable, and free of defects. Enhanced through consistent style, refactoring, automated testing, and static analysis (e.g., linters).
linting
process of automatically checking source code for stylistic errors, potential bugs, or deviations from coding standards. Example tools: flake8, pylint, black (Python).
unit testing
writing small, automated tests that verify individual parts (“units”) of code behave as expected. Improves confidence in code correctness and supports refactoring.
Continuous Integration (CI)
a workflow that automatically tests and validates code whenever changes are made (e.g., when someone pushes to GitHub). Reduces integration issues and ensures consistent code quality.
issue tracking
a system for recording, prioritising, and managing bugs, tasks, and feature requests. Encourages transparency and project management within teams. Example tools: GitHub Issues, Jira.
documentation
Written guidance that helps others understand, install, and use your code or software. Includes README files, inline comments, tutorials, and API references. Good documentation is essential for reuse and collaboration.
code review
The practice of having others inspect your code before it’s merged into the main branch. Improves code quality, knowledge sharing, and consistency within a team.
Open Science / Open Research
A movement to make research outputs (data, software, papers) accessible, transparent, and reusable by others. Software engineering practices support this goal by improving reproducibility and sustainability.