236
THE LAWS OF SOFTWARE PROCESS
known ignorance, this may not be true. So what kinds of ignorance might
we exhibit?
Based on what we know and what we do not know, we can classify our
ignorance into strata or layers. I call these levels the “Five Orders of Igno-
rance.” While the concept is quite general and even somewhat philosophi-
cal, quantizing our knowledge and ignorance can be helpful as we try to
understand what we need to do to learn and build a system that works. The
Five Orders of Ignorance (5OoI) also helps to explain some of the puzzling
things that routinely happen in the software development environment,
and also some of the behaviors we exhibit trying to create software.
The Five Orders of Ignorance
For very logical, but to noncomputer ...