agile). If the project team is following agile methods, there may be a strong need to support continuous build upon check-in, the a stronger need to support unit testing within the developer’s workspace, a need for a flexible process, and a strong need for refactoring support.
The context also becomes input into expanding the requirements. Consider if the project you intend to implement CM is distributed across several sites. Might this change the type of version control that is needed? Would the “version control” capability be further divided into a requirement that calls for version control that works across multiple sites (e.g., a replication capability of the version control repository) and a requirement to provide flexible branching and merging?
The CM Tool (or Tools) for You
As you conduct the evaluation process, you may find that one CM tool meets all of your required capabilities and requirements therein. However, you may also find that your requirements are not met by one tool. In this case, it may imply that you end up needing two tools (or more) to meet all of your CM needs. This is not unreasonable, in part because there is yet to be a CM tool that meets all of the practices and processes of CM.
CM can mean different things to different people. Does “control” in CM mean managing all baselines or just the code baseline? Agreeing on exactly all of the CM capabilities is not the point. The point is to ensure you are clear on what possible CM (or CM-related) capabilities there are and then deciding which ones are important to you. By first identifying and understanding the capabilities, provides a good starting point to identifying your needs and then further drilling down to capture requirements for the CM tool evaluation. Then by understanding the context you are working in (e.g., methodology of the development team, the distributed nature of the work, etc.), can help you tailor the tool need for the team.
So, the next time someone asks you, “What is a CM tool?” you can respond that there are a number of areas that CM covers, so it depends on which CM capabilities are best for them and their situation.