(The idea for this post came to me while posting this story on my personal blog, The Adventures of Accordion Guy in the 21st Century.)
Take a look at the close-up of the front page of the Lewiston Tribune, a newspaper in Lewiston, Idaho. Note the two pictures, which are for different stories: one of a guy making a Christmas sign, the other being surveillance camera footage of a thief. Do you see something odd that connects the two otherwise-unrelated pictures?
Luckily someone at the local police read the paper, put two and two together and made the arrest.
My first thought after reading the story was “Why didn’t the photo editor or layout people at the paper figure it out?”.
Then I wondered what would’ve happened if the photos hadn’t been laid out on the same page. The connection between the guy making the sign and the wallet thief wouldn’t have been as apparent, and there’s a chance that he wouldn’t have been arrested.
That’s when the not-so-obvious lesson from this incident came to me (the obvious lesson being “when committing a crime, don’t wear clothing that easily identifies you). That lesson comes in two flavours:
- The layout of information matters. (I’m half-expecting Edward Tufte to burst into the room, point at my monitor and go “See? SEE?!“)
- Sometimes the best way to solve a problem is to rearrange the given information.
This can be applied to all sorts of areas in development:
- On the front end, the way you present information in the user interface can directly affect the way it’s analyzed by your users and can even affect the conclusions they come to.
- On the data side, the way you cross-reference (or, if you prefer the new term, “mash up”) data can make the difference between an app that just collates information and one that does something useful and provides new insights.
- In your code, the way you arrange it can make it more or less understandable, and therefore more or less maintainable.