User Experience Principle #2: The user should always feel in control.

So I’ve been going through the tutorials for Expression Blend coz I’m supposed to be an expert at it by now. However, on my machine at work I couldn’t get any of my applications to run. All the sample applications would run, but mine would crash immediately (even if they were identical to the samples):

Blue Screen Vista Style

Well it took me hours to figure it out, but it turns out the problem is related to my ‘My Documents’ folder. Blend saves your projects to My Documents by default, and at work my ‘My Documents’ is on actually on a server for backup reasons. Turns out a thing called CASPOL stops the application running because my “My Documents” folder doesn’t have the right permissions, or something.

The fact this happens is nobody’s fault – just one of those things. Security is a necessary evil. However the USER EXPERIENCE leaves somethnig to be desired! Instead of “UntitledProject1.exe has stopped working”. How about a hint? Windows/.NET/the program actually does know exactly what the problem is, it just doesn’t choose to share it with the world. How about “UntitledProject1.exe cannot run because it is stored in an untrusted location. More information“?

First rule of error message design: Describe the problem in user terms, and how to fix it. (Better yet of course, where possible: just fix it.)



Comments (8)

  1. Kieren Johnstone says:

    Samples don’t usually have necessary error-checking; they probably contain a notice saying they shouldn’t be used in production code?

    Either way, just checking/catching exceptions in the sample app would have given at least some information.

    The problem wasn’t that it couldn’t run – it stopped working, as the error seems to say.  If it’s out of Windows’ hands, what else could it say?

    (You might guess it would be a good idea to catch and display unhandled exceptions – but they look very technical and can pose a security risk).

    Most API functions are documented with a list of all the exceptions they might throw – it’s up to the developer to catch, interpret and display/act on them.

    Anyway, I don’t have experience with the API so can’t really comment with any authority ^_^  Just a guess though.

  2. Linz says:

    Someone should post this principle to Lotus too and tell them to apply it to Notes (the bain of my new life). Better still they should tell them that a cyclical sequence of errors with no escape except to quit the application is sooo 1970s. At least you don’t have that problem 🙂 Linz

  3. Garry Trinder says:

    Kieran, I hear you. My little sample app had about 6 lines of XAML once I’d stripped everything out trying to find the problem. And I guess if I was making an industrial strength app then there’d be a whole lot of exception handling in the code.

    Thing is, it’s Windows/.NET that decided this app wasn’t allowed to run based on where the .exe is stored – something the app writer has no control over. I would have thought that if Windows/.NET (I don’t know which) is stomping on the app, the least it could do is put up a message saying "You know what, I’m gonna kill this app coz I don’t trust it – here’s some things you could do to make me trust it."

  4. Mitch Denny says:

    Hi Shane,

    Yep – its something that developers just learn not to do. We always put our code files off the root directory for the most part where we can do things like setup TFS workspaces.

  5. Garry Trinder says:

    Thanks Mitch. A trap for young designers, I guess. MS (that’s us) wants designers to be able to play with Blend without having to bug their developer friends with dumb questions like "why doesn’t my blend app work?" Gotcha’s like this don’t make for a great designer experience.

  6. Theresa says:

    Thought some of these might brighten your day:

    Mysterious internal errors that aren’t supposed to exist, indeed.

  7. I was reading Shane’s post (well, I had more interaction with his problem than just reading his post

  8. Michael says:

    Wouldn’t it be more "user-friendly" if Blend ASKED YOU where to save your project ?

    Programs saving everything in the "My documents" folder are getting on my nerves and are the primary reason for my lack of use of that folder.