![]() |
Pattern 22: Symmetry and idempotence [Abstract] |
| Back to Diagram 1 - Getting started | Back to Diagram 2 - Useability | Back to Diagram 3 - Adding detail | Back to Diagram 4 - Workflow/security |
|
View sensitizing image - tbd |
A user performs two actions in sequence that he regards as opposites, but does not get back to exactly the original state or location. He may become confused and disoriented. Doing the reverse of something should get you back where you started from. In Geometry this is called symmetry. There are other operation that, if repeated, should not change the state at all. These are called idempotent operations.
Therefore
Always make sure that all user actions are symmetric and idempotent unless you can make a strong justification
for not so doing. Include this principle into USABILITY TESTING (7). Make
sure that the ‘back’ concept is related to the use cases and include ‘continue shopping’ links where appropriate.
With this in mind, think about including BREADCRUMBS (23) in your site.
Contributors and sources
This pattern is taken and adapted from Thimbleby (1990).
Symmetrical action is related to patterns such as BACK BUTTON (35) and GO BACK TO A SAFE PLACE (34). If you go back and then forward you should return to the same page. However, what back and forward mean to the user may not correspond to the way the browser sees things. Foe example if you have been through several screens to complete a purchase, going back can either be viewed as reeling back through these screens or as returning to the screen you were looking at before you hit the purchase button. Good sites include a ‘continue shopping’ button that has this effect.
Some operations should have no effect when reiterated. For example, when the escape key returns to the main
menu hitting it twice should have no further effect. When deleting files, one should not be able to re-press the
delete key to delete the next file without some other interaction intervening. The cut, copy and paste actions
should also be idempotent. Idempotence is particularly important when the type-ahead buffer is active since unintentional
actions might otherwise be performed when the machine cannot keep pace with typing.
Example
With an accelerating mouse of the sort found on many Unix systems, try moving three inches to the right quickly
and then three inches to the left slowly. The pointer will not end up where it started. If you were not looking
at the screen you could assume that it did and perform the wrong action. One soon gets used to this but for someone
who also uses a symmetric mouse regularly the situation is impossible.
| Browse the language | What is Wu? | Look at an example pattern sequence | Structure of the patterns |
| Comment on Wu | Contributors | Return to TriReme home page | Links to related sites |