DevDays Seattle – Joel Spolsky

We get interrupted too much by a computer that has an agenda of its own for ourselves.

Examples:

  • Windows updates
  • Outlook: Any exceptions associated with the recurring appointment will be cancelled. Is this OK? <OK> <CANCEL> but Cancel doesn't mean cancel the appointments, it means cancel the change.
  • Even shutting down your computer involves a decision - shut down, restart, hibernate, sleep, …

Why are these called dialog boxes? They are an imaginary dialog between the programmer and the user. The programmer believes that users care about this dialog, but they don't. What you care about as a programmer is getting the parameter to some function you need to call and the user doesn't really care about giving you that answer. You should just figure it out. You as a programmer never have the right to put up a modal dialog box while the user is trying to do something.

Really comes down to simplicity versus power. Swiss Army knife version of software.

www.columbia.edu/~ss957/whenchoice.html - When Choice is Too Much

When there were 24 flavors of jam to choose among, only 3% purchased a jam. When there were 6 flavors, 30% - ten times as many - bought jam. People abdicate when too many choices are presented.

37signals - getting real - fewer options in software.

My manager at Microsoft, Andrew Kwatinetz, taught me every time you have an option in a dialog box, you're asking someone to make a decision.

Gmail - has a choice "Always display external content (e.g. images) sent by trusted senders." Not sure as a user why they're asking you, but as a programmer I understand the security risk of displaying an image - but even I don't know who are trusted senders.

Software excuses itself so that when someone does something natural that causes a problem, they feel stupid. This is what all these "Are you sure?" dialogs are about - so people blame themselves.

So why isn't software just simple?

When you show the V1 simple software, everyone loves the simplicity - but could they just have this one feature - why isn't there search? Why can't I add a picture to a bug?

What you find is as you solve the customer problems by adding features, you have more sales - so you're adding features to drive those sales. Yes, people only use 20% or so of features, but it's a different 20% for each person.

So how do you solve this conundrum?

Design is the act of making decisions, and designing well is making the right decisions. When you have failed at design, you are punting to the user. A designer knows he has achieved his task not when there is nothing left to add, but nothing left to take away.

A piece of architecture is best when it has the modesty not to draw attention to the obstacles it has overcome.

Nokia E71 phone - four choices for silent: meeting, outdoor, silent, vibrate. The four choices require a complicated menu. If you just have two choices - silent/ring, you can do what the iPhone does and have a physical switch.

We realize we don't need checkout, we can buy now with 1click. We don't need pause/stop - we can just have stop. Pause exists because of reel-to-reel tape where the difference between stop and pause was whether the heads disengaged. In a digital world, we don't need the distinction.

Simple is hard. Think of all the extra work the Amazon codebase has to do to make one-click work. They have to hold the order for 30 minutes in case it was a mistake so it can be cancelled - but proceeding is the mainstream case and the case that is optimized - you only have to do extra things if you want to stop the order.