- Configuration vs. Baseline
There are a lot more, but I'm going to start with this subset.
What I'll do in each of the next sections is to identify a set of terms that are used and give my reasons why i prefer some over others. Hopefully, we can follow up with a thread on CM Crossroads, and move toward more standard terminology. I know it's hard for some tools to change terminology, but perhaps over time, if we have some agreed upon terms, we can move there. Then the process descriptions will at least seem less tool dependent.
Change, Update, Changeset, Change Package. A Change, in this context, is a modification of a set of files/data elements for a specific purpose. It doesn't have to be source files. It can be requirements. It can be documents. But maybe it should be a coherent set of objects for any given change so that the "modified revisions" is a homogenious set of objects.
The problem with the word Change is that it is a loose term used in various contexts. A Change Review Board looks at Change Requests. A developer create a "change" which is a modified set of source code files for a specific purpose. Yet the word is a natural fit and I would really prefer to use it if I didn't think it would cause confusion.
"Update", used by Neuma, was chosen because it was originally used by IBM (way back), and it was more specific. But these days it seems to have a new meaning as a dynamic change to a program (usually applied over the internet).
Changeset, originally was coined by "Aide de Campe" (subsequently bought out), and meant a set of source code modification directives that could be included or excluded from a particular configuration. That's different than the "changeset" used by Microsoft and others. "Change Package" is bulky, and also has the connotation of Package, implying it's really a collection of "changes", or at least a recursive concept, at least in my mind. It fits well, when you're used to just managing files, but if you've been using changes in CM for over 30 years, the word Package tends to be annecessary verbage.
My Vote: Changeset, Update , Change (in that order), but not Change Package.
Revision or Version
Revision, Version. OK, so let's say a file is changed and put back into the repository. It's still the same "file", just a modified "version" of it. I used to use the term version, but for a parallel connotation, not a sequential one. I've dropped the use of that term altogether now because it is too ambiguous. Which version do you have: English or French? In my eyes, this is very different than 1.1 or 1.2. And this causes confusion especially because most software deliverables come in multiple versions. So I prefer the more exact term Revision, also used by hardware folks, and also more telling of what is going on.
My Vote: Revision
Variant, Version, Generic, Option. OK so what do you use for parallel "versions"? I'm not talking about parallel releases, but separate product configurations stemming from a given baseline. Like the Military version vs. the Commercial version. Or the Spanish version vs. the English or French versions. To use the word version is still confusing because of its sometimes normal usage as a Revision. I've seen the term Generic used at times, but this is normally for larger variations (like Military/Commercial) and is simply not a well understood term.
Variant seems to me to hit the nail on