Peter Naur wrote an article of interest: http://pages.cs.wisc.edu/~remzi/Naur.pdf
In particular, it mirrors my notion that Axiom needs to embrace literate programming so that the "theory of the problem" is presented as well as the "theory of the solution". I quote the introduction: This article is, to my mind, the most accurate account of what goes on in designing and coding a program. I refer to it regularly when discussing how much documentation to create, how to pass along tacit knowledge, and the value of the XP's metaphor-setting exercise. It also provides a way to examine a methodolgy'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. Using Naur's ideas, the designer's job is not to pass along "the design" but to pass along "the theories" driving the design. The latter goal is more useful and more appropriate. It also highlights that knowledge of the theory is tacit in the owning, and so passing along the thoery requires passing along both explicit and tacit knowledge. Tim