If you ask 100 hard-core programming geeks what their LEAST favorite thing about their job is - I bet 98 will say "user interface."
After all, leave it to the "user" (said while usually speaking through gritted teeth or punctuated with a small bit of spittle) to "screw up" a perfectly good piece of software.
More times than most people will probably think - the feature requests from non-technical people are greeted (internally) with rolling-eyes and finger-and-thumb-to-the-forehead "Stupid User Detected" (SUD) motion.
And, to be fair, the programmers are mostly right.
There is no "Do My Work" button; no, the software CANNOT pick up your dry cleaning and have your car washed... ok, well maybe in the 3.0 version... but that's not the point!
The point is that these "ignorant users" - who should not be allowed to even USE computers - dare to question the unerring judgement of US - the programmers - charged with the holiest of tasks - the optimization and automation of the lowly jetsam heaped upon the mere mortals - neigh - slaves - to process for the good of the machine...
But, I digress.
The point is - that not all IT guys are Nick Burns from SNL.
Wait, let me qualify that... most are. Especially if they are PC IT guys.
Over the past 2 months, I've found a difference. It's called a Mac. I've found that IT guys who support the Mac, are, well... more like the Mac guy on the Apple ads than the PC guy in the Apple ads.
They understand that users are not the "great unwashed masses" - they are, well... human. And, as humans, they make mistakes, have some unrealistic expectations about what are possible - AND - the really amazing thing is - they plan for that when they write their software.
FULL DISCLOSURE: I am (have been) in the former camp rather than the latter - for a good part of my career. My default response when dealing with most people was RTFM ("Read The ... ahem... "Fine"... "Manual"... LOSER!)
However, I find myself humbled as I am fumbling through my re-introduction to the way computing SHOULD BE (on my Mac).
I'm struggling with the command-Q for quit, versus command-Tab (for switching applications) - as the keys are right next to each other. I often open multiple windows in my email client, web browser and other applications as my slightly ADD side kicks in.
So, I had about 8 emails open in Apple Mail (after searching through thousands of emails in fractions of a second!) - and I accidentally hit command-Q (Quit) rather than command-tab (switch programs).
My heart sank.
While I re-launched the email application - issuing a steady stream of curses at myself for being so stupid, and lamenting the fact it would take another 20-25 minutes of work to find all those emails and threads and get them back on-screen - I was shocked 10 seconds later.
There, the email program was re-opened - and all my email windows were open (in the same stacking order as when I accidently existed the program). It's like I had never been the newby, stupid, stupid, stupid "USER" I actually am.
The program gracefully accepted the fact that if you were looking at stuff when you quit, that you may find it helpful to have all the stuff you had opened during the last session restored when you returned.
What the ??
I was just sure it was going to open the main window, defaulted to the inbox, just staring me in face. After all I was expecting the default PC experience: "I mean, you told me to exit! How was I supposed to know you wanted those windows opened when you returned? You DID say "exit" - which I did with the utmost speed and efficiency (only 192 milliseconds!). Oh, you WANTED those windows restored - then you shouldn't have chosen to exit. SUD!"
WOW. The "old" way just seems so hostile. I mean, it's not that big of a deal (programatically) to restore the open windows when the application is re-launched - but to someone who is already a bit self-conscience about his ineptness on a new platform - I felt so surprised and relieved that it prompted me to write this blog post about it.
I'm not saying that all programs on the Mac are sunshine and balloons - there are some that are clearly written by guys who have never even USED a Mac... but the majority just assume that you're not a software expert - that you have some other talent (or interest) and that's why you bought or used their software in the first place.
That got me to thinking about the way that I program projects for my customers... and I have been busy re-tooling a bunch of projects to make them more friendly, more forgiving and more intelligent about what "we think you want" - and not just what you SAY you want.
I'm thinking about new ways to do what you "need" to get done - not just present you with 1,000 choices about what you "can" do. About making software more personal, more like people.
People don't think in a linear fashion. Humans are non-linear by nature (I have 35 tabs open in Safari right now - all spawned by reading a single article - just because there was an "interesting" link in the successive stories/reviews/reports that sparked more thought).
The entire function of software is to help automate real-world procedures. Software's role in people's lives should not be so much about "new, cutting edge, acronym-filled" crap, but about how effective it is for the person on the other end of the keyboard to get their job done and go home.
Functions should not be a light switch, but a dimmer. Configuration (within reason!) should be the default. Training should be a 4-letter word. "Easy" should NOT be a 4-letter word that equals SUD. Easy should equal elegant. Easy should equal useful. Easy should equal what-I-meant-not-what-I-said.
In software, easy is HARD. Just ask the folks at Apple. Or Google.
Don't ask the guys at Microsoft because they will just roll their eyes, grit their teeth, and mutter under their breath - "RTFM you SUD!"
3 comments:
Couldn't agree more, except for the google part. Their captcha should be federally outlawed.
I hope one day you merge these comments with what I've been saying about generic human studies now since 1995.
Bob, nice article!, totally agree with you.
On the contrary, I think the best design is user centered. Interface design should lead programming, and interface API's should facilitate user experience. Programmers should never lead the design because they will add a lot of stuff no one needs and will fail to dream up a lot of stuff that is genuinely useful because it is too hard/obvious/useless to them. It is also extremely difficult to do design and programming simultaneously, its like picking paint and colors and curtains at the same time you hammer nails and do the plumbing. You have to envision the beautiful solution first and then as a second puzzle figure out how to pull it off.
Post a Comment