Contextualizing Software

Imagine:  You're working on some legacy ASP code in Visual Interdev and you open MSN Messenger. You see two groups: “ASP.NET Friends (Appear Offline)” and “Classic ASP Friends (Appear Online)“.

Your phone rings. A friend named response.write(“kurt“) , who is a member of your buddy list in the ASP.NET Friends group, asks “Dude, why aren't you Online on IM? I've got a question about Server Controls that you might be able to answer...”

You say, “Dude, I am SOOO out of context. I'm working on migrating a classic ASP app. Can you ping me when I appear online in MSN messenger?

A few hours later you open Visual Studio .NET, Get the latest version of a C# Web Application project from source control, and an instant message appears from your friend Kurt.

“You in context now?” he quips.

“Yeah, working in VS.NET. Didn't you have an ASP.NET question for me?”

IMO, the sort of context-awareness that MSN Messenger exhibits in this ficticious scenario will someday be the norm. When you open Word, your writing friends will see you as Online. When you start the grammar/spellchecker, your IM status will automagically change to Busy. When you open your annual review (you know, the one you've been procrastinating writing for two weeks) in Microsoft Word, Windows will automatically close all other running applications. Contextualization is one of, if not the next big thing in software development.

Social computing geeks like danah have been pounding the drums of context for years. My friend Jonathan was talking about
the beauty of rich, contextually-sensitive user affordances” in Visual Studio in the LAST CENTURY. Finally, here's an interesting sidenote for my 1.36 readers who get paid to write for a living:)

[Wikipedia] “The concept of context-sensitive grammar was introduced by Noam Chomsky in the 1950s as a way to describe the syntax of natural language where it is indeed often the case that a word may or may not be appropriate in a certain place depending upon the context.“