A well-functioning configuration management is a solid basis for any working process. At any time we should be able to trace who changed what, when, and for what reason.
We start from step one: which requirements belong to the project, where do we find them, which ones are valid, which ones are out of date, when and why were they changed or complemented?
What applies to the requirements applies to any artefact of a software project: design concepts belonging to the requirements, implementation concepts, test concepts evolving in the course of development, sources, libraries, build files, testing results, change requests, problem reports, etc. Any production tools and the development environment are also included.
When we master our configurations we also can get our software development under control, regardless of whether the process is strict or agile.


