One of my personal interests is the relationship between good memory and being a good programmer. So this article about note-taking and its relationship to short- and long-term memory really catches my attention.
The article suggests that the reason that people take notes has changed some time in the 12th century. Before that time, people took notes to help them remember. After the 12th century, people started taking notes instead of remembering. And as technology increases, we “delegate more tasks of remembering to the computer”.
Here’s the most interesting bit:
The result of this externalization, Blair notes, is that we come to think of long-term memory as something that is stored elsewhere, in “media outside the mind.” At the same time, she writes, “notes must be rememorated or absorbed in the short-term memory at least enough to be intelligently integrated into an argument; judgment can only be applied to experiences that are present to the mind.”
Lisa Lynch, the author of the article, talks about an important triangle between “the scholar, the book, and the note”, and the evolution of that triangle to “database and user”. Lynch suggests that we may be entering an age of no more notes: that technology is allowing us to bring knowledge into short-term memory directly from the original (online) source texts.
I find myself wondering if that triangle has an analogy in traditional or agile development. Here are some possible candidates: tasks on a white board, requirements documents or design documents, the program, and the developer.
One way of looking at the analogy is to say that agile development favours a task list over big requirements documents. This sounds like the agile development is doing the opposite of what Lynch is talking about. I think I’ve convinced myself that this analogy is flawed.
Instead, I think that the analogy is this:
- the developer is like the scholar
- the program is like the book (it’s the authoritative source)
- the design document is like the notes about what the program allegedly does
Agile development, then, seems to follow a similar model to what Lynch describes: that “reunderstanding” the design now returns to the original source, rather than the notes. Other agile developers have articulated this in terms of “The Source Code is the Design”.
There are some areas where I still want to ponder the relationship between Lynch’s essay and agile development: in particular, Lynch talks about taking in information from an original text, and that’s a bit different than the process of creating an original text.