Have you noticed how much easier it is to remember directions in your own city? Think about the last time your printer ran out of ink and you had to jot directions to a restaurant on a post-it. Compare that to writing out directions from a hotel to a restaurant in an unfamiliar city.
It’s a lot easier on familiar turf. Why? Near home, the directions are anchored by points of familiarity in your mind. You already know how to get to someplace nearby, so you can use that as a ready point of reference. Closer to home, you get to use all kinds of reference points: your work, familiar street names, the park you go to, etc. Because that’s the way your brain works. In your brain, everything is a relative reference.
This is equally true if you are communicating directions to someone, rather than just writing them down for yourself. The better you know the person, the easier it is: “go like you’re headed to work, but turn left just before that Thai restaurant you like.” Not only are the directions concise, they are simple enough that you probably don’t need to write them down. Communicating is a lot easier when there are shared experiences, reference points, and a sense of “knowing what the other person knows.”
There are lessons in here somewhere for those of us who create software. After all, we spend a lot of time with our computer trying to find things, either on the computer (photos, spreadsheets) or with the computer (a book on Amazon, that page you Delicious’d – or did you mark it in Google Reader?). I often think of this when I’m using Delicious. I know I bookmarked something, but wading through the tag cloud to find it again takes too long. I usually end up finding it with a few Google searches. When the first search fails, there’s usually something in those first results which triggers my memory on the keywords that will retrieve it.
Can software infer what is familiar terrain for us, and provide navigation relative to that? Can Google or Delicious know what my mental “anchors” are, and help me find stuff from there?
An OS-level example: I have a dozen or so Ruby on Rails projects in /Users/andre/projects/rails/, and I spend a lot of time in the immediate subdirectories. If there were a heat map of the places I spend time in, this directory would be hot. Would that be useful as a navigational device? Possibly. If a place got hot enough, the OS could ask me to label it in a way that’s meaningful to me. I might use that as a jumping-off point as long as spend a lot of time on Rails projects.
Obviously there are pitfalls when trying to get a computer to guess what you’re trying to do, or what’s important to you (R.I.P Clippy). Still, there are bound to be payoffs for trying to get the computer to present navigation the way you think, rather than how it computes. A good start is to think about how our brains tend to remember things clustered relative to familiar points of reference.
Interested in leveling up your coding skills from the same authors of the Big Nerd Ranch Guide? Subscribe to The Frontier today!