Kurt Gödel was an Austrian-American mathematician who lived from 1906 to 1978. He’s best known for his incompleteness theorems, which have had a tremendous impact not only on mathematics but on other sciences and even philosophy.
Gödel’s theorems were actually a response to the ideas of another mathematician, David Hilbert. Hilbert had a dream of creating a complete, accurate and consistent system for all the mathematical principles (or axioms) that had been discovered to date. Earlier, some of these axioms were discovered to be wrong, so there was tremendous pressure to ensure such errors would never occur again. Hilbert wanted to establish a solid foundation for all mathematics, now and forever.
Sounds like a great idea right? There was just one problem – to create such a “perfect” system is impossible, and Gödel proved it. He demonstrated that if you created a complete system that described every mathematical truth, it would contain some statements that could not be proven. In other words, the system would be complete but not fully predictable or accurate. Conversely, you could create a system that is fully provable, but then it would not be complete.
How Gödel did this is incredibly complex, but I will try to explain. He essentially created a mathematical system using a complex numerical notation, where one of the statements in the system was: This statement cannot be proven.
Now, if this statement could not be proven, then the system might be complete, but it would contain a non-provable statement, making the system itself inconsistent. But, if the statement is provable, then it means the system still contains a non-provable statement (because the statement itself says it can’t be proven) and therefore the system itself is still not fully provable.
As a workaround, we could just leave this pesky statement out of the system, because it’s causing so many problems. However, if we do that, then the system would be missing a statement, making the system fully provable (yay!), but incomplete (boo!).
To summarize, Gödel was saying that any system can be:
This was Gödel’s first incompleteness theorem. His second theorem went further and said that any system can never be complete. That is, any system containing true statements will always be missing some statements, but you can never know what they are. (If you did, then they wouldn’t be missing, would they?)
The philosophical impact of Gödel’s theories are enormous. Extrapolating his ideas, it means that we can never know everything, and that even if we could, some of what we know could never be proven.
The implications for information developers should be clear. All documents are essentially collections of statements, namely theory and procedures. It is impossible to create a document that is complete, and we don’t even need Gödel to show this. Users are complex beings and therefore completely unpredictable. Compounding this is the fact that the product being documented (especially if it’s software) is also unpredictable. Mathematically, we would express these two facts as:
user unpredictably x product unpredictably = lots and lots of unpredictably
It is therefore impossible to create a complete guide that would explain every possible situation. Even if you could, it would contain statements that are not true. Again, we don’t need Gödel to prove this. Too often we see guides that try to be complete, and in doing so sacrifice quality and accuracy. That’s why the mantra of every tech writer when responding to pressure to quickly complete the draft should be: “Do you want it fast or do you want it right?”
More importantly, if you really did try to create a complete guide, it would have a size approaching infinity, which is a rather large number. Some of the best examples of documentation are quick start guides, usually just a few pages, or as a fold-out poster. Size does matter, but not in the usual way, because less is often much, much more.
This column is now complete, but of course I cannot prove a word of it.