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
Process only allows us to do things we already know how to do.
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.
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
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 discrete and mutually exclusive levels:
Level1. Too high level, abstract and vague
Level2. Too detailed, narrow, and confining
The Rule of Process Bifurcation
Software process rules should be stated in terms of two components:
1. A general statement of the process or rule
2. A specific detailed example
(for example: see The Second Law of Software Process).
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
Observation on Software Process
What all software developers really want from software process 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
Goal 1. The only natural goal of a software process group should be to put itself out of business as soon as possible.
Goal 2. The end result of the continuous application of effective process will be that nobody actually has to use it!