• Skip to primary navigation
  • Skip to content
  • Skip to primary sidebar

Simplicity Rules

Adam DuVander on keeping it simple

  • About Adam

Designing the Obvious interview

May 26, 2008 by Adam DuVander

I enjoyed writing the series of posts about Designing the Obvious, the guide to creating sites and applications that keep both developer and user sane.

My favorite part was reading what others thought about it in the comments. Three were randomly chosen to receive autographed copies: Aaron Hockley, Bram Pitoyo, and David Frey. I hope we get to hear more about what they think when they read the entire book.

Robert Hoekman, Jr.Thanks also to the author Robert Hoekman, Jr., who supplied the books, and agreed to answer the following questions about his work. If you’re still itching for more Hoekman, he has a new book, Designing the Moment, that is full of examples of his concepts put to use.

How do you determine what is essential and what is nice-to-have?

As I touched on in Chapter 2, I take an activity-centered approach to design, which is to say that instead of focusing on a narrow range of audience types, for most projects I focus on the activity an application is meant to support. In doing this, I study the essential elements of the activity, document them, and then work to justify every item on the list.

So, as I study an activity, I create what I call an “Activity Grid”, which is basically a 3-level outline you can create in any word processing application or outlining tool (such as OmniOutliner). At the top of this document, I write a description of the activity the application will support, then I break the activity down into outline form. The first level is a simple list of tasks, which could be something like “Find photographs” in a photo-sharing application. Tasks then break down into actions, which are itemized accounts of the steps you might take to find photos, such as “Search by member” or “Search by subject”. Finally, these actions break down into operations — the lowest level of detail. Operations can be things like “Enter a search term” followed by “Click the Search button”.

When I start studying an activity, I identify the major tasks — the ones most essential for completing the specified activity. Once I have that list, I detail the actions that comprise each task. From there, I can detail exactly what operations must occur for the actions to be completed. By the time I flesh out the Operations level of the activity grid, I have a fairly detailed set of design instructions. For example, the “Enter a search term” operation tells me I need an input field in the interface, and that there will be a search feature.

Once I finish this list, I start my design work. But instead of setting the activity grid in stone, I review it throughout the project, continually re-justifying everything that made the cut to see if anything is missing, can be stripped out, or needs revision.

With all this in mind, there are many ways to determine what’s essential and what needs to hit the cutting room floor. For example, Joshua Porter’s book on social web design offers a very different approach where you identify the objects needed to complete an activity and then devise your feature list out of that list. I think it’s a smart approach and am planning to try it out soon.

You rely on use cases in your work. How to you maintain a balance so your process can simplify things instead of make things more complicated?

The use cases I write are a little different than the typical “user story” you might see in a lot of development processes. First, they’re very detailed. Instead of a single line that describes only the action the user will take, I describe each step of each action. Second, these use cases are very much an extension of the activity grid. So, I design all the screens and screen states I need to fulfill the activity grid, and then I stick them all into this Powerpoint/Keynote template I created and write the use cases in a sidebar, right alongside each wireframe. I call this a Design Description Document (DDD) — in fact, you can grab the template from my site.

This can definitely sound like a complicated process, but depending on the activity, an activity grid can be created in a matter of hours in a lot of cases, and the DDD can be done just as quickly. Instead of a long, dry technical specification, I use this DDD, which can be created and updated in extremely little time, and does a more effective job of communicating to stakeholders and developers exactly how everything should work so they can build it all out.

I’ve been using this set of solutions for a while now, and it’s proven to be very efficient for me, but I’m always looking for ways to simplify the process and get the right messages across to clients, so I could just as easily change it all tomorrow.

The real key is to be flexible. Don’t lock yourself into anything, because there’s always an improvement to be made and you don’t want to miss it by getting too focused on one way of doing things.

Do you find making your personal workflow simpler makes your products simpler?

Oh, definitely. The more I simplify my own process, the more I’m able to quickly identify areas of a design that need to be created or improved, and the more readily I can do that, the simpler the outcome. For example, by using an activity grid and a DDD, I can determine what needs to be designed and document every detail of it very quickly, which enables me to spot trouble areas or gaps in my thinking so I can revise the designs.

How do you avoid the curse of knowledge and think like a user?

Great question — and the answer is actually a little ironic.

When it comes to designing usable and enjoyable software experiences, the principles of design are simply restatements of human behavioral patterns and psychology. For example, we know from observing people use software that they tend to blame themselves for mistakes when error messages come popping up time after time, and they can end up feeling dumb, as though they’re simply incapable of understanding how to do something correctly. We certainly don’t want our users feeling dumb as a result of using our products, so all you do is restate the problem as a principle. Once you know that users blame themselves for mistakes, even when it’s not really their fault, the design principle becomes, “Prevent errors, and handle those that cannot be prevented as gracefully as possible.”

Because the role of design is to support human behavior and because the principles behind good design do exactly that, there is no “curse of knowledge”. The more you know about human behavior, the better you can design to support it — to work within those constraints.

Why did you write Designing the Moment?

I wanted to pick up where Designing the Obvious left off. The first book was about core tenets — the high-level things that are simply essential to good web application design. But beyond those principles, there are a whole lot of very specific problems that come up when you’re shoulder-deep in the details of a design, and I wanted to talk about the principles and practices that address those problems. The best way to do this was to talk about them in context — to describe specific instances where I was faced with a common (or uncommon) problem and then walk through the principles and such that I applied to solve them. So, Designing the Moment is a collection of stories from real projects where I talk about the design problem, the steps I took to start and improve the design, and the concepts I used to make each decision.

The really fun part was that I got to tell all these stories about projects I’ve actually worked on and how I got through them. Of course, that’s also the really scary part. Designing the Moment is an educational tool, sure, but on a personal level, it’s also sort of a journal of these little bits of designs I’ve done over the past year and a half or so. It never really occurred to me while writing it, but once it was released, I had this realization that I’d just put all this work into print. It’s out there to be judged by anyone who picks it up. That’s a scary idea! I’m glad I didn’t have this realization while I was writing it, else I might have panicked and scrapped the whole book.

Too late now!

Webmonkey’s nine lives

May 19, 2008 by Adam DuVander

It’s been quite the ride for my favorite monkey, but I’m delighted to see that Wired has resuscitated Webmonkey, the how-to site that helped many in the early days learn how to make the web work.

Webmonkey

For those who don’t know the backstory, Webmonkey was mothballed almost two years ago. Before that, it was revived from a previous death. This time looks for real because Wired owns the site and did some work to re-architect it.

What makes me happiest about Webmonkey’s return is that it received a lot of attention before launch this time. The site, now mostly a Wiki, looks like it belongs in 2008. Readers can rate articles, comment, and edit them when they get out-dated. Major props to Mike Calore and his team for their effort to bring the ‘monkey back in such a big way.

Since 2000, I’m proud to have been a Webmonkey author. Over the last couple months, I’ve been writing a few more how-tos that will make their way online in the next few weeks. I’m proud to be part of it again. Welcome back, Webmonkey!

Unnecessarily complex change machine

May 18, 2008 by Adam DuVander

Muni change machine

John shows the above example of unnecessary complexity that he found in a San Francisco Muni station. To get $1.50 in change, you put one dollar into one machine to get a dollar coin, then another dollar in the other machine to get quarters.

Then, I assume, there is a third machine that takes both types of coins.

Ick.

60 second Deadlines

May 7, 2008 by Adam DuVander

This post is part of a series about Designing the Obvious, a book about common sense Web application design. Learn more about this series.

As long-time readers know, I love time-boxing tricks: POWER HOUR, 4 day work week, 7 day product. Working within artificial constraints can make things easier on you and simpler for your users/customers.

Separate the nice-to-have features from the essential

Designing the Obvious has another trick you can add to your arsenal: the 60-second deadline. Here’s the scenario:

“The project timeline has been cut in half. We have about 60 seconds o decide what to keep and what to throw away before we meet with the client in the conference room.”

The author recommends writing all your features on a piece of paper, then starting the clock. You have 60 seconds to draw a line through the features you don’t absolutely need.

If there’s any doubt, cross it out.

The 60 second deadline is a great method to trim to the barest essentials. The first law of Simplicity is to reduce.

The 80/20 Rule

80/20 rule explained

What happens to all those crossed out features? They go on the “nice to have” list. Maybe you’ll get to them later. For most, you will likely realize they weren’t really that nice-to-have.

“Yes, some of the remaining 80% of your features may be useful somehow, to someone, some of the time, but they are most likely useless to 80% of your users, 80% of the time. And you probably spent 80% of your development time building things that aren’t that essential to your application.”

What the book is describing is the 80/20 rule, or Pareto Principle. It says the first 80% of functionality can be built with 20% of the time it would take to finish the entire application. That leaves 80% of your time to finish those few pesky 20% of features… the ones that will be used least by the fewest people and may only add more complexity to your core feature set. That isn’t worth it.

How do you determine what is or isn’t important? What do you think about asking users to do the crossing out? Share your thoughts below and I may be able to share an autographed copy of Designing the Obvious with you. I’ll be randomly picking three people from everyone who commented during my series.

Band-Aids Only Hide Boo-boos

May 1, 2008 by Adam DuVander

This post is part of a series about Designing the Obvious, a book about common sense Web application design. Learn more about this series.

When you cut your finger, you put a band-aid on. It doesn’t fix the cut, but it hides your wound from the world. In the face of an interface problem, the natural reaction is to place the equivalent of a band-aid over it. Too often, this doesn’t do much to change the underlying problem.

For example, here is my least favorite thing about MySpace:
You Must Be Logged In to do That!

Whenever a user clicks something that requires a login, MySpace redirects to the home page for authentication. This probably confused some users, naturally, because nothing was guiding them along. So, MySpace’s solution is to include a big red box with an exclamatory message that feels like a hand slap.

The red box is a band-aid for a broken login process. The login itself may be another band-aid for a broken privacy plan. Who knows the series of decisions that ended up at this point, but something is damaged, and the band-aids aren’t helping.

Designing the Obvious says:

“I don’t like band-aids. Instead of putting band-aids on problems, I perform surgery on them. Interface surgery.”

The book has several examples of interface surgery, where the author solves a problem by improving it a bit at a time. You may not agree with all the steps, but it is a joy to watch something become less broken.

But I have a problem, one I hope you can help me solve. Band-aids are often the simplest solution to a problem. As someone who loves simplicity, how can I advocate the additional time to get a better solution? Is it that extra work on my part makes it simpler for everyone else?

Let me know what you think below. There may be one of three autographed copies of Designing the Obvious in it for you. I’ll randomly select from the commenters on all of my Designing the Obvious posts once the series is complete.

  • « Previous Page
  • Page 1
  • …
  • Page 12
  • Page 13
  • Page 14
  • Page 15
  • Page 16
  • …
  • Page 85
  • Next Page »

Simplicity Series

  • Designing the Obvious
  • Paradox of Choice
  • Laws of Simplicity

Copyright © 2025 · Elevate on Genesis Framework · WordPress · Log in