Software Is Art

The Audience Experience

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.

AgileConnection is a TechWell community.

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