In a recent daily editorial, Steve Jones over at SQL Server Central, makes the point that database tools should be ergonomic and not simplistic. Now I rarely agree with Steve but I think he’s got a valid point (just kidding about the not agreeing with you Steve!). In this (SQL2K8) release of SQL Server I’ve worked on more GUI than I ever have in my career and let me tell you, it’s hard. It felt like at every intersection we’d hit a decision point: build a custom control (or extend and existing one) or settle for reduced functionality. Going the custom route means years of support. Going the reduced functionality route means, well, reduced functionality which may lead to a less usable feature.
I run into people all the time who make comments like: just auto-generate the GUI from the object model. My initial reaction is "NO! Every dialog would end up being a property grid. No one wants that!" Our current GUI, while not totally hand-crafted, is a long way from being auto-generated. I just don’t see how we meet the design and usability goals if we auto-generate. It makes me think of the Henry Ford quote – "Any customer can have a car painted any colour that he wants so long as it is black."
It’s clear we’ve entered the era of product design. Just walk through the aisles at your local Target. Everyday products now have very fun, unique, and functional designs. We once paid significantly more money for the cool designs found in stores like The Sharper Image. Now those same designs are available to the masses at Wal*Mart and Target.
The point is good GUI design is no longer something people are willing to pay more money for. It’s something they expect. Good GUI design encapsulates all of the points Steve raises in his editorial: functional, aesthetically pleasing, efficient, scalable, and polymorphic (handles novice and advanced users).
So I agree with Steve, good design must be Ergonomic. And if done correctly it will also feel simplistic.