Software Configuration Management

My perspective is this of SCM—Software Configuration Management, in a strong sense.

I recognize SCM as a heir, but also as a radical departure from (traditional) CM.

SCM attempts to perform a Copernician Revolution, i.e. to switch from specific (activities, roles, application domains) to generic concerns. My critique is indeed that CM has never passed this stage: this is why one can still wonder about criteria to "select one's CIs".

The way SCM goes generic is by resorting to software, and indeed to software tools.

What the tool offers is objectivity.

Now, the first consequence is that CIs are 'what the tool is designed to identify'. And different tools may identify different kinds of artefacts. The most sophisticated tool so far is in my experience, base ClearCase, and its radicality is to offer support to identify as primary configuration items 'derived objects', which it identifies by their (automatically audited) dependency graph.