The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
TechInterview.org
CityDesk
FogBugz
Fog Creek Copilot


The Old Forum


Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

The Developer Fundamentalists vs The Usability Guys

While reading threads like "How Outlook destroy my e-mail account in one night" I see the big difference in thinking between hardcore programmers and user-oriented people . I see it in my workplace aswell, often.

What is striking is that it seems to be impossible to follow protocol/standard/implementation principles 100% and at the same time achieve good usability.

Technical workings under the hood will affect the end-user experience. The developer instinct is to be principally right, and to stress that the user should have the ability to alter every flag and value available in the data structures the current interface affects.

Isn't a user face supposed to provide an abstraction? Is really everything under the hood meaningful to the user? And do the end-user care if a protocol specifies a certain behaviour that just doesn't make sense to a non-techie?
What's my login again? Send private email
Monday, June 09, 2008
 
 
I like the idea of different "workspaces" for different level users.

For example, a beginner "workspace" for MS Word might be as spartan (or more spartan) as Wordpad.

The full interface would be more for advanced users.
*myName
Monday, June 09, 2008
 
 
But then beginners will always be beginners.  There is no discovery and learning.
Almost H. Anonymous Send private email
Monday, June 09, 2008
 
 
@*myName: That idea has been rejected by microsoft people by some reason that I cannot fully remember. However, I like the idea - I mean, many simple web-apps provide very simple interfaces. And I, myself am reluctant to fire up word for its complexity when I just want to write something with minor formatting.
What's my login again? Send private email
Monday, June 09, 2008
 
 
>>> But then beginners will always be beginners.  There is no discovery and learning.

Well, I don't think this holds up, because I deal with people all of time that have the "full" interface, and still don't understand how to use the software. I had to explain the Min/Max/Close buttons to somebody one day, and that when a window is minimized, it didn't "disappear".

Those that want to learn, will. Those that don't, give them a dirt-simple ui...

And if the option exists to choose at startup, the "learners" will eventually look to see what's behind that radio button...
*myName
Monday, June 09, 2008
 
 
Users don't like to think that what they've spent years learning is *wrong*. That's why sometimes newcomers were happy with the blue ribbon and oldtimers weren't.

Monday, June 09, 2008
 
 
"what's my login name again?" wrote: "t seems to be impossible to follow protocol/standard/implementation principles 100% and at the same time achieve good usability"

Nonsense. Internal implementation and external behavior are completely orthogonal. Any program (or system) that allows the internal implementation detail to leak into user interface either has lazy developers (unwilling to build the infrastructure necessary to translate the internal model into the model presented to the user) or has a really terrible internal model (one that can't be practically translated into a model sensible for the user).

Now, there are lots of lazy developers out there, and they DO tend to cut corners on the user interface. There are also lots of developers who can't build a sensible user interface because they don't know what one is, or because they are too blinded by their internal abstractions to recognize what the the need for a different set of abstractions for the user. This is why we have user interface trials and HCI profressionals.
Jeffrey Dutky Send private email
Monday, June 09, 2008
 
 
"But then beginners will always be beginners.  There is no discovery and learning."

Why make users learn anything. Just let them do what they want with a simple user interface.

Monday, June 09, 2008
 
 
A agree part of the problem is just lazy developers.  I remember back when the user experience was still important one had to think hard and put a lot of effort into making software that a secretary or a grandmother could use.  Creating software that is both powerful and easy to use is difficult.

Today you have so many "me too" CS grads that just jumped on the bandwagon for the money that very few of them care about usability.  They just want to churn and burn.  The true hardcore developers want their software to be approachable and useful.
Been Around the Block
Monday, June 09, 2008
 
 
"For example, a beginner "workspace" for MS Word might be as spartan (or more spartan) as Wordpad.

The full interface would be more for advanced users."

Isn't this exactly what Microsoft provided with the "Full Menus" option in the last several versions of Office?

By default only the most commonly used menu elements were shown, but you could dig down in the "Options" dialog box and turn on "Full Menus". I don't think it was a terribly successful approach. If you google "Microsoft Word full menus" you'll find plenty of people complaining about it, and Office 2007 now has full menus turned on by default. I'd guess that the problem is that no two users can agree on which features belong in the "basic" menus, and which belong in the "full". If you guess wrong, you've made important features a lot harder to get to.

Bear in mind that when POP3 was put together, disk space was expensive and most service providers didn't give you a lot of storage for your email. If you didn't move your messages down to your PC from the server you'd start bouncing mail because you'd exceeded your mail box quota. A lot of people are still in this situation, and if you change the default to leaving messages on the server, all those people are going to be unhappy when they start getting mysterious messages from their ISP that their mailboxes are full. Who are you going to satisfy: the cool kids simultaneously checking gmail from their iPhone, laptop, and Xbox, or the folks using the Packard-Bell 386 in the spare bedroom to pick up their email from Bob's Pretty Good Internet? It's really hard to make them all happy.

I think the most sensible thing said about this issue was contributed by Rob Moir in the original thread: the real UI problem here is not the default value of the POP configuration, it's that Outlook didn't transfer the user's  known preferences from the previous setup.
Charles E. Grant Send private email
Monday, June 09, 2008
 
 
In the DOS days, Microsoft used to have Easy Menus and Full Menus in their compiler products. They defaulted to Easy and there was a tickbox (certainly) under the File menu (IIRC) to turn Full Menus on. For many reasons, that seems like the go to me.
less is more
Monday, June 09, 2008
 
 
"Creating software that is both powerful and easy to use is difficult."

True!

"Today you have so many "me too" CS grads that just jumped on the bandwagon for the money that very few of them care about usability."

Very true!

"The true hardcore developers want their software to be approachable and useful."

Agreed!

It's amazing so little attention goes into ease of use any more.  This may be actually creating a whole new niche to sell into.  Find apps with a crappy human-computer interfaces, reverse engineer them and put a friendly interface on top.
XEmbeddedNerd
Monday, June 09, 2008
 
 
>>> Isn't this exactly what Microsoft provided with the "Full Menus" option in the last several versions of Office? <<<

Yep, and I deal with that issue all of the time with people. The problem with this feature is that items "drop off" the menu when they aren't used, and people never find them again because they don't know that the menus expand after a few seconds.

Here's a better example: MS Word "paragraph styles". Wordpad doesn't have them, and it forces users to use the spacebar or tabs to format text. So does every (probably) other text editor out there. Many people don't use or know how to use Word styles, or even understand _why_ you would use them.

So, in the "simple ui workspace" for MS Word, you disable (not "hide") the feature.

As for the OP & cited thread @ Outlook, Outlook isn't the only offender. I've "lost" email off the server from Thunderbird under a Ubuntu live-cd, because the default behavior when configuring an account through a setup wizard is to download the emails. My personal workaround is to supply bogus login credentials until I can manually change the settings. But, it's pretty much a no-brainer to simply add a step to the wizard to "ask" the user what they want to do.
*myName
Tuesday, June 10, 2008
 
 
I'm not going to play games with my GMail inbox and any new software I install. It's just too valuable to me.

You must ask yourself "am I trying something new? if so, are my data protected against the predictable mistakes I'll do while learning?"
Daniel_DL Send private email
Tuesday, June 10, 2008
 
 
When programmers start to think in terms of 'What needs to be on the UI to help the user accomplish her goals?' instead of 'What should I put on the UI to hook it up to the API?' the UI will start to look and feel a whole look cleaner.

AS someone said above, there are HCI professionals who deal with user experience issues - and that's all they deal with. It's too big a subject for 1 person to do the interaction design, the visual design, the usability testing and the accessibility - and then do the programming as well.

It's like a performance car engine and transmission specialist whipping out a spray can to do some body work. Or a heart surgeon doing a bit of cosmetic surgury on someones face. Sure, it might work but is that what you really want?
MT Heart
Tuesday, June 10, 2008
 
 
+1 for Jeffrey.

"AS someone said above, there are HCI professionals who deal with user experience issues - and that's all they deal with. It's too big a subject for 1 person to do the interaction design, the visual design, the usability testing and the accessibility - and then do the programming as well."

I don't agree. For some very large organisations it makes sense to separate those roles but then you run the risk of the HCI guys becoming isolated from the techies and marginalised.

It's much more effective to embed that knowledge into the development team.
Icarus Send private email
Tuesday, June 10, 2008
 
 
There's nothing wrong with having your HCI and development people working together on the same team - but if your developers are working alone from the standpoint of designing for the system that the application is running on instead of designing for the people using the application, you're going to get the 'inmates running the asylum' syndrome that Alan Cooper goes on about. I've seen this done too many times, especially in large corporations that have processes grounded in decades old waterfall style methodology.

The UI's that a very large number of developers I've seen 'design' truly has to be seen to be believed - absolutely atrocious with no regard for the people using it whatsoever.
MT Heart
Tuesday, June 10, 2008
 
 
The first problem with having beginner and advanced modes is that it adds a layer of complexity to the app that undermines its effectiveness. For any new feature the user wants to try, in addition to the user having to guess what menu it's in, the user also has to guess if it’s Advanced or not. That's hard: How’s a user suppose to know what the designer decided was advanced or not?

The second problem is just that: how do you, the designer, decide what’s advanced or not? Real beginners are few. Real experts are few. Most users are what Alan Cooper calls “perpetual intermediates,” each knowing a small and an idiosyncratic set of expert functions, so there’s no agreement on what belongs in Advanced. For example, I know a user that regularly opens multiple browser windows in IE6 using shift-click and New Window, but doesn’t know how to use the Favorites menu. Users also learn new things painfully slowly, so it’s not like one morning they wake up and suddenly they’re Advanced.

The net effect is that very early in their exposure to your app, all users have to figure out how to turn on Advanced mode to get the one or two expert things they know, and all you’ve accomplished with Advanced mode is to put a roadblock in front of your users.
Michael Zuschlag Send private email
Tuesday, June 10, 2008
 
 
All fine trying to keep it simple for the user, but what if the person writing the spec, and the end user have totally different ideas / understandings?

You'll end up with a system with hundreds different forms with tons of buttons / shortcuts / and what not, and a user who will be totally confused with everything on the screen.

I'm all for keeping is simple, but good luck explaining that to a overbearing and demanding guy in middle-management who after creating one form in VB, declares himself as "half support manager / half software developer"….
My turn to whine
Tuesday, June 10, 2008
 
 
My Turn,
That's a very real problem but a different one, I think.

Even in the case you describe, designing for the "customer" as in the middle manager with the bad spec rather than for the end user, you'll still end up with a better interface than you will by designing the interface for the code itself.
Rob Moir Send private email
Tuesday, June 10, 2008
 
 
"But then beginners will always be beginners.  There is no discovery and learning."

You say that like it's a bad thing...
BillAtHRST
Tuesday, June 10, 2008
 
 
The popularity of web apps is the big endorsement for ease-of-use.  We've seen proof that people willingly trade-off functionality for easy. In the mass market, that is an important distinction.
Sassy Send private email
Tuesday, June 10, 2008
 
 
At the end of the day people are trying to get someone or something that can help them solve their problems.

Simple, well-designed software that only does 3 or 4 things but does them really well and in an easy to use manner is worth much more to me than complex and hard to use software... as long as my problem is solved by the "3 or 4 things".

Then you have the other end where they really do need the "rocket science" UI approach because they really do need to solve the meaning of life using just one maximised window full of buttons for some contrived reason. They might not *like* their complex program but they know they have to make do with it so they grit their teeth.

It's the middle ground where wars erupt. Imagine the only choices for software development were visual basic 3.0 or assembly language. Scary isn't it?
Rob Moir Send private email
Tuesday, June 10, 2008
 
 
Jeffrey Dutky wrote:
"Nonsense. Internal implementation and external behavior are completely orthogonal. Any program (or system) that allows the internal implementation detail to leak into user interface either has lazy developers (unwilling to build the infrastructure necessary to translate the internal model into the model presented to the user) or has a really terrible internal model (one that can't be practically translated into a model sensible for the user)."

I think you're right in that internal implementation details shouldn't leak up to the user interface, and it could be avoided many times.

However, I belive there are systems that doesn't have a terrible internal model, but still constraints the UI heavily. I am thinking of such examples at my workplace, but one example that I recall reading about was a travel agency that needed to rework their entire booking system because it couldn't afford a customer-centered work-flow for bookings.

Underlying architecture can heavily constrain UX design, even though it does not have "a really terrible internal model". At least not from a developers perspective.
What's my login again? Send private email
Tuesday, June 10, 2008
 
 
This topic boils down to the fact that developers suck at UI. You should not have developers designing UI, but dedicated people working with users to design something that is actually usable.

An excellent book on this topic is "Why Software Sucks" ( http://www.whysoftwaresucks.com/ ) and its section on this issue.
MoffDub Send private email
Wednesday, June 11, 2008
 
 
"All fine trying to keep it simple for the user, but what if the person writing the spec, and the end user have totally different ideas / understandings?"

Well that's the problem, right there. What is the person writing the spec basing it on? Obviously not the needs, goals or expectations of the person using the software.

Design is all about communication and clarity. Edward Tufte has a nice video critique of the iPhone that highlights this. It's a bit on the large size though (56Mb download), but worth the wait.

Two great quotes from it:
"To clarify, add detail" and "Clutter and overload are not an attribute of information, they are failures of design"

http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=00036T&topic_id=1&topic=
MT Heart
Wednesday, June 11, 2008
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz