Rocket Surgery Made Easy

Steve Krug

Mentioned 3

Spells out an approach to usability testing that anyone can easily apply to his or her own website, application or other product, in a book that explains how to test any design, keep one's focus on finding the most important problems and fix the problems one finds using the author's "the least you can do" approach. Original.

More on

Mentioned in questions and answers.

I am making the distinction between User Interaction Experience and pure User Interface (UI) design here, even though there is often a correspondence. You can have great user interaction even with a ‘boring’ grey interface, (note that a boring interface is not a requirement!).

My bookshelf contains the following:

What other books or resources would you add to this list?

I just finished what I would call a small django project and pretty soon it's going live. It's only 6 models but a fairly complex view layer and a lot of records saving and retrieving.

Of course, forgetting the obvious huge amount of bugs that will, probably, fill my inbox to the top, what would it be the next step towards a website with best performance. What could be tweaked?

I'm using jmeter a lot recently and feel confident that I have a good baseline for future performance comparisons, but the thing is: I'm not sure what is the best start, since I'm a greedy bastard that wants to work the least possible and gather the best results.

For instance, should I try an approach towards infrastructure, like a distributed database, or should I go with the code itself and in that case, is there something that specifically results in better performance? In your experience, whats pays off more?

As a personal contribution: I sometimes have the impression that some operations, when done through django's signals, are faster then the usual view way. But hey, I'm biased. I freaking loooove signals. :)

Personal anecdotes like mine, are welcome as a way to stimulate some research, but some fact based opinions are much more appreciated. :)

Thanks very much.

Now what?

Deploy. If you have an MVP that is.

Other thoughts:

  1. You didn't mention anything about testing. Do you have unit tests? Do you feel that the test coverage is adequate? I'd recommend reading Karen M. Tracey's book Django 1.1 Testing and Debugging.
  2. Have you watched Jacob Kaplan-Moss's Deployment Workshop?
  3. Have you done any usability testing? You can check out Joel Test article by Joel Spolsky, or you can read Rocket Surgery Made Easy or Don't Make Me Think both by Steve Krug.
  4. Speaking of Spolsky, how does your process rank on the Joel Test?

I know that your question was slanted toward performance, and it may seem that my thoughts aren't performance related. However, thinking about some of these seemingly unrelated items may lead you in a direction that will impact performance. For instance, usability testing may reveal that a certain feature could be reduced in scope yielding better performance due to less data being delivered to the end-user.

Being mostly a software developer I find that the hardest thing for me is to produce usable user-interface.

I did read some books, including The Smashing Book and Web Design For Developers. But those are mostly concentrated on the Design rather than on building more complex interfaces (like allocating many-to-many items with search with different options on both sides, grouping using different fields and so on).

Are there any books, articles that target building more (logically) complex UIs for the web?

Based on the other answer on the SO the Designing Web Interfaces book looks good


As with any topic, get your hands on as many resources as possible.

My most recent addition to my pile of books is Designing Interfaces Patterns for Effective Interaction Design by Jenifer Tidwell. Links: Official website and Amazon.

I highly recommend it: it describes user interfaces in patterns (something that we are familiar with).

A few titles from my book shelf:

I could list more titles, however the above will get you started.


Possibly a bit Off-topic, however I cannot resist as this is an area that I know.

If you have the opportunity, talk with your users (or even better sit down with them as they work). It is the best research you can do when trying to improve usability of your software.

If you want to measure your usability check out running System Usability Scale test (commonly referred to as SUS scores). Link 1 and Link 2 (PDF)



I also like this one:

The Design Of Sites - second edition

Jenifer Tidwells book Designing Interfaces: Patterns for Effective Interaction Design is a good one.

alt text


  1. The user and the task.
  2. Organizing content
  3. Navigation
  4. Organizing the page
  5. Actions and commands
  6. Complex data
  7. Input
  8. Buildes and editors
  9. Making it look nice