When it was revealed in 1931, the world of mathematics and logic was shocked by Kurt Godels' Incompleteness Theorem, which holds that there are certain statements in every axiomatic system that are neither true nor false. Often, when we seek to implement an enterprise application, we make the same mistake that the advocates for the completeness of mathematical truth did in the early 1900s.
We expect somehow that the applications we implement will be able to completely automate and support the work we have to do. They do not.
The Application Incompleteness Theorem suggests that it is much better to assume that your application will not completely support your processes, and that you should have a strategy from day one that can manage exceptions and fill white space with a system well suited to that task.
Context and Background
Anyone who implements an application knows that it does not allow you to completely automate any process. But it automates much of the process, leaving various other mechanisms, such as documents or informal communication channels, which allow you to complete the rest of the work.
When you have a complicated company with an end to end process, there are problems and exceptions that are not covered in any application. There are problems that need to be handled manually, and there are problems that sit between applications. Rarely do people have a consistent strategy for dealing with exceptions and the white space between applications.
The Applicaton Incompleteness Theorem states that, when implementing an application, it is best to understand from the beginning that:
- The application will be, at best, an incomplete support for the process
- It will be impossible to understand all of the exceptions and white space at the beginning of the implementation process. Only through experience will you understand the things that the application does not do well, and what remains to be done
- The application itself is the best place to track and monitor exceptions, and fill that white space
The implication of the Application Incompleteness Theorem is that a different type of system should sit on top of your application in order to complete the job. The purpose of this research is to examine the kind of systems that sit on top of enterprise applications, that can help manage exceptions, fill white space and otherwise provide completeness.