1. Development Process Overview
Modern HEP experiments (usually long timescale) are large distributed collaborations with several hundred people. The software project should be managed properly and the code quality is important.
Software development life cycle consists of
Planning
Analysis and Design
Implementation
Testing and Integration
Maintenance
Best Practices in the open source communities:
Building software -> CMake
Source code control -> Git and Pull/Merge Request workflow
Continuous integration -> GitHub Actions or GitLab CI
Software distribution -> package management tools and apptainer containers
Training and documentation -> sphinx