Programmers do actually make suckier interfaces than other people
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.