Marissa and I at the Denver Airport on our way to Usability Week 2011.
A couple of weeks back, Marissa and I went to NNG Usability Week 2011 in San Francisco. During the conference, I attended the 3-day training course on Designing Complex Applications and Websites. The session was co-led by Lynn Pausic and John Morkes of Expero, Inc.
To begin the course, we defined what a complex application is. Complex applications can be enterprise software, domain-specific software performing advanced or complex tasks for its users, or rich internet applications. Complex applications usually have large data sets, and often they are used for “mission-critical” tasks. Since much of the software we develop here at AO meets this description, I anticipated the course would be very useful in my work (and it didn’t disappoint.)
When designing or developing any software, but especially with complex applications, it is imperative to know about your users and their needs. Therefore, during much of the course we talked about the people who use complex applications, and discussed strategies for understanding these users and better meeting their needs.
The users of complex applications fall into three categories:
- domain experts who do complex problem-solving as part of their job,
- experts who want to go deep outside of the workplace (e.g. a financial expert interested in stock training)
- and enthusiasts who are extremely knowledgeable or passionate about a particular domain (e.g. amateur photographers, gamers.)
User-centered Design methods such as observation, contextual inquiry, personas, and use cases, and usability testing are meant to help us understand our users—above all, we want to think like our users. Personally, I think that’s one of the most interesting and challenging aspects of being good designer.
When it comes to complex applications, user-centered design is particularly challenging. How does a designer who has had a few weeks to think about a domain create software that is functional and usable for a domain expert who has done his or her job for years or more?
In answer to this problem, John and Lynn discussed something that they call usefulness testing. What is usefulness? They defined it as “the value of your technology over existing methods.” In other words, what can your software bring to the table that Microsoft Excel, or a whiteboard, or a file cabinet can’t?
Usefulness testing helps you answer that question. Usefulness testing is meant to validate the team’s assumptions about what features and workflows might be valuable to an expert user. It should happen very early in the software development cycle—it can even happen before any production code is written.
Usefulness testing can be conducted using many of the same methods used for usability testing. The difference is that usability testing asks the question, “Is this button in the right place?” while usefulness testing asks the question, “Should that feature with the button be included in the application? What value does it provide to the user?”
To conduct usefulness testing, it is cost-effective to use the artifacts created early in the software development cycle. Paper prototypes or sketches, early wireframes, and written descriptions about functionality are all artifacts which can provide valuable feedback. The important thing is getting your ideas in front of real users early on in the process, to get their input and perspective.
Usefulness testing can save hundreds or thousands of dollars, because it helps avoid making mistakes about what features should be included in an application, or how those features should be implemented and how they should interact with the rest of the application. And although usability shouldn’t be the focus of usefulness testing, it can help uncover usability errors before they even make it into the application (saving time and money spent on re-work.)
Here at Atomic Object, we already do some activities during the research & development phase that could fall under the umbrella of usefulness testing. However, armed with the knowledge I gained during Usability Week, I’m looking forward to expanding the usefulness testing that we do and increasing the value that we provide to our customers.