Software Is Art

[article]
The Audience Experience
Summary:

We can measure, study, and understand the interactions between software and individual users, but what tools exist to understand the interaction among software creators, the software itself, and millions of users? Chris McMahon says we can't look to computer science, engineering, or manufacturing for tools to understand the experience of a large audience. Instead we should look to the performing arts for help understanding the audience experience.

The current state of the art of User Experience (UX) testing focuses on solving the problem of pleasing the users of small-scale, commissioned software. This work is well understood, but the techniques that work for a few hundred users of commissioned software are not appropriate for global audiences of ubiquitous software like Google, Firefox, Windows, or Selenium. Ubiquitous software with thousands or millions of users is becoming commonplace. Yet the software development community lacks the tools and concepts to understand the interactions among the creators of such software, its users, and the software itself. In short, the software development community does not understand the concept of an audience.

What We Currently Know about User Experience
The state of the art of UX work today focuses on the experience of the individual. UX experts create personas, imaginary individuals, and use those personas as critical tools to evaluate the experience of interacting with software.

Usability testing is key to user experience work. Real people are brought to a usability testing lab where user experience experts observe them using the software in various ways. Often user experience experts produce heat maps that overlay particular displays showing where the mouse has moved and where users have clicked.

UX professionals are often deeply interested in the emotions of each individual user as they navigate the software application.

But this sort of knowledge is worthless in some of the most important software markets, especially where the user base is so large that the proper term to describe the user base is an "audience." When the audience becomes very large, it is impossible to understand exactly how the software is being used. Under these conditions, the concepts and techniques of small-scale UX testing are no longer useful, and a different set of rules comes into play for discovering how to please an audience.

Software Development Is Creative Work
An audience is a group of people who gather together at a particular place in order to experience a performance, whether music, dance, drama, sporting event, or software. That experience is created simultaneously by the performers, the performance itself, and the audience.

In the book Artful Making, Rob Austin and Lee Devin make the case that software development work is identical to the work required to put on a theater performance. There is anecdotal evidence to suggest a strong correlation between musical ability and success in software development. For example, the Music Masti stage at the Agile 2009 conference hosted an amazing array of highly competent musicians throughout the entire conference. Many of the most competent software people around have artistic backgrounds. One great example is Richard Gabriel, well known for his work in LISP and for coining the phrase "worse is better." Gabriel, who holds a PhD in Computer Science and an MFA in Poetry (and also plays guitar) at one point proposed an MFA program for software. Many skilled artists can be found working in software today.

Critics are skeptical of the idea that software development work is identical to an artistic performance, but today continuous deployment is becoming routine and good agile teams ship features to eager users on a regular schedule. These actions are performances for an audience. And programmers and language designers are treated like rock stars. Companies like Google can elevate obscure startups to fame in a matter of hours, and other companies, like 37signals, can change the entire web development world with fewer than ten employees. These sorts of phenomena are undeniably artistic performances.

Software Performances for the Private Party
Given that artistic performance and software development are, in fact, closely related, it is possible to use one as a critical tool with which to evaluate the other.

Working musicians make a living primarily in two ways. The majority of successful working musicians play private parties, weddings, and such and charge enough doing this work to make a living. In this situation, the musicians are not typically responsible for pleasing the whole audience. Instead, they are responsible for pleasing the person who writes the paycheck at the end of the night, typically a bride's father. If the bride's father wants to hear "Tea For Two," then the band plays "Tea For Two" and not "Giant Steps" (even though "Giant Steps" is a far superior song).

Most software development takes place under similar conditions, for example, creating software to automate an internal process for a business function for a private company. If the business wants to automate a complex workflow that you know can easily be accomplished with a wiki page, then it is your job as the software creator to implement that complex workflow in the best way you possibly can, because the person writing the paychecks does not want a wiki page.

This is exactly the situation where the current user experience practice shines. Those writing the checks want to know that their particular users find the software useful in particular ways. However, it is not necessary to please those users; it is necessary to please those writing the checks.

Software Performances for the Public Arena
The other model for working musicians is to perform for the general public. In this model, musicians work hard and trust in their talent and luck that they will sell tickets to their performances, sell records, get air play on the radio, and get paid to endorse products. In general, these musicians live an artistic life in public. The same is true of software development.

Think of open source projects like Linux, Firefox, or Selenium, all of which are wildly successful and completely public. Also think of applications like Twitter, Facebook, Craigslist, Google Search, etc. While these are not open, they are free services that are incredibly popular with enormous numbers of people.

One critical aspect of these sorts of applications is that their creators infuse those applications with their own personalities, exactly like performers do. Everyone knows who Linus Torvalds and Sergey Brin are. This is what David Heinemeier Hansson and the 37signals people call "opinionated software."

Remember, when large numbers of people come together at the same place and at the same time to share an experience, we call that group of people an audience.

And UX experts currently have no tools to understand a phenomenon like an audience. We continue to rely on our experience from the wedding band scenario, but that serves us poorly in the case of public software. However, there are critical tools we can use from the performing arts.

"Tools" for Understanding Audiences
In order to understand audiences for software development, it is necessary to use tools from literary theory, cultural studies, and from the experience and knowledge of actual performers themselves. Human beings have been creating performances for audiences for thousands of years, yet the software development community has never even attempted to adopt any of the myriad of critical tools available for understanding the relationship between the performer and the audience.

For a start, take a look at the Wikipedia entry for "audience theory." Just a brief glance indicates that this work is already far more mature than the state of the art of software user experience theory in its current state:


"The hypodermic needle model

The intended message is directly received and wholly accepted by the receiver.

Two-step flow

The people with most access to media and highest media literacy explain and diffuse the content to others. This is a modern version of the hypodermic needle model.

Uses and gratifications

People are not helpless victims of mass media but use the media to get specific gratifications.

Reception theory

The meaning of a "text" is not inherent within the text itself, but the audience must elicit meaning based on their individual cultural background and life experiences.

Obstinate audience theory

This theory assumes that there is a transactional communication between the audience and the media. The audience actively selects what messages to pay attention to. The Zimmerman-Bauer study found that the audience also participates in the communication by influencing the message."

There is a correlation between artistic ability and success in software development. In practical terms, that means that in today's software development community there exist people who have had high-quality, professional artistic experiences. These experiences gave them the opportunity to perform for large audiences and to understand, at a visceral level, the interaction between the audience, the performance, and the performer. Software creators can learn from performers what it actually feels like to connect to an audience. That is the critical missing piece from normal UX work, where the creators of the software attempt to remove themselves from the user's experience. Many UX test labs even have one-way glass in place, so users never see the people who make the software, while those who did make the software act as if they have no part in the user's experience.

Fill the Gap
No one should ever be ashamed to make a living creating private performances. The wedding band scenario will always be an artist's most reliable source of work, and such opportunities will always outnumber the opportunities to work wholly in the public arena. And for the software development community's equivalent of the wedding band scenario, that is, creating software for private businesses, the current state of user experience practice is a fine and appropriate activity.

But there is an enormous opportunity to apply a new kind of user experience understanding to the sort of software development that takes place entirely in public for a large audience. The software development community has only a minimal grasp of the interactions between applications operating entirely in public and the audiences for those applications. It is time that the software community embrace critical testing tools from the liberal and performing arts community. The software development community owes it to their audience to understand this work.

About the author

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.