Programming is a human communication activity. We want to minimize misunderstandings in our code to be able to work effectively as teams. This means we need to learn how to look at our code to spot areas where we could improve our communication skills. We want to get our ideas across. We want that our abstractions, our models, make sense to others.
Literature is a discipline with a long track record of authors and researchers trying to find out how to make writing communication effective. What could we learn from them?
In this talk I want to explore the relation between the process of writing computer programs with that of writing literary works of fiction. In particular I want to show some ideas presented by Umberto Eco in his book Lector in Fabula, seeing how we can improve knowledge sharing via our code, tests, documentation, and other artifacts.
The goal is to learn the skills required to help others understand how we made decisions about the tradeoffs in our code, like choosing abstractions, deciding on the level of performance required, or the amount of documentation needed for a project.