TomTom, Mandy, and Software That Worked With Me
December 16th, 2007
Today we finally decided upon a gift for my father-in-law: a GPS unit. After a bit of research we settled on the TomTom One, 3rd Edition, and on impulse we bought one for ourselves, too. Being a geeky couple, my wife and I tore into it as soon as we got it back to the car and used it for the rest of the day, listening to the "Mandy" voice direct us around the SF Bay Area. It was quite a fascinating experience. Geeky and gadget-happy as I am, I have never once used a GPS device -- I was a complete user-experience blank slate, and I am happy to report that the TomTom is extremely easy to use. And, as we drove around, something very strange happened: software worked with me, not against me.
We were driving around Oakland when, despite Mandy's ample and timely promptings, I missed a left turn. As I watched my street pass into the rear-view mirror, I felt a bit of panic: I did something wrong, I broke the rules, I failed, I violated the logic. What was Mandy going to do? Would she yell at me? Scold me? Make me feel guilty? Require me to flip a nasty U-turn to appease her? Based on my usage of software, and knowing how I've coded software myself, that's what I expected. Password invalid! Username not on record! Field required! You 'freakin idiot, why didn't you accept the privacy agreement?!?! You missed that turn, dumbass!
But despite missing the turn, Mandy did not berate me with my failure: the TomTom briefly stated that it was "recalculating route," updated my path on the map, and Mandy said that I should take the next right-hand turn. And I was shocked, shocked I say, at this turn of events. The TomTom's software actually worked with me, rather than forcing me to work with it. Missed the turn? No problem! Mandy's fine with that... hey, in fact, maybe you're way's better, Joe, great idea! Left turns suck anyway. The software could have easily ruined the experience with the smallest indication of disappointment: a beep, a ding, a buzz, a flash of red... but "recalculating route" is just fine to me.
How can we apply this working-with-you idea to traditional software? Unlike the streets of Oakland, most software deviations result in dead ends, not scenic routes. If you don't log in, you can't see your bank account balance, and passwords really are required. I would really like to consider TomTom's happy-to-adjust-its-expectations approach in other software design situations that might be more flexible. Google does this successfully: Search for "tommtomm" and Google asks "Did you mean: tomtom". Well, yeah, I did, thanks!

Google is also my spellchecker, too, happily suggesting corrections to my butchering attempts to spell.
There are examples of software that seems like it's trying to work with me, but it's not. Instead, it's guessing what I want to do, and guessing wrong. Like that annoying guy who is always interrupting you to finish your sentences... incorrectly. My favorite example of this is "auto completion," a feature curse to software as diverse as Microsoft Word to the program I'm using to write this blog post, TextMate. Try wring up a lab report Chem 115 using the symbol for calaries, (c): you'll get © instead. Nice try, Microsoft, but no ©igar. Software development tools are the worst, especially when typing operators and symbols used often while coding, such as ', ", {, [, and (, which are "helpfully" expanded to be ' ', " ", [ ], { }, and ( ). It seems like that should help programmers type less, but I have yet to meet one that actually likes this feature. It has something to do with the lack of control -- we're writing the code, thank you very much, and when we're done defining that Hash, we'll type the ending } ourselves. Other code-completion actions require the programmer to "ask" for them by hitting a magic key combo, such as CTRL+Space, but not those damn symbols. Oh well, nothing''s ""perfect.""
I'm
Leave a Reply