In 1985 Peter Naur argued that a program is more than just its source code. "Programming As Theory Building" explained how we build theories of the code which help us debug and refactor it but those theories rely on knowledge from outside of the code.
pages.cs.wisc.edu/~remzi/Naur....