
Articles...
Copyright © 2009 Corvus International Inc. All Rights Reserved
Forgive him Theodotus: he is a barbarian and thinks that
the customs of his tribe and island are the laws of nature
George Bernard Shaw,
Caesar and Cleopatra
There are are some immutable laws that apply to software process, and govern our (software) lives. The article in the January 2001 Issue of Communications of the ACM identifies these laws, gives some examples, and explains the consequences. Here they are:
The First Law of
Software Process
Process only allows us to do things we
already know how to do.
The
Corollary to the First Law of Software Process
You can't have a
process for something you don't know how to do or have never done.
The
Reflexive Creation of Systems and Processes
1.
The only way that effective systems can be created is through the
application of effective processes.
2. The only way that effective processes can be created is
through the construction of effective systems.
The Lemma of Eternal
Lateness
The only processes we can use on the
current project were defined on previous projects...
...which were different from this one.
The Second Law of
Software Process (See also "The Rule of Bifurcation")
We can only define software processes at two
levels:
1. Too high level, abstract and vague
2. Too detailed, narrow, and confining
The Rule of Process Bifurcation
Software process
rules should be stated in terms of two levels:
1. A general statement of the process or rule
2. A specific detailed example
(for example: see The Second Law of Software
Process).
The Dual
Hypotheses of Knowledge Discovery
Hypothesis One: We can only "discover" knowledge
in an environment that contains that knowledge
Hypothesis Two: The only way to assert the validity of any knowledge
is to compare it to another source of knowledge
Armour's
Observation on Software Process
What all software developers
really want is a...
...rigorous, ironclad, hide-bound, concrete, universal, absolute, total,
definitive, and complete set of process rules...
...that they can break.
The Third Law of Software Process (also known as the
Footwear Manufacturer's Minor Dependent's Law)
The very last kind of knowledge to be considered as a
candidate for implementation into an executable software system will be the
knowledge of how to implement knowledge into an executable software system.
The Twin Goals of Optimal
Termination
1. The only natural goal of a software process
group should be to put itself out of business as soon as possible.
2. The end result of the continuous application of effective process
will be that nobody actually has to use it!