PeterNaur's essay "Programming as Theory Building" (1985) can be found, among other places, as an appendix to AlistairCockburn's AgileSoftwareDevelopment.
See ProgramsRepresentMentalModels and SystemMetaphor