...a response to ThinkThenCode. See also ExtremeThinking -- on how ExtremeProgramming requires the coder to think before coding.
The act of incrementally authoring, compiling, and testing code as a stimulant for thinking about larger design issues (DesignAndTheScientificMethod?). Works as well or better than diagrams and pseudo-code for some people. Especially useful when leveraging third-party libraries or frameworks, as it integrates the necessary discovery process to help prune the design search space as early as possible. Also gives a head start on building the eventual system, if there is a willingness to refactor the initial efforts as the design evolves.