It is not enough to be able to read and comprehend the source code for a software system.
We must also be able to comprehend what that system is doing at runtime, particularly when something goes wrong with execution.
Support for such capabilities are traditionally an afterthought supported by "debuggers," available only to developers.
This is a bad mistake. End-users have if anything a greater need to be able to inspect and understand program execution. They have if anything a greater need for support in identifying and correcting error conditions preventing successful completion of their work.
Support for end-user detection and correction of error conditions should be a prime design goal of every software system from inception.
Back to Comprehensible Computing.