Chapter 31. Test-Driven Development and the Cycle of Observation
I recently watched an interesting discussion between several well-known programmers on the nature and use of TDD (Test-Driven Development), a development system where one writes tests first and then writes code.
Each participant in the conversation had different personal preferences for how they write code, which makes sense. However, from each participant's personal preference you could extract an identical principle: "I need to observe something before I can make a decision." Some wanted to observe the results of the tests while they were writing code, while others wanted to write code and look at that to decide how to write further code. Even when they talked about exceptions to their own rules, they always talked about having something to look at as a fundamental part of their development process.
It's possible to minimize this point and say it's only relevant to debugging or testing. It...