Programmers do actually make suckier interfaces than other people

Published Mon, Feb 5 2007 1:56 | William

Aaron's post asserts that programmers aren't to blame for crappy UIs and I'm not sure he's right about that point.  As a programmer and software user, I have to say that most of the truly terrible user interfaces I've seen in my life were not the result of bad user requirements or anything of the sort. They were created by programmers who were in love with their own ideas.  Less than two weeks ago, I had an argument with a fellow programmer about UI design. My contention was that in a Winforms app that has  "Ok", "Next" or "Continue" functionality coupled with required fields, you should disable such buttons until all of the required fields are filled in properly.  Allowing a user to click a button, only to have a MessageBox pop up telling you something you filled out was incorrect/missing/required/whatever is just lame.  I'm sure you can find exceptions to the rule, but we weren't talking about exceptions.  I had a project lead who was a programmer once instruct me to stick in a button that flashed (visible = true, visible = false, repeat) until all the required fields were entered correctly.  Another developer I worked with built a form on an application that 15 tabs on one form and a few hundred controls on it.  You had to scroll down and to the side to even see all of the controls. He bragged constantly about how great this design was b/c users never had to leave the current screen or open another form.  The stated benefit of this 'feature' had something to do with Alt/PrintScreen functionality.  (I often thought that even assuming you bought into his core premise, if users had to take that many PrintScreens of the app state, the app by definition really sucked.  User Interface design should *not* be driven by making bugs easier to deal with).  And lest it seems like I"m beating up on other people, I've had so many moronic ideas about user interfaces that I could fill an enclyopedia with them.  A former coworker of mine commented on my obsession with UI effects that consumed CPU cycles and RAM yet provided no tangible benefit to anyone other than me so I could say "Isn't it cool?"

I don't disagree with anything else Aaron is saying, in fact, I think he's dead on. I haven't used a typewriter since I was a freshman in college and haven't seen on in an office that I can remember.  Inoking such users is definitely off base. But I do disagree with part of his contention - that programmers aren't to blame for bad UIs -  the whole reason there are User Interface consultants IMHO is precisely b/c of know it all programmers (and yes, although I think I"m reformed I certainly would have to plead guilty to such charges) who forced their brilliant ideas on users.  Ignorance and being a novice can lead to many mistakes, but to truly suck I think something requires intentionality and such intentionality usually comes from those in my profession (then again, most networking people I know are pretty inept at UI Design)

My personal solution to this problem was to swear off front end components entirely and focus on back/middle tiers and communication mechanisms. That way I can just plead "I really don't do front end work" up front (no pun intended) and just basically abdicate any responsiblity I have for the topic.  On the other hand, if you ever want to see user interfaces that suck, just head over to MySpace. That's the friggin Meccha or terrible UI effects and bolstering Aaron's argument, such atrocities aren't driven by programmers.

 

Comments

# Brian Madsen said on February 5, 2007 4:39 PM:

Hey Bill,

This is an interesting, if not contentious, topic which i'm sure will grate somebody the wrong way.

I admit to having been in the boat of the "sucky UI design" role for quite a bit - having worked mostly with ASP.Net. And i can safely agree to your statement that developers + UI design == loosers being the users. Sometimes a developer can very easily be sidetracked with a newly discovered feature and overuse it - or misuse it, whichever the outcome is - and mostly the UI design becomes cribbled with some insensible feature (which hasn't only taken valuable resources to develop, but also isn't user friendly).

In my previous role i had a graphics artist on my team - mostly his job was print and advertising - but i used his frequently to design UI layouts and forms rather than me doing it (knowing full well that my UI skills, while not disastrous when it comes to working with server controls and customizing them, weren't the greatest when it came to putting it all together).

Speed was also another issue - lets face it - a developer shouldn't ever start up Photoshop, Expression Designer - whatever - in his lifetime. it's a waste of electrical current even starting it up when you look at the performance level and outcome.

But, you see these "miracle" developers who thinks their capable of designing all too often - either by self-imposed feelings of superiority or by business need. The first is usually the most common case and the outcome of the UI is disastrous to say the least.

Even with quite a bit of experience down my pants i shy away from design. I do component and control customization very well - when i'm told what the UI functionality should be like.

Hell its one of the reasons that my own website hasn't even kicked off yet - and i got my designer at my previous place to whip a design together for me - still stuck "improving" UI functionality after quite a few months.

Unfortunately for me (sad when you can say that eh?), the customization of components/controls is one of my strenghts and my current employer has of course noticed that - so what am i doing now? customization of DataGridViews. Building custom functionality into a datagridview..

I'm sure a lot of ruffled feathers is going to come out of this but the sooner a developer realises that HE/SHE IS NOT A PIXEL PUSHER the sooner he/she becomes a valuable resource to a company. Lets face it - if you're a developer, don't do UI design...

# Bill said on February 7, 2007 9:47 AM:

Brian:  I agree with what you're saying. I've jsut had to deal with too many guys that fancy themselves UI experts yet users hate their stuff. That's the biggest indication that you're doing something wrong. When you hear peopel *** 24/7 (as opposed to 2/3) about "Stupid Users" you know your code sucks or the UI is hard to use.  ALl the users can't be wrong - yet the more people hate something the more people stick their feet in often times.  I could cite some pretty large scale examples of famous products you and I both know, but I better choose diplomacy - something I do too rarely ;-)

# Brian H. Madsen said on February 12, 2007 8:39 AM:

Bill: one of the common mistakes developers make is to say "stupid users" when they're doing something "wrong". UI means User Interface and if the user CANT interface with the application then it's really a case of SUI.."Stupid User Interface".

at the moment i'm working on some complicated UI stuff, which IMHO is going to be a waste of time and resources because it'll most likely make the interface "too complicated" for the average Joe Bloggs - but, we wont know till we have prototyped it and shown it to our consultants.

I have however become a bit of a fan of the Office 2007 Ribbon - it strikes me as informative and helpful...but on the other hand, how are the common user going to feel about it when faced with it the first time. I mean "where did the...go??" and "what happened??" will most likely be explamations you'll be hearing around the office..so a first off impression may not be positive, but in the long run i think it's a winner...

# Aaron Erickson said on February 21, 2007 10:07 PM:

Sorry for the late answer... I have been bad about checking trackbacks and responding...

To clarify, I do not think programmers are better than most of the people that dictate UI designs from on high - at least in the type of development that I do (i.e. corporate application development).

What I was trying to say in my post is that, in the best of all worlds, we hire usability designers, not programmers, and certainly not the sponsor of the project, to design the UI.  

That said, I know of few UIs that are the pure product of a programmer's mind.  Most of them are a combination of 2 or 3 things a programmer introduced (sometimes, very ill conceived), layered on top of some similarly bad ideas that came from a single user who happened to write the check to write the software in the first place.

Thanks for the mention though :)

Search

This Blog

Tags

Community

Archives

News

My other sites

Cool Stuff

Book Stuff

Security

ORM

Data Access

Funny Stuff

Compact Framework Stuff

Web Casts

My KnowledgeBase Articles

My MVP Profile

Design Patterns

Performance

Debugging

Remoting

My Fellow Authors

My Books

LINQ

Misc

Speech

Syndication

Email Notifications