the commonality of User Interface, Administration, Customization, and Multiple Site management across all ALM functions.
Much of the power of CM+ comes through its command and data query language. Virtually any set of repository items can be easily computed through a data expression. For example, you may subtract the revision history of one file branch from the history of another to see the changes made since their common point. But you can just as easily do that for the entire product tree or any subset thereof. You can use boolean logic, intermediate variables, special operators (hist, expand, members, etc.) or "field" operators (e.g. <expression> title "crash"). These data expressions can be used in most of the CM+ commands, reducing, what normally is a programming task, to a relatively simple data expression.
The end-to-end definition itself is easily customized. You can add in Project Portfolio Management, Time Sheets, Customer Tracking, Lab Management, or any number of functions which can be developed and deployed in a few hours to a few days each.
CM+ set is rapid (i.e. a few minutes) and data loading is quick - both files (multiple baselines) and other data (problem reports, activities/tasks, and requirements). Export of data is also flexible and fast. So if you really don't like CM+, it's a good starting point for moving to another tool. CM+MultiSite is easy to deploy, nearly administration free, and you can add sites as you go, without taking down the system. Upgrades take minutes, with a couple hours preparation if you have significant customization.
One of the first things to look at with any ALM tool is its level of CM capability.
1. Change Packages
Even a 2G CM tool must define change packages, and a 3G CM tool must fully integrate these into the process and behavior of the tool.
CM+ Updates were designed in from the beginning. You don't promote files, you promote Updates. You propagate (i.e. merge) an Update. Equally well, you can "yank" an Update. Dependencies are expressed between Updates. Even before the creation of CM+ in 1990, Neuma's founder had already enjoyed over a decade of designing and deploying systems where the change package was central to the CM function.
Fig. 1 - Interactive data display panel of Updates. Click on the Update Id, a "[N]" field, or a title field to zoom in. "mods" field will show the list of files associated with the Update, from which you can further zoom in. Similarly for "problems", "activities" and "connections". Display panels are available for all types of data records.
Updates are numbered sequentially for each user, making them easy to identify. There are typically several traceability links as part of an update - usually automatically filled based on object-oriented user actions used to create each Update. Peer reviews are always performed on complete Updates (as opposed to individual files).
2. Branching and Labelling (Tagging)
Branching in a next generation tool must support our process. But the branching strategy has to be one that is understood by the tool. In a next generation system, the tool must be able to help support the branching, and should give clear guidance to the user of the need to branch, eliminating, as much as possible, the reliance on their own interpretation of branching strategy.
Although branches in CM+ are lightweight, and labelling capabilities (and query thereof) extensive and efficient, various tool capabilities minimize the need for branching, labelling and merging. Most CM+ customers use a branch-per-release configuration, with, perhaps, additional branches for long-term changes. CM+ does not require branches for promotion, short-term