This is amazingly similar to Test Driven Development. In the purest form of TDD, you don't write a single line of code until you have a failing test. The failing test is the unanswered question. Then, you write the code that "answers that question." This means that each step of the way, you are confirming that prior principles are correctly understood by the human and the computer before building on those prior principles.
As the Agile theory puts it, this approach "maximizes feedback".
Comments
This is amazingly similar to Test Driven Development. In the purest form of TDD, you don't write a single line of code until you have a failing test. The failing test is the unanswered question. Then, you write the code that "answers that question." This means that each step of the way, you are confirming that prior principles are correctly understood by the human and the computer before building on those prior principles.
As the Agile theory puts it, this approach "maximizes feedback".