Check out Eric M. Burke’s post GUI Programming is Hard. In a related post, Rick Schaut talks about UI design. Both posts hit the nail right on the head and are considered a must-read. Yes, I’m talking to you, dear reader involved with SW development or SW sales.
Why is creating a great UI hard?
- Because it requires artistic/aesthetic skills most software developers don’t have
If you’re lucky enough, you will have a great UI designer or at least someone who has a great feel for how the UI should look (from an aesthics point of view) and feel (from an interaction point of view) – Preferrably someone who is also working very close with customers
- Because the tools used are not up to the task
As Rick Schaut says in his post, as soon as you start to go beyond the “put-a-few-edit-fields-checkboxes-and-buttons-on-a-form” UI, you are basically on your own. Most trivial example: I have yet to encounter a multi-column list box control which ships as part of a standard UI framework which can be easily extended without – all of a sudden – forcing the UI developer re-invent basic things like managing focus etc. And don’t get me started on more complex interaction in forms/dialogs. Most likely, UI developers already have a very hard time coming up with an elegant, approachable UI for the applications problem domain. Being forced to re-create basic UI mechanismns doesn’t help a lot.
And while I’m rambling along, I have yet to see how using XML to describe the UI will help tackling the problem.