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