Saturday, September 4, 2010

Billy sez: Design, Don’t Decorate

Billy Hollis writes about application UI design in this month’s DevProConnections and how that is not the same as hanging new draperies with WPF and Silverlight.

Here’s what I want you to do:

  1. Go read the article
  2. Look at the associated video
  3. Go to his website
  4. Find yourself a class

The rest of this post is commentary.

Most of us (include me among the “us”) are stuck in a rut. We’re bringing to our Silverlight apps the same tired user interactions that we built for WinForms or the Web.

I’ll make my point with a rant about the Editable Grid.

I am sick of the Editable Grid. It won’t die. It pops up in one UI after another.

It’s not that I’m bored with it. I’m not suffering from ennui. I’m not making a fashion statement.

It’s just bad. It screams “I don’t know what the user wants, I don’t care what the user wants, I’ll just chuck every thing on the screen and let him figure it out.

The user, poor bastard, must scroll through endless columns until he stumbles on the one he wants. Every cell of every row is in the same font size and shade; he can’t visually distinguish the critical values from the who-really-cares values. Want to tame the scrolling? let’s shrink the font and get more columns on the screen.

It’s a nightmare to program properly with unlimited opportunities to screw up and confuse the user at the same time.

Ah … but it’s so easy to get started, right? A line or two and you’re done. Now you can get back to wondering when the Reactive Framework will be part of the BCL.

The 3rd party control vendors know you want this atrocity and to differentiate their grids from Microsoft’s DataGrid they trick ‘em out with ever more confusing options (filters, sorters, groupers, frozen columns, tear-aways, column-configuration-savers, etc.).

All so you can tip-toe past the courageous, hard work of demanding to know what the user really needs. Nah … just do the cowardly thing, give him every lever and dial imaginable, and tell him to figure it out for himself. Why think, Einstein, when you can make the user do it for you … and perfume the stench by saying “I gave him choices".

Guess what control I use in 9 out of 10 demos? Yup, the editable grid.

I am as bad as you guys.

Like you, I’ve been happy as a clam, pasting a grid on page after page. The guy who woke me up … was Billy Hollis.

Billy is here to remind us it doesn’t have to be that way. Silverlight and WPF have technically removed the barriers to efficiently writing productive user experiences.

The problem isn’t the technology. It’s us. We are the problem. We aren’t clearing the cobwebs. We’re behaving like we did at the dawn of GUI interfaces … wondering how to port keystroke menus onto a window.

Hey … the “Outlook” standard should be dead. It would be dead … if we didn’t grant it new zombie life in WPF.

Billy is ready to show us how to move on.

Did you know Billy offers WPF and Silverlight design training?

Not “Insert-Tab-A-into-Slot-B” training. I mean training your mind and your skills to get out of the rut. Sure you’ll learn WPF/Silverlight – duh. And I’m not knocking that kind of training either; it’s valuable too.

What I really need is some help seeing UI differently and, most important, acquiring a discovery process to help me develop a UI that supports my user. Maybe … just maybe … I’ll finally learn to build a UI that is thoughtful and usable … and not waste weeks agonizing over my failures.

It’s up to you. I recommend you hustle over to Billy’s website and see if you can find a way to take one of his classes. That’s what I’m going to do … if they ever let me out of here.

p.s.: I’m still doing editable grids in my demos. You can lead a horse to water …

1 comment:

Jonathan said...

I completely agree with you guys on this. I have to say it is time for a change! Users are demanding higher quality experiences and beyond just data entry screens that are tons of fields with datagrid after datagrid.

With the popularity of touch devices and smart phones, the demand is only going to get higher. Any developers still doing it the old way will struggle to hang on in this new world.

With Silverlight and WPF, Microsoft has done a tremendous job of building a foundation for the next generation of applications.

Time to move past the datagrids of programs have only had very minor improvements in the past 10 years. It is time for more natural user input!

I look at it as a challenge and I am excited to see where we are in just a few years. Hopefully we can put the datagrid to rest in a lot of cases.