Software as Essays
Remember, in Chapter 8, Documentation, that I said code only tells you what the software is doing; it's hard to use it to interpret how it's doing it and impossible to discover why without some supporting material. You also have to think about who is doing the interpreting; understanding the written word, executable, or otherwise, is a subjective process that depends on the skills and experiences of the reader.
You could imagine an interpretation in the form of an appeal to satisfaction: who was the author writing for, and how does the work achieve the aim of satisfying those people? What themes was the author exploring, and how does the work achieve the goal of conveying those themes? These questions were, until the modern rise of literary theory, keyways in which literary criticism analyzed texts.
Let's take these ideas and apply them to programming. We find that we ask of our programmers not "can you please write readable code?" but "can...