Friday, September 19, 2008
It's a beautiful New England early fall evening, the sun is setting behind the trees as I make my way up the coast on an Acela regional train. The world is made and remade moment by moment in a clear stream of context. Each contiguous instant derives some, if not most, of it's meaning the previous instant. This is how the human brain makes sense of the world. By recognizing the temporal patterns that occur in events, we recognize what should happen next. For instance when I watch someone throw a ball I intuitively know how high it will go relative to other objects and where it will likely land. If the ball were to hang in the air after the throw we would suspect that the laws of physics had been suspended or perhaps feel like we had gone to sleep and passed into the dream world. This type of unexpected event would leave us on edge, uneasy, confused and untrusting of the world around us. I believe this is called cognitive dissonance.
The hanging baseball is a constant problem in the world of software. In fact it is more of an annoyance than cognitive dissonance since we are so used to this problem. We see it so often that we come to expect the problem. What I'm talking about is losing complete context when we jump from one application to the next. There are simple cases like when searching for airfares on Kayak, you find a flight on United and when you link off to the United site it DOESN'T have the flight you selected from Kayak at the top. Or you are searching for hotels on another travel site and it doesn't maintain the check-in/check-out dates in-between searches. Tougher instances are between web apps, like booking airfare on one site and then going to another to book hotels. Knowing full well that you just booked a roundtrip flight to Seattle, the browser should automatically fill in the city and check-in/check-out dates for you. And these are just the dead simple things software should be helping us out with by maintaining context and anticipating what we need next. This not only helps the individual but should lead to better targeting of advertisements providing advertisers with more effective communication to their audience, better click through rates, and higher ad revenue for site publishers. There are so many of these examples it could drain the entire coffers of VC funds for the next 10 years.
Think about the way in which we manage contacts. I look them up in my Mac Address Book but then I need to go to half a dozen places to gather information before I make the call. I want it to automatically fetch any information in SalesForce.com about the contact, their notes, the last time they were contacted and by whom. I also want it to pull up any emails I've sent to them recently and any to-do's i have entered around this account. I want a link to their website up and ready, a stock quote handy, and any recent news items and blog posts. I WANT MY SOFTWARE TO BE INTELLIGENT. Not that crazy HAL kind of intelligence that reads lips and wants to kill me, or the manic-depressive Marvin from Hitchhiker's Guide, but the uncomplaining intelligent assistant who anticipates my needs, brings it all together and makes my life simpler. Is that really too much to ask?