Communications of the ACM: October
2000
He
who knows not and knows not that he knows not, is a fool—shun him!
He who knows not and knows that he knows not, is unlearned—teach him!
He who knows and knows not that he knows, is asleep—awaken him!
He who knows and knows that he knows, is enlightened—follow him!
Arab Proverb
quoted by
Isabel Lady Burton (1831-1896) in
"The Life of Captain Sir Richard F. Burton"
The Five Orders of Ignorance
Software is not a product, it's a
medium (see Software is not a Product)
for storing knowledge. Therefore, software development is not a
product producing activity, it is a knowledge acquiring activity. Knowledge
is just the other side of the coin of ignorance, therefore software development
is an ignorance-reduction activity.
There are five levels or "Orders
of Ignorance". They are (starting from zero;
computer people always count from zero):
0th
Order Ignorance (0OI)—Lack of Ignorance
I have Zeroth Order Ignorance (0OI) when I (provably)
know something…
…and
can demonstrate my lack of ignorance in some tangible form, such as by building
a system that satisfies the user.
1st
Order Ignorance (1OI)—Lack of Knowledge
I have First Order Ignorance (1OI) when I don’t know
something…
…but
I know I don't know it.
2nd
Order Ignorance (2OI)—Lack of Awareness
I have Second Order Ignorance (2OI) when I don’t know that I don’t
know something.
…not only am I ignorant of something, I am unaware of
what that something might be
3rd
Order Ignorance (3OI)—Lack of Process
I
have Third Order Ignorance (3OI) when I don’t know of a suitably efficient way
to find out that I don’t know that I don’t know something….
…so
I cannot resolve my 2OI
4th
Order Ignorance (4OI)—Meta Ignorance
I have Fourth Order Ignorance (4OI) when I don’t know about the Five Orders of
Ignorance…
…which
you no longer have, dear reader.
These
Five Orders of Ignorance play an tremendously important role in
systems development: our job is the reduction of 2OI. All
systems processes and methodologies are 3OI processes. 2OI and 3OI
explain most of our problems in systems development. Our management
systems are set up to deal only with 0OI and 1OI, and are wholly inadequate for
the modern world (mostly because of 4OI).
If
you want to chat about
the
role of the Five Orders of Ignorance in software development, read
the article and drop me a line.
|