Evolving and maintaining code¶
{ #concept-code-base-evolution-and-maintenance }
Stable ID: CONCEPT-CODE-BASE-EVOLUTION
Purpose¶
This concept describes the software landscape that the repository targets: evolving and maintaining a code base over time.
Definition¶
A code base is changed to
- fix bugs and security vulnerabilities,
- add new features,
- respond to external changes and obselescence of components, interfaces, and tooling, and
- improve quality aspects, such as performance and maintainability.
A code base
- comprises production, validation, and supporting artifacts, including source code, tests, build scripts, and documentation,
- is organized in multiple hierarchical folders and/or projects,
- is typically written using multiple programming languages,
- depends on external libraries, APIs, OSes, and services,
- may evolve over decades, with developers and maintainers joining and leaving, creating a need for adequate knowledge management to preserve knowledge.