For many years I have alternately worn two professional hats: writer and programmer. Lately I find myself wearing a third hat: filmmaker. When I began making the films that I now call screencasts, my readers and I both sensed that this medium was different enough to justify the new name that we collaboratively gave it. Here's how I define the difference. Film is a genre of storytelling that addresses the whole spectrum of human experience. Screencasting is a subgenre of film that can tell stories about the limited--but rapidly growing--slice of our lives that is mediated by software.
Telling stories about software in this audiovisual way is something I believe technical people will increasingly want to do. To explain why, let's first discuss a more ancient storytelling mode: writing.
The typical reader of this column is probably, like me, a writer of both prose and code. Odds are you identify yourself as a coder more than as a writer. But you may also recently have begun blogging, in which case you've seen your writing muscles grow stronger with exercise.
Effective writing and effective coding are more closely related than you might think. Once upon a time I spent a year as a graduate student and teaching assistant at an Ivy League university. My program of study was science writing, but that was a tiny subspecialty within a larger MFA (master of fine arts) program dedicated to creative writing. That's what they asked me to teach, and the notion terrified me. I had no idea what I'd say to a roomful of aspiring poets and novelists. As it turned out, though, many of these kids were in fact aspiring doctors, scientists, and engineers who needed humanities credits. So I decided to teach basic expository writing. The university's view was that these kids had done enough of that in high school. Mine was that they hadn't, not by a long shot.
I began by challenging their reverence for published work. Passages from books and newspapers became object lessons in editing, a task few of my students had ever been asked to perform in a serious way. They were surprised by the notion that you could improve material that had been professionally written and edited, then sold in bookstores or on newsstands. Who were they to mess with the work of the pros?
I, in turn, was surprised to find this reverent attitude even among the budding software engineers. They took it for granted that programs were imperfect texts, always subject to improvement. But they didn't see prose in the same way. They didn't equate refactoring a program with editing a piece of writing, as I did then and still do.
When I taught this class more than twenty years ago the term "refactoring" wasn't commonly applied to software. Yet that's precisely how I think about the iterative refinement of prose and of code. In both realms, we adjust vocabulary to achieve consistency of tone, and we transform structure to achieve economy of expression.
I encouraged my students to regard writing and editing as activities governed by engineering principles not unlike the ones that govern coding and refactoring. Yes, writing is a creative act. So is coding. But in both cases the creative impulse is expressed in orderly, calculated, even mechanical ways. This seemed to be a useful analogy. For technically inclined students earning required humanities credits, it made the subject seem more relevant and at the same time more approachable.
In the pre-internet era, none of us foresaw the explosive growth of the internet as a textual medium. If you'd asked me then why a programmer ought to be able to write effectively, I'd have pointed mainly to specs and manuals. I didn't see that software development was already becoming a global collaboration, that email and newsgroups were its lifeblood, and that the ability to articulate and persuade in the medium of text could be as crucial as the ability to design and build in the medium of code.
Nowadays, of course, software developers have embraced new tools of articulation and persuasion: blogs, wikis. I'm often amazed not only by the amount of writing that goes on in these forms, but also by its quality. Writing muscles do strengthen with exercise, and the game of collaborative software development gives them a great workout.
Not everyone drinks equally from this fountain of prose, though. Developers tend to write a great deal for other developers, but much less for those who use their software. Laziness is a factor; hubris even more so. We like to imagine that our software speaks for itself. And in some ways that's true. Documentation is often only a crutch. If you have to explain how to use your software, you've failed.
It may, however, be obvious how to use a piece of software, and yet not at all obvious why to use it. I'll give you two examples: Wikipedia and del.icio.us. Anyone who approaches either of these applications will immediately grasp their basic modes of use. That's the easy part. The hard part is understanding what they're about, and why they matter.
A social application works within an environment that it simultaneously helps to create. If you understand that environment, the application makes sense. Otherwise it can seem weird and pointless.
Paul Kedrosky, an investor, academic, and columnist, alluded to this problem on his blog last month:
Funny conversation I had with someone yesterday: We agreed that the thing that generally made us both persevere and keep trying any new service online, even if we didn't get it the first umpteen times, was having Jon Udell post that said service was useful. After all, if Jon liked it then it had to be that we just hadn't tried hard enough. [Infectious Greed]
I immodestly quote Paul's remarks in order to revise and extend them. I agree that the rate-limiting factor for software adoption is increasingly not purchase, or installation, or training, but simply "getting it." And while I may have a good track record for "getting it," plenty of other people do too--the creators of new applications, obviously, as well as the early adopters. What's unusual about me is the degree to which I am trained, inclined, and paid to communicate in ways that help others to "get it."
We haven't always seen the role of the writer and the role of the developer as deeply connected but, as the context for understanding software shifts from computers and networks to people and groups, I think we'll find that they are. When an important application's purpose is unclear on the first umpteen approaches, and when "getting it" requires hard work, you can't fix the problem with a user-interface overhaul or a better manual. There needs to be an ongoing conversation about what the code does and, just as importantly, why. Professional communicators (like me) can help move things along, but everyone needs to participate, and everyone needs to be able to communicate effectively.
If you're a developer struggling to evangelize an idea, I'd start by reiterating that your coding instincts can also help you become a better writer. Until recently, that's where I'd have ended this essay too. But recent events have shown me that writing alone, powerful though it can be, won't necessarily suffice.
I've written often--and, I like to think, cogently--about wikis and tagging. But my screencasts about Wikipedia and del.icio.us have had a profoundly greater impact than anything I've written on these topics. People "get it" when they watch these movies in ways that they otherwise don't.
It's undoubtedly true that an audiovisual narrative enters many 21st-century minds more easily, and makes a more lasting impression on those minds, than does a written narrative. But it's also true that the interactive experience of software is fundamentally cinematic in nature. Because an application plays out as a sequence of frames on a timeline, a narrated screencast may be the best possible way to represent it and analyze it.
If you buy either or both of these explanations, what then? Would I really suggest that techies will become fluid storytellers not only in the medium of the written essay, but also in the medium of the narrated screencast? Actually, yes, I would, and I'm starting to find people who want to take on the challenge.
Also in Primetime Hypermedia:
A few months ago I heard from Michael Tiller, who describes himself as a "mechanical engineer trapped in a computer scientist's body." Michael has had a long and passionate interest in Modelica, an open, object-oriented language for modeling mechanical, electrical, electronic, hydraulic, thermal, and control systems. He wanted to work with me to develop a screencast on this topic. But it's far from my domains of expertise and, in the end, all he really needed was my encouragement. This week, Michael launched a website called Dynopsys.com that's chartered to explore the intersection of engineering and information technologies. Featured prominently on the site is this 20-minute screencast in which he illustrates the use of Modelica in the context of the Dymola IDE.
This screencast was made with Windows Media Encoder 9, and without the help of any editing. After a couple of takes, Michael came up with a great overview of the Modelica language, the Dymola tool, and the modeling and simulation techniques that they embody. Since he is also author of a book on this subject, I asked Michael to reflect on these different narrative modes, and here's how he responded on his blog:
If I were interested in teaching someone just the textual aspects of the Modelica language, this is exactly the approach I would take.
But when trying to teach or explain a medium that is visual, other tools can be much more effective. Screencasts are one technology that could really make an impact on the way some subjects are taught and I can see how these ideas could be extended much further. [Dynopsys: Learning by example: screencasts]
We're just scratching the surface of this medium. Its educational power is immediately obvious, and over time its persuasive power will come into focus too. The New York Times recently asked: "Is cinema studies the new MBA?" I'll go further and suggest that these methods ought to be part of the new freshman comp. Writing and editing will remain the foundation skills they always were, but we'll increasingly combine them with speech and video. The tools and techniques are new to many of us. But the underlying principles--consistency of tone, clarity of structure, economy of expression, iterative refinement--will be familiar to programmers and writers alike.
Jon Udell is an author, information architect, software developer, and new media innovator.
Read more Primetime Hypermedia columns.
Return to the O'Reilly Network.
Copyright © 2009 O'Reilly Media, Inc.