CM Co-op Evironments
If your organization plans to deploy agile in a big way, you need to have a CM co-op environment (tools, infrastructure, and processes) available to quickly bring agile projects online and use CM immediately.
In a more traditional methodology, you have until the development phase to get the CM environment up and running. With an agile methodology, the CM environment needs to be ready right after iteration planning which is much earlier than the development phase of a more traditional method.
This is where an organization should consider a CM co-op service model to more quickly bring projects into using CM environment. This can be particularly advantageous when an organization is trying to bring several agile projects online within the same time period.
The CM co-op eliminates the need for installing the CM tools, setting up the infrastructure, and establishing the processes. Instead, all that needs to occur is either setting up a repository following the established CM process or setting up a project branch within an existing repository.
Simply put, CM for agile requires more automation. Agile implies that the project team is developing product earlier and faster than the traditional methodology. Manual processes start to become bottlenecks to the progress that Agile can provide. Moving to more automated solutions removes bottlenecks and allows the team to focus more on development.
Of course, having automation within any methodology is beneficial, but for agile it becomes necessary. Some examples previously discussed are build automation (for continuous builds) and merge automation. In addition, unit test automation and integration test automation can be added. Automating other types of testing is also beneficial (e.g., regression testing, performance testing, etc.) but outside of the realm of CM.