October 12, 2005

The importance of interaction data

Analyzing the activities of your users is a great tool for continuous software improvement

The twin themes of this year's Accelerating Change conference were AI (artificial intelligence) and IA (intelligence amplification). On the AI track, people talked about making systems smarter. On the IA track, people talked about harnessing collective human intelligence. The tension between the two groups struck some sparks.

One panel, which included Google's Director of Search Quality Peter Norvig, was berated by an audience member who felt that the grand ambitions of AI should get more respect. Sorry, Norvig said, but machine intelligence isn't what powers Google's search engine. Instead, it relies on a set of clever and continuously improving techniques for connecting the activities of a large population of intelligent authors to the activities of an even larger population of intelligent readers.

A nice example of this approach was cited by another Google executive, Adam Bosworth, in his talk at the MySQL Users Conference. Rather than consulting a dictionary to propose alternatives to misspelled words, Google instead mines its own database for patterns of use. If statistics show that a query for "Boswerth" is likely to be followed by a query for "Bosworth," the search engine will make that connection for you.

Discussions of software as a service tend to focus on its obvious benefits: zero-footprint deployment and seamless incremental upgrades. Less noticed, but equally valuable, is the constant flow of interaction data. The back-and-forth chatter between an application and its host environment can be a drag when connectivity is marginal and it precludes offline use. But when this communication flows freely, it paints a moving picture that shows how individuals and groups are using the software. As they watch that movie, developers become intimate observers of their users. They can't help but think of ways to optimize the patterns they discover, and, as a result, the software improves gradually and continuously.

The amount and specificity of interaction data varies along a continuum of application styles. Basic Web applications deliver low-level click streams that can be rather noisy but -- when well analyzed -- highly informative. AJAX (Asynchronous JavaScript and XML)-style Web applications can be more informative in some cases, and less so in others.

If a partial page refresh results in a server log entry, then a log analyzer can know that the focus of interaction was a particular control on the page. That's more information than a conventional full page refresh would have yielded. But if interaction with that control doesn't involve a server transaction, then no log entry is recorded, revealing less than if only straight HTML had been used.

Relaying fine-grained events data from so-called rich Internet applications, based on substrates like Java, Flash, and .Net, requires extra programming and administrative effort. By default, the most visible events may be calls to Web services. This is important and interesting information, but because well-designed Web services are coarsely granular, it lacks detail.

At the far end of the continuum, conventional GUI applications run autonomously and transmit little or no interaction data. That's changing slowly as they too begin to rely on Web services.

Software delivered as a service is inherently more capable of continuous improvement. But every application can -- and should -- produce detailed interaction data. It's worth its weight in gold.

Close

On Twitter now

Application development

Powered by Twitter

White Paper

D2D Virtual Tape Library Replication Primer

This whitepaper explains the terminology and concepts behind Data Replication technologies and establishes some sizing rules through worked examples. Learn the new paradigm in disaster tolerance—protect data anywhere.

Download now »

White Paper

An Alternative to Virtualization for Datacenter Cost Savings

Server virtualization is a popular option for dealing with mounting datacenter costs. Another equally promising approach is the use of an Application Delivery Controller. Citrix NetScaler provides a low-cost way for organizations to reduce their server count and accrue cost savings from a reduction in space, cooling, power and personnel.

Download now »

White Paper

Why Your Firewall, VPN, and IEEE 802.11i Aren't Enough to Protect Your Network

The emergence of WLANs has created a new breed of security threats to enterprise networks.

Included in HP ProCurve WLAN solutions is security technology that alleviates threats from WLANs through:
* Monitoring wireless activity inside and out of the enterprise
* Classifying WLAN transmissions into harmful and harmless
* Preventing transmissions that pose a security threat to the enterprise network
* Locating participating devices for physical remediation

Download now »

White Paper

Bringing the Edge to the Data Center

Effectively address data protection challenges, implementing solutions that help store and protect business–critical data while cutting costs and improving efficiency and reliability.

Download now »

Sign up to receive InfoWorld Resource Alerts

Subscribe to the Developer World Newsletter

Receive a weekly roundup about the art and science of software development.

©1994-2009 Infoworld, Inc.