Skip to main content

Designing Design Tools

Traditional user-centred design methods often fall short when designing software for digital content creation. Complex software that supports non-linear work requires a distinct approach to software design and UX. Barbara Mirel examines this in Interaction Design for Complex Problem Solving: Developing Useful and Usable Software.1

If you're trying to add automation to complicated human enterprise, then your software cannot dodge this complexity, all it can do is control it.

Martin Fowler, foreword to Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software (Addison-Wesley, 2003)

The Complex Nature of Creative Work​

Complexity is often treated as a fault in application design. Yet, what happens when the inherent nature of the task, say authoring a song, 3d character rigging, visualising data sets or illustrating posters, demands it? When this is the case, all you can do to remove complexity is to remove utility which is self-defeating as users need to do their work, and if your users can't do their work, they can't use your software. Our challenge is to recognise that complexity need not equate to difficulty, and to design software that people can understand and use efficiently without sacrificing the capabilities they need.

Why a Guide Like This is Needed​

Designing creative software, and complex software more generally, requires specialised skills. It involves combining extensive functionality with ease of use, a balance rarely required in consumer apps. This guide examines how to fit software to the workflows of artists, designers and other content creators. The aim is to support creation, iteration and refinement.

What We'll Cover​

We’ll begin with how to design the conceptual foundations of your software, giving developers, designers, documentation authors and QA teams a common basis for their work. Establishing these foundations helps resolve design problems before they arise. We’ll also look into the importance of balancing complexity in an interface along with both high level and low level interface design considerations. We’ll then consider the design of workflows for complex tasks, the importance of context, and the design of useful and efficient information architecture. Finally, we’ll examine usability evaluation in DCCs, from general heuristic reviews for finding defects to Usability Harmonics for examining design decisions and informing future work.

Building a Platform for Creativity​

This guide draws on my experience designing complex software for the TV and film industry, and on the work of Barbara Mirel, Daniel Jackson and others. I hope it provides designers, product managers and developers with a comprehensive guide to DCC design. While this guide argues from experience, it also draws on the literature, particularly the design principles for creativity support tools that serve as its starting point.2

Put the Guidance to Work​

Start with Understanding the Work, then test the design against realistic tasks. Testing with Users complements inspection and analytics.

The guide also covers accessibility, collaboration, working across applications and user-created systems. The research index groups useful papers by design question and explains their scope.

Footnotes​

  1. Mirel, B. (2004). Interaction Design for Complex Problem Solving: Developing Useful and Usable Software. Morgan Kaufmann. ↩

  2. Resnick, M., Myers, B., Nakakoji, K., Shneiderman, B., Pausch, R., Selker, T., & Eisenberg, M. (2005). Design principles for tools to support creative thinking. Report of Workshop on Creativity Support Tools, National Science Foundation. ↩