the key item was the ability to maintain data security for the CM repository. Rules for when and what could be accessed gave way to automatic enforcement and some tailoring of the rules. The repository had to be safe, especially from the development team itself - from new users, from finger problems, etc.
From a Process persepctive, the concepts of traceability began to take hold, as the CMM and Total Quality concepts began to emerge. Process-oriented advances for a 2G CM tool include:
- Integrated Problem (or Issue) and/or Task Tracking
- Traceability between the files changed and the tracked problems and activities/tasks
- Basic customization capabilities, typically through scripting
- Basic Rules and Triggers capabilities to allow some workflow automation, traceability and communication
- Introduction of a state-based promotion model for changes
The remaining key area of 2G CM tool progress dealt with improvements to the usability, primarily through a graphical user interface (GUI). Advances in this area include:
- Provision of a GUI for all basic end-user CM functions
- The ability to navigate the source tree and file history graphically
- Ability to look at a consistent collection of related files by specifying a Context and/or View
- The addition of Basic Reporting Capabilities, especially for Changes and Problems/Tasks
- Improved presentation for File Compares and Merges
- The addition of Remote Access Capabilities
This set of capabilities describes, for the most part, the 2nd generation of CM tools. Although some of the freeware tools are still properly categorized as 1G CM tools, 2G CM tools account for a large chunk of today's CM marketplace. They combine CM Capabilities with Process Capabilities and Friendly User Interfaces to support small to medium size or even large projects (several hundred users). Today, many tools have begun to reach further towards the Third Generation.
The Future Begins Now: Third Generation CM
The next generation of CM tools has been evolving through the 1990s and the early years of the new millennium. Third Generation (3G) CM tools include significant advances over their 2G counterparts. Although there are very few tools which might deserve to be called 3G tools, any tool that meets more than 80% of the 2G criteria is bound to meet at least a small percentage to 3G criteria.
It's more difficult to categorize 3G CM Tool criteria. Why? Because technology will change before there are many 3G tools. Will 64-bit support and Instant Messaging be important CM factors? This is a bit difficult to predict. What about basic advances in repository technology such as journalling and backup? As data sizes continue to grow, so must advances in repository technology.
The 3G CM tool criteria are more evenly divided along the five key areas: CM Capabilities, Administration and Performance, CM Process, Reliability and Availability, and Usability.
3G CM Capabilities
3G CM tools must focus not simply on doing more, but doing so more simply - better supporting agile development. Workspace Management, Build and Release Management, and minimization of Branching, Merging and Labelling are key areas that are being addressed. Key advances include:
- Easy bulk loading of source from the user's workspace
- Support bulk loading of multiple revisions of a baseline or subsystem
- Formal support of development Streams and Releases
- Introduction of first class objects to eliminate labelling and minimize branching and merging
- Automated stream-based branching
- Change promotion replacing promotion branches, and driving the CM process
- Automated Build, ANT and Makefile Generation
- Synchronization of user workspace with a context view
- Interactive comparisons of Builds and/or Releases - Traceability Data and Code
- Queued Checkout to support the Exclusive Checkout Model
- Integration with other common IDE APIs and perhaps emergence of a