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! Chinese Proverb The Five Orders of Ignorance Did you know: 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. So what kinds of ignorance do we have? It turns out there are five levels or "Orders of Ignorance". They are (starting from zero, 'cos we are computer folk, and we always count from zero): 0th Order Ignorance (0OI)—Lack of Ignorance I have Zeroth Order Ignorance (0OI) when I 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… …and I can readily identify that fact. 2nd Order Ignorance (2OI)—Lack of Awareness I have Second Order Ignorance (2OI) when I don’t know that I don’t know something. …That is to say, no only am I ignorant of something (I have 1OI), I am unaware of that fact 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 am unable to 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). For an discussion of the role of the Five Orders of Ignorance in software development, read the article, and drop me a line. Source: Corvus International Inc. (www.corvusintl.com)