I came across this post recently. The Five Orders of Ignorance are essentially:
- having the answer
- having a question
- unknown unknowns
- (software development) methodologies for revealing unknown unknowns
- not knowing about the Five Orders of Ignorance
There’s another interesting point made in the post that the product of software engineering is not the code itself. Rather it’s the knowledge contained in the code, or as the author puts it:
Software is not a product, it’s a medium for storing knowledge
This is interesting from the perspective of writing clean code. For example, you wouldn’t write a book or technical guide without polishing it and refining it to make it easy to understand and follow, would you?
The article also talks about “hacking” (as in a hackathon, not exploitation) as a way of writing software while simultaneously transforming unknown unknowns into either questions or answers on how the system is supposed to function.
The author doesn’t explicitly state this, but in this sense hacking is a rudimentary form of software development methodology.
This also put me in mind of this line from Cracking The Coding Interviews:
a developer who just codes something without understanding what she is expected to create wastes the company’s time and money