Perhaps I have seen it before, but I just came across the “rubber duck debugging” method. It reminded me of a talk I gave at the 2013 BioC conference, in which I introduced the “marmot reproducible researching” method. That is, when you write code chunks in a knitr document, you need to explain to the marmot what you are doing in the code with the corresponding prose/narratives.
I don’t remember whether I borrowed the ideas from the rubber duck debugging method (chances are I did). Anyway, code is often only one part of our work, but we (especially software developers) tend to think code is more essential or important or difficult to write than narratives/documentation. That is not true. Code is more for computers, and documentation is for humans. It is actually often more difficult to deal with humans than computers.