I’m a sucker for GUI design.
I know a lot of developers (especially non-Microsoft developers) who consider GUI design to be the worst part of a software project. It’s not difficult to see why. Imagine spending months working on a project–making sure everything works the way it should. You make sure that users can’t enter any illegal data, the application fails gracefully in a server outage, and it can hold the maximum amount of users. You also design the GUI so it is the most logical and user-friendly features.
What do UAT testers say to your Herculean efforts?
“I don’t like the font.”
They don’t like the font.
A two-minute afterthought on your part (“Should I use Arial or Times New Roman?”) and that is what they pick up on. “Yeah,” you recover, “but just go ahead and try to break the system. This thing is water-tight, baby!”
“Can’t we just change the font first?”
It is soul destroying, let me tell you.
I personally like GUI design, despite the criticism. Nothing feels better in a project than having the creative freedom to improve the user experience. When deprived of the freedom, it drives me crazy.
When I was at BBC, the development projects were divided into Designers and Developers (I was on the developer team). Designers would whip out cool looking graphics and html using Photoshop and Dreamweaver on their Macs (without having a clue as to how the application works in the background) and send the html and graphics to developers to add the plumbing.
For web applications, this division of developer and designer worked fine (well, it worked okay), but for desktop applications this was not really possible. Aside from sending screenshots to developers, there was little that could be done besides a developer trying to mimic the screenshot in the GUI (“You got the font wrong.”).
But now that all looks set to change with WPF in .Net 3. WPF, or Windows Presentation Foundation, is a set of libraries allowing an application present its GUI using a markup language with .Net 2 code facilitating the plumbing. Designers can use the Microsoft Expressions suite (a WYSIWYG XAML editor) to produce a GUI that developer can attach to their applications. Better yet, rather than waiting for designers to deliver the goods, developers and designers can work on the same project concurrently.
This post is going longer than I intended it to, so I will write more tomorrow about this. I’ve spent the last few days playing with XAML and Expressions Interactive Designer and am convinced that the era of GUI design is going to change quite a bit in the next few years.