Peter Naur, widely known as one of the authors of the programming language syntax notation "Backus-Naur Form" (BNF), wrote "Programming as Building" in 1985. It was reprinted in his collection of works, Computing: A Human Activity (Naur 1992).
This article is, to my mind, the most accurate account of what goes on in designing and a program. I refer to it regularly when discussing much documentation to create, to pass along tacit knowledge; and the value of the XP's metaphor-setting exercise. It also provides a way to examine a methodology's economic structure.
In the article, which follows, note that the quality of the designing programmer's work is related to the quality of the match between his theory of the problem and his theory of the solution. Note that the quality of a later programmer's work is related to the match between his theories and the previous programmer's theories.
Naur's ideas, the designer's job is not to pass along "the design" but to pass along "the theories" driving the