Process, Discipline, Law

Traditional CM is about process enforcement, contrarily to SCM which is critically bound by the available tool support.

CM describes itself as a discipline implying a military style of commandment, control and reporting practices. It is only in this way, that it positions itself as a line of minimal resistance: any disobedience will lead to inevitable punishment and thus be painful.

It means that the CM processes are prescriptive (meant to be applied as in law), and not descriptive (as in sciences, where laws are merely theories challenging one to refute them—nobody ever goes to jail for disobeying gravity).

SCM takes thus as usual the opposite route (the scientific one), and boldy states following the advice in PeopleWare: we have rules, and we break them!.

This means that a rule may prove good (useful) if it helps detecting and solving a problem. Otherwise, it may only be stable if it becomes invisible: if it repeatedly describes the most natural, simple, easy, and rewarding way, followed by everybody because of one's own laziness (as per Larry Wall's virtues of programmers)—I.e. one feels no need to compete with the handy rule by inventing an own way of doing it. Again, anybody departing from the rule obviously has a reason (even if only lack or inconvenience of documentation) to do so, and thus discloses a weakness in this rule.

That is, SCM should never be felt as a discipline, followed with abnegation against one's own comfort, ease, or reason, in the name of some hypothetical higher good.

-- MarcGirod - 03 Feb 2007