Jun 22, 2007

About approaching Complex UIs development

Commenting on Hammett's Complex UIs post:

I think the repeated maxim "put yourself in your user's shoes", is very hard to try to accomplish in practice, for some reasons.

But for complex functionality I think two reasons are foremost:

  1. You really may not know enough of your users everyday tasks related with it, and how they are used to deal with it, but as you are being paid to develop something new, probably they aren't happy with it anyway, and they are waiting for you to come with some breakthrough, so they are only the best sources to gather "hints" on what should be designed, but not the "reference" for it. So as some have said, you need to cross those hints with ideas from other realms. This mindset is hard to come by, or develop: to keep your mind open to many influences/ideas and look out for the 'hidden' connections that could be explored to come up with an innovative solution.
  2. Complex UIs need to be simplified, and that means putting most important features in front of the user's nose (or mouse pointer), and hiding what can be guessed by the code. But here the problem is if you have a single user it is somewhat simple to figure out, what it really NEED to do, and find some good guesses from usage stats, but normally you are faced with a variety of users, maybe approaching your UI with different needs, so you'd end up with an 'averaged' solution that's dissatisfies more than satisfies most of your users. Cloning the UI in per-user-profile fine-tuned simplifications yields better results, but navigation and maintenance become harder. Another approach is to make the UI adaptive and then customizable, first keeping more frequently/recently used things on the 'top' and allowing the user to pin/unpin things and defining default values and such.
In short both issues compound to this conclusion: Good complex UI/functionality design isn't the thing you can expect to be able to do (even after intensively training yourself) in minutes/hours, it just takes more time and more than that some inner peace to be able to "imagine" the solution.

Jun 14, 2007

My first patch to Castle (MonoRail in truth)

http://support.castleproject.org//browse/MR-270 is my first contribution to Castle Project.

The Jira Issue Tracking system for Castle looks to be experiencing some problems now.

Basically I'm wrapping an exception in an outer scope and throwing the new exception that captures more information for easing debug (the resourceName for the template NVelocity is trying to process).

Hope it helps