How/Why/Should you “Refactor User Experience”

The UPA Conference was great — it was especially useful to see the wide range of experiences from the UX trade with agile methods. The diversity of scenarios is tremendous.

I originally considered submitting the topic of this post, refactoring UX, to the Agile 2009 conference, but decided that the notions I was working with were too far away from the strict definition. Refactoring code is producing identical results with better structure. The general notion I’m presenting here is that there are similar methods around UI design and flow that can achieve strong gains in user satisfaction and an improved platform for new features.

The workshop attendees responded to this notion and we talked about it for a while, producing the notes below:

Refactoring Notes At UPA2009 UCD in Agile Workshop

The notes were crafted during a dialogue around the notion of “Justifying UI Refactoring to the Agile Team” although we agreed that we probably shouldn’t actually use the term refactoring. In an ideal scenario, UI reworking at large scale [Edit] would not be required, so premise #1:

1) Avoid it
* Vision - think ahead
* Expection setting
* Delay decisions to last responsible moment
* Parallel tracks

There can be a lot of user impact if you do need to change existing functionality. One approach to this is making gradual iterative changes towards the new design. This is both more user friendly and more aligned with the agile way.

2) Hinting
* Gradual changes based on vision
* Inconsistency between releases is ok
** Focus on UX at release level
* Get big design work done first, widgets later

And alternative to hinting, is a simultaneous beta or preview:
2a) Ship multiple versions to get feedback

Finally, if you have to make a big change, make it so obvious that there’s little chance of pro-active interference between the new UI and the old. We called this “Hitting the reset button” and it requires that the team consider UI as a feature and address it the normal flow of stories.

The dialogue was a productive initial socialization of the concepts and I firmly believe that there’s more for the UX discipline to contribute to how user experiences are best grown while being used.

Thanks to Thomas Lissajoux for some out-of-band dialogues on this topic and to the workshop participants. The UPA conference proceedings are due out shortly and should provide good fodder for more recounting.

2 Responses to “How/Why/Should you “Refactor User Experience””

  1. Sounds like an interesting discussion, but I have to take issue with the notion that in “an ideal scenario, UI reworking would not be required.”

    Even if we’ve done the most comprehensive research (rare, and not very agile), made the best possible user-centric decisions (rare due to other project constraints), and even done some testing along the way, I still believe we would learn something new once the final design was released into the wild.

    Software design approaches completeness asymptotically.

    The more likely scenario is that if the design was done so well, that the gap is so small that it is more valuable to spend time on other stories than on refining that existing one.

  2. Thanks Jeremy, I edited the post to clarify “UI reworking would not be required.” We were talking about large scale , far reaching changes to features already in heavy use.

    The challenge we were dealing was how to grow from a relatively simple feature to a grander scale. This may require significant changes to existing workflows.

    A related use case is revisiting the overall design coherence to improve consistency, where needed, and better separate functions which are distinct.

Leave a Reply