An Open Letter to Developers of Software Tools for Specialists
I’ve worked with a number of software companies over the years, on various applications invariably relating to media creation. I’ve never been able to settle on which is more fun, participating in the development of new tools, or using those tools to actually create media. In my case, I like both too much. It’s just so satisfying to make a suggestion to an engineer, and watch it get implemented knowing that the lives of all who use that software will get a little less tiresome.
The great thing about software is that, hardware limitations aside, you can make things work pretty much however you want, if only you’re clever enough to figure out how. Whenever you hear someone from a software company say “we can’t do that,” what they’re really saying is:
- “We don’t have the time to figure out how to do that.”
- “We don’t want to do that.”
- “We could do that, but your performance would be
so horrible that you’d wish we hadn’t.”
- “We’re planning on doing that, but that’s number 287
on a list of 500 planned feature requests.”
To be fair, these are all legitimate issues. However, when a team of developers decides it’s time to try and add a particular new feature, there’s tremendous freedom of implementation. You can design a feature to take as many or as few steps as you want, use exotic input devices or simple keystrokes, take advantage of pre-built interface widgets or design new ones yourself, in the eternal struggle to second-guess the user’s preferences for how to do things. Which brings me to the reason for bringing this up in the first place.
You see, developers have a dilemma. To make an application more easily “discoverable” to new users, you generally have to create a more obvious user interface, with highly visible controls that are obviously labeled, that lead to activities that are easy to figure out and accomplish though trial and error, and constrained enough to keep the user from doing anything too insane that might result in catastrophic failure. The result is often software that’s drop-dead simple to use (one hopes). This is a good thing for folks who want to sit down and get something simple done without a lot of hand-wringing, and there are ample examples of this type of software UI that I like and use.
On the other hand, if you want to make a software application capable of complex functionality that’s fast and efficient, that’s doable as well. Design an interface that does away with needless mouse clicks, create a fast way to trigger functions (often keyboard shortcuts) that invoke specialized, streamlined workflows with open-ended functionality that impose as few restrictions on the user as possible, with as much variation and flexibility packed into as few interface widgets as is feasible. The result can be software that’s incredibly powerful and fast to use, but inscrutable to the point of presenting a dauntingly steep learning curve. This is a good thing for power users who are willing to put the work in, intent on rocking their software like Jimmy Page playing the guitar, blasting through creative work while thinking up new ways of problem-solving.
My point is that “easy” UI and power-user UI are almost mutually exclusive. Finding a way to merge the two is, I believe, the great challenge of our age of software design. That’s because simple software, while fast to learn and easy to use, becomes frustrating once you’ve plumbed its depths and reached its limits, forcing an excessive number of mouse-clicks and other laundry-lists of steps that, while making those tasks easy to learn, now turn every simple thing you want to do into a chore.
On the other hand, software for power users can be maddeningly frustrating to learn. Without someone to show you the ropes, enrollment in a class, or the patience to plow through user documentation (please god let it be well written), you may sit there with your expensive new software application clicking and pressing keys until the sun goes down without any clue of how to proceed. Even worse, it could take you days or weeks of this kind of torture until you finally become proficient enough to get done what you need to do without too much hair-pulling and google searching. That said, after a painful apprenticeship, you learn the magic keyboard shortcuts and mouse gestures, at which point you spend the rest of your career with that software flying through your tasks with joyful precision, with others gaping slack-jawed at your wizardry.
In the meantime, software for postproduction finds itself split between these camps. Simple to use software that’s frustrating to do big projects with, and power-user software that’s time-consuming to learn. This is the great challenge of software development as I see it, and is an honorable undertaking for any developer.
However, somehow another notion has crept into the collective unconscious of the software development community. This notion is that people want their tasks to be made easier.
Allow me to clarify, because this is important. It’s one thing to say, “I’m creating a music application, and I want the software to be easy to use for writing music.” It’s entirely another thing to say “I want to write a software application that makes writing music easy.”
To use another example I’m most intimately acquainted with, color correction is difficult. You have to learn obscure things. As a result, it’s tempting to want to develop software so that, with the click of a button, any shot is auto-magically corrected to look amazing, and then the lucky amateur can move on to something much more worthwhile, like drinking beer. And before you accuse me of beating up on any particular application, I’m not; every contemporary grading, editing, and photo manipulation tool I can think of has some manner of auto color-correction functionality. It’s a universal aspiration.
Now, I’m not knocking simple tools for non-specialists. That’s like complaining about automatic transmissions in cars (and I’ll freely admit that I prefer driving automatics, I’m no race car driver). One-click auto correct, template-driven video editing and compositing, audio auto-leveling and auto-mixing functions, auto-tune and quantization for music, and many other auto-magical features are wonderful things and allow folks that lack specialized skills to create interesting media. I use many of these myself, and I’m glad to have them when the time is right.
However, we specialists want more then one-click solutions to our problems. Frankly, those of us who are looking for the experience of “driving stick” within a particular domain of software are so inclined because we don’t want anyone telling us what to do. We want to find original solutions to our creative problems, or at least to imagine that we’re coming up with our own secret sauce version of whatever it is we’re trying to accomplish. In the process, we want to exercise multiple iterative variations, we want to make tweaks both gross and minute, and we want to do all of this as quickly as possible with the least amount of wrist strain since we’re doing whatever it is we do all day, all week, all month, and if we’re financially lucky, all year.
As a specialist myself, I speak for other software specialists, and not for casual users, when I say that I don’t want software to make things easy. Because the only way to make a task easy is to tell someone how to do it, or do it for them.
Using a pencil is easy. Any two-year-old can use the hell out of a pencil. Using a paint brush is easy, you just dip it in paint and start smearing. Swinging a hammer is easy. When I was seven and my dad was building a house, he gave me a hammer, a pile of nails, and a piece of two by four and I was a hammering fool.
You know what’s not easy? Writing a novel. Painting a portrait. Chiseling a sculpture. For all of these activities, the user interface is unbelievably easy, but the task itself is hard. It requires knowledge. It requires practice. It requires skill. Perhaps a bit of talent if you’re so lucky.
And that’s great. The whole point of art, as I see it, is the doing of it. The process, the act of learning, growing, figuring out how to make the results more interesting, more exciting, more effective and unique.
I’m going to wax idealistic for a moment. Nobody ever set out to become an editor of film and/or video because they said to themselves “I think I can make a pile of money editing corporate communications videos.” People become editors when they’re exposed to the process of creating meaning by juxtaposing one shot next to another, and get hooked. They want to figure out how to do it better. They want to try creating the kind of meaning that is most interesting to them, be it documentary, short form, or long form narrative.
I believe this is true of all creative specialists; musicians, writers, colorists, mixers, compositors and animators. We all use software, and we all want to do something new, something great, something interesting. Compositors and sound designers create new worlds of experience by building and combining layers of information in novel and interesting ways. Writers and musicians discover the ability to impart entirely new experiences to audiences using the deceptively simple tools of language and instrumentation. Colorists discover deeper and more effective ways of fine-tuning images to guide the audience’s emotional reception of a scene. All of these occupations can fill a lifetime with a completely engaging struggle for improvement.
Along the way we all take day jobs doing all kinds of work that pays the bills, but the one thing that, I hope, keeps most of us going is that we’re all striving to figure out how to do what it is we do better. The day I feel like I’ve plateaued at a particular task is the day I lose interest, turning to something else where I feel there’s more to explore.
What does this have to do with software? Puzzling out that first creative adjustment to the color and contrast of an image is the best part of my day. I don’t want an auto-correct button, because that robs me of the joy of discovering the best adjustment for the first shot of a brand new project.
Instead, I’d much rather developers found ways to make the software more fun to use. Find the creative obstacles that impede a particular task, and create software that minimizes or eliminates them. Figure out what specialists want to do when the software frustrates them, limits their ability or the expressiveness of the operation they’re trying to perform, and create new tools to overcome these limits that aren’t cumbersome to use. These are the areas that need real improvement.
A good friend of mine, Michael Wohl, is fond of saying that good software gets the hell out of your way and lets you do what you want to do. I think this is a terrific goal for any developer.
Furthermore, every software-driven workflow inevitably involves some amount of digital drudgery. If it’s possible to identify repetitive, non-creative busywork that drains the joy out of a specialist’s day, then that’s another target for improvement. Are there new tools that could be added that would make the process of exploring new ways of processing the image more enjoyable, open-ended, creative, and exciting? Those are the improvements I want, things that let me focus less on house-cleaning, and more on the creative aspects of the process.
Lastly, give me more creative tools. And make them fun to use while keeping them as customizable and open-ended as possible so I can find my own particular tweaks. I want to look forward to coming to work, opening your software, and finding new creative uses for interesting tools that perhaps nobody else has yet discovered.
Don’t make my job easier. I don’t want to paint by numbers. Make my job more fun and expand my toolkit of creative possibilities, and I’ll buy every single software upgrade you make.