Usability study video

In October, James Conard made a video of one of the usability sessions we ran on the Windows Workflow API. The video is now up on Channel 9.

Somebody asked if the results of studies like these are generalised beyond the specific APIs being tested. The answer is yes, they are. There are a couple of ways we do this.

  1. I work with Krzysztof, Brad, Joe, Mitch and others on the WinFX review team. Whenever we’re reviewing an API, I’ll look for API designs that I think will exhibit the same issues that have been observed in the labs. We’ll discuss during the review the extent to which the same issue may or may not manifest itself in the API we’re reviewing and the API team will decide whether or not they will make changes. An example of such an issue is the use of attributes.
  2. When we observe patterns of behavior across multiple studies we roll these up and produce a design guideline that aims to inform API designers how to avoid the same issue. An example of a pattern we’ve seen that turned into a design guideline is the recommendation to favor using enums instead of bools to improve readability of code.

Comments (1)

  1. In reading over your post (and the comments) regarding attribute usability, my thought would be to have the attribute throw an exception (on compile) if it isn’t nested in a class/method/whatever that has the proper pre-requisite attribute. This would effectively signal to the programmer what the issue is.

    This strategy is in line with Brad/Krzysztof’s Design Guidelines regarding Component Oriented Design (Framework Design Guidelines, p237-239): "…When users call methods that are not valid in the current state of the object, an InvalidOperationException should be thrown…clearly explain[ing] what properties need to be changed to get the object into a valid state…" This could possibly implemented as (you guessed it) an attribute on the attribute, specifying what supporting attributes (and where) need to be present for this attribute to work properly.

    Of course, that seems rather heavy, but it could save some head-scratching…