Primetime Hypermedia

Movies of Software

by Jon Udell

One of the themes I sounded in the first installment of this column was the notion of software as a movie:

In the software world, we spend a lot of time describing how things work. To echo Michael Kinsley's lament about music and film, why should those descriptions use only text, possibly augmented with screenshots? Why don't we present, and quote from, live experiences?

It's way easier to do that than you might think. Tools that capture screen video, along with voiceover, can produce compelling software demonstrations. It's true that many of these tools are commercial, but some highly capable ones--including Windows Media Encoder--are free. [O'Reilly Network: PrimeTime Hypermedia ]

Over the past six months, I've made increasing use of this powerful but underappreciated form of video. Here are some examples, in various formats:

My favorite example, though, is Paul Everitt's impromptu demo of the <oXygen/> XML Editor and XSLT Debugger, which he posted on his blog back in March. It impressed me because:

  • Paul's demonstration of the product is so much more compelling than the features and benefits pages on the vendor's website, which rely on written descriptions and static screenshots.
  • A user of the product was able to produce and publish this demo in a completely ad hoc way.
  • Paul's commentary was authentic in a way no vendor-produced demo could have been. At the time, I wrote on my blog:
    The customers that the oXygen site lists are just names and websites that otherwise mean nothing to me. Paul, on the other hand, is someone I know. And even if I didn't know him personally, I could get a sense of the guy by absorbing the identity he's projected into his blog over time. So his recommendation feels personal. I hear the voice of experience and the ring of truth. The fact that Paul's assessment of oXygen includes a comparison with Komodo (and an implicit criticism of oXygen) makes his final recommendation all the more credible. [Jon's Radio: Let your customers sell your software]

Of course, there's nothing new about the ability to capture and replay software experiences. The first tool I used to do this, back in the mid-1990s, was Lotus ScreenCam. Its more modern counterparts include Camtasia Studio, Qarbon, and Macromedia Captivate. These are all commercial programs designed mainly for professionals who do training and marketing.

That's an important product niche, but I also see a need for widely-available tools, either free or inexpensive, that enable users to do what Paul did: spontaneously capture and share their software experiences. Here are some of the scenarios for use of such tools:

  • Accurate reporting of failure scenarios. When things go wrong, users are notoriously incapable of describing to developers exactly what sequence of actions they performed. As a developer, imagine if a user could record a screen video--with accompanying narration--and ship the resulting video back to you for analysis.
  • More usability analysis. Developers, for our part, are notoriously incapable of projecting ourselves into the beginner's mind of the user. Watching people try to use the software we've written is a painful experience--so painful, in fact, that we tend to avoid subjecting ourselves to it. Circumstances conspire to help us because it's expensive and logistically complex to arrange live observation sessions. If users were able to routinely capture their experiences and relay them to developers, we'd have to face the music more often.
  • Users supporting users. A large and growing amount of software support is provided by users to other users. The Usenet and web discussion boards formerly hosted much of this activity. Increasingly, it happens on blogs. Whatever the medium, the state of the art for this mode of communication is text, possibly augmented by static screen shots. But if a picture is worth a thousand words, a movie may be (literally) a thousand pictures--plus voice annotation.

To enable these scenarios, two conditions must hold. First, it must be as straightforward to play back a screen video as it is to view a web page with embedded images. In terms of broadband penetration, we're getting there. The latest reports peg that number at almost 40% for U.S. internet users at home, and 80% for U.S. internet users at work. In terms of format, there remains a confusing array of choices: Windows Media, QuickTime, Real, Flash. For convenience of production and simplicity of use, it would be nice to be able to choose a single format. Among the available options, Flash is appealing. The Flash player is broadly available, either already installed on--or painlessly installable on--Windows, Mac, and Linux systems. But while commercial products such as Camtasia, Qarbon, and Captivate can produce well-compressed and progressively-downloadable .SWF files, I've yet to discover a workable free alternative.

Here's the second enabling condition: the ability to capture and blog a screen video must be as accessible as the ability to snap a static screen shot and blog it. Though I'd like to be proven wrong, I don't think that condition holds true yet on OS X or Linux. There are commercial tools, such as Snapz Pro X for OS X, but you can't expect everyone to pony up for that. I've had some success with a free alternative called vnc2swf, a derivative of VNCviewer that uses a VNC server for screen capture and the ming library for SWF output. But you can hardly expect Aunt Tillie to install X11 and do the configure/make/install dance. And vnc2swf's output files are huge, so even if you provided Aunt Tillie with the tool, the resulting files wouldn't be progressively downloable.

So for now, the best platform for spontaneous user-initiated recording of screen videos appears to be Windows. Microsoft's Windows Media Encoder 9 is a free download, and it does everything you need: captures a window or specified rectangle of the screen, with audio, and produces a compact WMV file that can be progressively downloaded and viewed in Windows Media Player.

In the spirit of this column, I'm now going to show--rather than describe--that process. My demonstration is a layered affair. The innermost layer is a movie of the Firefox browser running the XPath search application I wrote for my blog. Here is that movie:

A demonstration of XPath search: Windows Media

The next layer shows Windows Media Encoder capturing the browser-based demo. Here is that movie:

How I captured the demonstration: Windows Media, QuickTime, Flash.

How did I capture Windows Media Encoder in the act of capturing the browser-based demo? The outermost layer, not shown, is Camtasia Studio watching Windows Media Encoder watching the browser. Whew! A veritable hall of mirrors.

I think you'll agree that the procedure shown here, albeit not quite as simple as ALT-PrtScrn (i.e., Windows' built-in key combo for taking a snapshot of the screen), is nevertheless highly accessible. If you're a Windows user, think of this technique as a way to enhance descriptions of software that you need to convey to other users or to developers. And if you're a Windows developer, consider making that same recommendation to your users.

In the same way that blogging has radically democratized basic web publishing, I expect that Windows Media Encoder--along with counterparts that I hope become broadly accessible on other platforms--will democratize the use of screen videos. The medium needn't be available to professionals only. Lots of folks need to describe, demonstrate, or document the behavior of software, and this is a powerful way to do it.

Jon Udell is an author, information architect, software developer, and new media innovator.

Read more Primetime Hypermedia columns.

Return to the O'Reilly Network.