73
Anti-Patterns Designing for the Poor W eb Ex perience Bill Scott Director, UI E ngineeri ng netix.com [email protected] 1

Development anti-patterns

Embed Size (px)

Citation preview

Page 1: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 1/73

Anti-PatternsDesigning for the Poor Web Experience

Bill ScottDirector, UI Engineering

[email protected]

1

Page 2: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 2/73

background

2

Page 3: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 3/73

anti-patterns

what are anti-patterns?

“Anti-patterns, also called pitfalls, are classes of commonly-reinvented bad solutions to problems. They are studied as a categoryso they can be avoided in the future, and so instances of them may berecognized when investigating non-working systems. The term originates incomputer science, apparently inspired by the Gang of Four's book Design

Patterns, which displayed examples of high-quality programming methods.” - Wikipedia, Anti-Pattern.

interaction design anti-patternsLike the software anti-pattern counterparts, the following anti-patterns are

common pitfalls to avoid.

pitfalls with a pithy name

3

Page 4: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 4/73

anti-patterns

big ball of mud. meandering way.

borg idiom. tiny targets. mystery meat.

buried treasure. hover and cover.pogo stick navigation. novel notions.

against the flow. metaphor mismatch. jabberwocky. double duty. linkitus. blind type.

windows aplenty. animation gone wild.misguided misdirections. unmarked hazards. missed

moments. missing scene. one at a time. non-symmetrical actions.

Note: anti-patterns denoted in bold are discussed in this talk.

4

Page 5: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 5/73

anti-pattern. meandering way

summary

Normal flow through the page takes the user on a meandering journey with themouse.

alternate names zig-zag interaction, scenic route

example Actions hidden under hover (in context tools) that require the user to hover anarea, then move the mouse to an area that would normally be outside theobject’s space (back and forth operation)

5

Page 6: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 6/73

anti-pattern. meandering wayIn our Y!Teachers product the first version of the hover caused a lot of mouse

 zig-zagging to do common operations.

6

Page 7: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 7/73

anti-pattern. meandering wayIn the redesign, we avoid any popup, any page jitter and make it possible to justmove the mouse to a predictable spot to do multiple operations.

7

Page 8: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 8/738

Page 9: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 9/73

anti-pattern. meandering wayIn previous company, I found this was a common occurrence in their suite ofsoftware application. By drawing red arrows indicating the user flow, it made the

problem obvious and helped to refactor to a correct solution..

9

Page 10: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 10/73

refactoring. meandering wayAnnotate the current flow.Take a snapshot. Draw red arrows through the interface for each user scenarios.Use this information to simplify flows and eliminate zig-zag interaction.

Draw the ideal flow.During design refactoring, only display the elements needed for each interaction.This will allow you to focus on what is important for the interaction-- and what is

actually the supporting information.

Watch out for hovers. Make sure that all in-context tools that getrevealed require no extra mouse move and are completely predicatable --allowing the user to gain speed in using the interface.

Follow spatial consistency.Take advantage of user's learning the command space visually.

10

Page 11: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 11/73

anti-pattern. pogo stick navigation

summary

Requiring the user to go down a level or two, perform an operation, come backto the top and then have to go back down again. Name comes from hoppingup and down through the site.

credit Jared Spool

11

Page 12: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 12/73

anti-pattern. pogo stick navigationNetflix faced the problem of users needing more information on a movie.

They would go down to the details of the movie, possibly adding to the queue.

Then they would go back to where they come from and repeat this

Their solution involved an overlay that can support an alternate navigationstream. Then the user can come back to the main flow anytime they desire.

12

Page 13: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 13/73

anti-pattern. pogo stick navigation

13

Page 14: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 14/73

refactoring. pogo stick Draw flow arrows between pages to catch the zig-zag bouncing frompage to page (see Meandering Way anti-pattern).

To avoid pogo effect:

- Use in-context tools to bring actions into the current page

- Use hover details to reveal information in context 

- Use overlays for encapsulating an alternate navigation path to allow

temporary exploration without losing the original context of navigation- Use in page actions like inline editing, etc. to provide functionality inline.

- Use in-context expands to reveal information on the page.

Watch out for overlays

Can make users resort to back button anyway 

14

Page 15: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 15/73

anti-pattern. tiny targets

summary

 Making key interaction points too small increases the likelihood that users willbe frustrated with the interface.

Fitt’s lawThe time to acquire a target is a function of the distance to and size of thetarget.

examplesdivots for expand/collapse

15

Page 16: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 16/73

anti-pattern. tiny targetsThe identity card area has a summary view and an expanded view.The targeting is really small and caused lots of usability issues.

Several problems exist:The target for expand/collapse is hiddenThe area that reveals the target area for our identity card is only the photo and not the completesummary viewThe target is a very small divot that is hard to hit.

16

Page 17: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 17/73

anti-pattern. tiny targetsThe target for opening the vocabulary list is actually anywhere in the completetitle. However, it looks like you can only click the little tiny divot (8x8 pixels)

Redesign will call out “Close” as bigger target, but also cause title to have link.

17

Page 18: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 18/73

anti-pattern. tiny targetsThe Yahoo! Gobbler has done well in tests due to the larger nature of the projectdrop targets.

Issue: small text drag target 

18

Page 19: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 19/73

Page 20: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 20/73

strategies. tiny targets Activation targets and important commands need to be large enough ,

visually distinct and in proximity  to operation.

Use in-context tools to support proximity.

Use “Call to Action” style buttons for most important operations.

If titles will expand/collapse, at least use hyperlink underline when hoverhappens to provide a bigger target.

Never use 8x8 for targeting :-)

20

Page 21: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 21/73

anti-pattern. hover & cover

summary

Hover reveal of information and actions has become more and more popular.Hover & Cover is when the hover actually hides important contextualinformation around the object or gets in the way of other actions.

21

Page 22: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 22/73

anti-pattern. hover & coverOriginal hover was extremely annoying as it 

Covered the item to the right (natural flow is move to right)

Occluded text edit area (hung open)

22

Page 23: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 23/73

anti-pattern. hover & coverExample from plum.comDrop down menu shows on hover and gets in the way. Too easy to accidentally

turn it on.

23

Page 24: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 24/73

Page 25: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 25/73

anti-pattern. hover & coverThis one almosts leads to a new anti-pattern-- hover madness

Seriously what were they thinking? 

25

Page 26: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 26/73

refactoring. hover & coverFor in-context tools, attempt to reserve same space for both hovered andnon-hovered state

For hover details (information) place the hover in a manner that does not

cover up important controls, will not cause accidentaly popup & down and iseasy to deactivate.

For hover details, allow a 1/4 second delay before activating.

For in-context tools, show hover state

immediately  and provide

consistent targeting for operationsfrom object to object (allow user to getaction item just in time)

26

Page 27: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 27/73

anti-pattern. borg idiom

summaryNot all idioms play well together. Some idioms are more powerful than others.For example, tree controls, drag and drop, selection mechanisms all set up an“interaction theme”.

 Just like visual styles need to be consistent, interaction styles also need to beconsistent throughout the entirety of the interface

Borg Idiom is the phenomonon of an idiom (once adopted) assimulating therest of the interface. Sometimes the assimulation is just the fact that one idiomdominates due to the way the interface clues the user to their presence.

27

Page 28: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 28/73

anti-pattern. borg idiomHere was an early attempt on Yahoo! Bookmarks to blend drag and drop withitem selection (checkbox idiom). It has odd side effects during the interaction.

In Yahoo! Photos (no longer available) drag selection was implementedwell. One issue was the page metaphor + drag selection + a tray idiom.

28

Page 29: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 29/73

anti-pattern. borg idiomOriginal design did not accurately reflect the hierarchical nature of projectscontaining documents.

The tab idiom incorrectly communicated that these objects were in parallel.

29

Page 30: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 30/73

anti-pattern. borg idiom An initial redesign proposed using a tree control. It would communicate projectscontain documents. It would also become a navigation that would naturally

repeat itself to the “gobbler” as well

Tree controls are a “strong” idiom. They are not very friendly on the web. Theyrequire some dexterity to navigate. They play better on a desktop where“controls” are favored over “active content”.

30

Page 31: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 31/73

anti-pattern. borg idiomThe final approach was to take a more content-driven approach rather than a“control-oriented” approach. This fit nicely with the rest of the interface, leaving

all of the site to look like normal web pages.

31

Page 32: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 32/73

anti-pattern. borg idiomThree idioms living in parallel with each other. The old style overwhelms theother two.

32

Page 33: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 33/73

anti-pattern. borg idiomNetflix recently added drag/drop to their movie queue.

Notice they were able to mix two idioms without one taking over from theother.

33

Page 34: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 34/73

anti-pattern. borg idiomTwo approaches. Object selection (highlight idiom). Item selection (checkboxidiom). Is it possible to marry the two? 

34

Page 35: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 35/73

anti-pattern. borg idiomCurrent Yahoo! Mail successfully married the two interaction idioms. It did it in away that you can use either idiom as both have their advantages.

35

Page 36: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 36/73

refactoring. borg idiomFor content-oriented rich sites, avoid becoming control-heavy .Stay away from the tree control and other strong desktop style controls. Make

 your content interactive, thus making the content the control.

Before adding any interaction style, make sure it will scale across allknow parts of your interface.

Either allow yourself to be assimilated (be consistently borg :-) or eliminate theBorg from your site.

Watch out when mixing drag and drop with checkbox styleselection.

Avoid mixing selection styles.

36

Page 37: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 37/73

anti-pattern. novel notion

summaryCreating a new interface for a common idiom that is more confusing than theoriginal. Sometimes it is just misusing a component for a new purpose.

examplesUsing drag and drop for simple attribute setting; using odd navigation schemesfor some supposed effect 

37

Page 38: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 38/73

anti-pattern. novel notion

anti-pattern. name.

This is just bizarre. Especially the “Search Jobs” link. And it plays music ;-)

38

Page 39: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 39/73

anti-pattern. novel notionThis guy won an award! Look it’s just marking stuff as ‘favorite’.

 Already solved.

 And this is yet another novel approach to favorites

39

Page 40: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 40/73

anti-pattern. novel notionnovel approach to putting candy in a box... how about drag and drop? 

40

Page 41: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 41/73

anti-pattern. novel notionYahoo! Photos (going away) tried a novel approach to selection. It involved thenew concept of a “tray” for holding temporarily selected items.

Technically perfect. But design-wise misguided. Created two targets forcommands: selected items and items in the tray.

 As a result the menu commands were duplicated for the tray and for the

current selection. Confusing.

41

Page 42: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 42/73

42

Page 43: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 43/73

refactoring. novel notionUnderstand the purpose of each type of component- Carousels do not replace scrolled lists

- Drag and drop is not for single attribute setting 

Don’t construct an artificial interface to support an idiom (don’tcreate the house for the nail)

If you think you need something never created before, think twice about it 

43

Page 44: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 44/73

anti-pattern. linkitus

summaryThe syndrome of having no idea where a link will lead you. could be an in pageaction, could reveal information, could take you to new page, could popupsomething, could engage on hover. Can also be aggravated by inconsistent useof links on the same page.

examples

 yahoo.com inconsistent use of links on main page, teachers.yahoo.com around idcard 

44

Page 45: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 45/73

anti-pattern. linkitusOn the home page, there are three kinds of links:- Reveal other content in context 

- Take you to the article- Expose area (hover to reveal, click to go to tool)

45

Page 46: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 46/73

anti-pattern. linkitus

46

Page 47: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 47/73

47

Page 48: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 48/73

48

Page 49: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 49/73

anti-pattern. windows aplenty

summaryThe practice of throwing up unnecessary idiot boxes.So many reasons this is just wrong...

49

Page 50: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 50/73

anti-pattern. animation gone wild

summary Animation effects that become the central focus instead of being part ofreinforcing a message.

examplesamazon carousel, tab animation, (stuff from transition talk)

50

i ld

Page 51: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 51/73

anti-pattern. animation gone wildWhy the extra little slide in? 

51

i ld

Page 52: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 52/73

anti-pattern. animation gone wildanimated menus... so 90’s

52

i i i ild

Page 53: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 53/73

anti-pattern. animation gone wildtoo many things animating on hover 

53

i i i ild

Page 54: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 54/73

anti-pattern. animation gone wildWow! What more can I say?

Seems to be either a pixel at a time or going so fast you can’t use it 

54

ti tt i i ild

Page 55: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 55/73

anti-pattern. animation gone wild More from the gratuitous animation department...

55

Page 56: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 56/73

ti tt i ti ild

Page 57: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 57/73

anti-pattern. animation gone wildthe stalker pattern. can also see an example from Netflix community.

57

ti tt t it i ti

Page 58: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 58/73

anti-pattern. gratuitus animation

anti-pattern. name.

58

ti tt t it i ti

Page 59: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 59/73

anti-pattern. gratuitus animation

anti-pattern. name.

59

f t i i ti ild

Page 60: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 60/73

refactoring. animation gone wildTransitions should mean something. They communicate.

Understand the hierarchy of transition communicationRapid movementRapid color changeSlow movementSlow color change

If you are refactoring a wild interface, simply turn off all animations andstart by communicating fully without it, then add it back in one at a

time.

60

anti pattern missed m ments

Page 61: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 61/73

anti-pattern. missed moments

summaryNot providing feedback throughout an interaction. These missed moments can

confuse the user about what to do.

examplesDrag and drop is classic example.

solutionsUse interesting moments grid to think through each moment 

61

anti pattern missed moments

Page 62: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 62/73

anti-pattern. missed moments

62

anti pattern missed moments

Page 63: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 63/73

anti-pattern. missed momentsno feedback during interaction... less “learnable”

63

anti pattern missed moments

Page 64: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 64/73

anti-pattern. missed momentsUsing Y! Photos as example again. Notice missing feedback at key point piles onthe problems.

64

anti pattern missed moments

Page 65: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 65/73

anti-pattern. missed moments

65

anti pattern missed moments

Page 66: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 66/73

anti-pattern. missed momentsTurns out that a number of events exist during drag and drop that we can useto our advantage.

66

refactoring missed moments

Page 67: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 67/73

refactoring. missed momentsMap out all the interesting moments.Use the interaction matrix or other technique to map events to actors on the

page.

Use the moments to communicate.Its the nuance that matters.

Think... "interactive directions" Moment-by-moment directions are the key. Users get lost easily 

67

anti pattern one at a time

Page 68: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 68/73

anti-pattern. one at a time

summaryWhen you can only update small pieces of the interface instead of doing things

in a group.

examplesbackpackit 

68

anti pattern one at a time

Page 69: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 69/73

anti-pattern. one at a timeKey is what is the workflow? One at a time or mutiple operations allowed.

These kind of interfaces (in context tools) always present a problem for doingoperations on multiple items.

69

anti pattern one at a time

Page 70: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 70/73

anti-pattern. one at a timeTakes one at a time check box to the extreme

70

refactoring one-at-a-time

Page 71: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 71/73

refactoring. one-at-a-timeThink about what happens when the data/information scalesIt affects space issues but also affects interaction density.

Think about doing multiple operations at onceBalance with immediacy 

Watch out for in-context tools, in-page actions

These give immediacy but also will trap you into not handling multiple items atonce.

Don't forget about the lowly checkboxNot as sexy, but very servicable.

71

anti-patterns

Page 72: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 72/73

anti-patterns

big ball of mud. meandering way.

borg idiom. tiny targets. mystery meat.buried treasure. hover and cover.

pogo stick navigation. novel notions.against the flow. metaphor mismatch. jabberwocky. 

double duty. linkitus. blind type.

windows aplenty. animation gone wild.misguided misdirections. unmarked hazards. missed

moments. missing scene. one at a time. non-symmetrical actions.

72

Page 73: Development anti-patterns

8/14/2019 Development anti-patterns

http://slidepdf.com/reader/full/development-anti-patterns 73/73

my blog.  looksgoodworkswell.com

 this prez.  billwscott.com/share/presentations/2007/wb2.0/my email.  [email protected]

NETFLIX is hiring!

UI Engineers

 Visual/Interaction DesignersGraphic Designer