Tue 3 Nov 2009
Risk Analysis for UX Design
As a user experience professional, my job is to provide development with highly-usable designs that best match the goals of our customers. But in the fast-paced world of agile software development and being the single UX resource for several teams, I am not able to put every design through the same rigorous User-Centered Design (UCD) process in which I was trained. Instead, I must analyze the risk of each upcoming feature and determine my approach. As part of this risk analysis, I consider many of the following questions:
- Is this an additive feature or a change to an existing feature?
- How disruptive will it be to the user’s current process?
- How often will our users use it?
- How many of our users will be impacted by it?
- How critical is the functionality to our users?
- How complex is the design and is there potential for many different alternative designs?
- How well do we understand the goal of the feature and how it will be used?
- Have we already done something similar to this that we can adapt for this purpose?
- Is there another application that has a good design that we can adapt for this purpose?
- How difficult is it to change the design if we get it wrong? (from a user acceptance perspective)
- How difficult is it to change the design if we get it wrong? (from a development effort perspective)
If I determine a feature to be high-risk based on these criteria, I will dedicate a greater amount of my time to bring it through the UCD process. For a low risk feature, my effort will be greatly reduced.
For example, a few releases ago, we were working on a feature to allow subscription administrators to override user’s individual session timeout settings in order to match their internal security policy. This feature was primarily additive and the goal very straightforward. The number of users that would interact with the feature would be a very tiny percentage of our user base. The frequency that the administrator would change this setting would be low. The design was simple and well-contained and the possible permutations on the design were relatively few. Overall, this feature felt low risk. As a result, I spent about an hour iterating on the design and did not perform any user validation.
In contrast, in the next release, we’ll be working on a very high risk feature – moving our Iteration Status page over to our new page framework. It’s high risk for several reasons. First, it’s the number one most used page in Rally and the usage of this page spans across our entire user base. The possible design alternatives are myriad. Even small interaction decisions would have a huge impact on user acceptance. Finally, making significant changes after-the-fact would be costly from a development perspective and would result in significant re-learning from our users.
For this page, my work started about 2 releases out (about 3 months). I iterated through many designs, conducted internal testing, had interactive prototypes built, tested these prototypes with customers and iterated again. This work is still underway, with implementation beginning in about 4 weeks. We will be further mitigating the risk involved by releasing this redesign as a Beta program, allowing us to gather and incorporate feedback before releasing the page to all users.
Many features fall somewhere in between these two extreme examples. Based on the circumstances, I will draw on different UCD methods and techniques ranging from very lightweight to very heavyweight. I might rely on feature request comments from our customer forum for one feature but for another feature I’ll schedule one-on-one calls with customers. Sometimes I’ll perform usability tests with internal users and other times I’ll schedule formal usability tests with external customers.
Using design risk analysis to drive effort allocation is critical to helping me avoid delaying our development team. With that said, because I come from a traditional UCD background, it can feel “wrong” to not fully validate each design with users. Fortunately, the “release early, release often” mantra of agile is itself a risk mitigation technique. In the case that a design is not well-received, we have an opportunity to listen to user feedback and release a better design in just a few short weeks.
