Michael Kowalski

258
User interface design for web applications Michael Kowalski Kitsite.com

description

Michael Kowalski's presentation from Future of Web Apps, in London, October 2007.

Transcript of Michael Kowalski

Page 1: Michael Kowalski

User interface designfor web applications

Michael KowalskiKitsite.com

Page 2: Michael Kowalski
Page 3: Michael Kowalski

What we’re going to cover

• What is the difference between designing a webapp and designing a website?

• Why is good user interface design important?

• What are the characteristics of a great user interface?

• What can we learn from interaction design?

• What are some specific techniques that I can use to improve my webapp UI?

• Where is web UI design heading?

Page 4: Michael Kowalski

How is designing a web application different from designing a website?

Q.

Page 5: Michael Kowalski
Page 6: Michael Kowalski

Information

Page 7: Michael Kowalski

Information

Page 8: Michael Kowalski

Information Interaction

Page 9: Michael Kowalski

Web user interface

HTML form controls are the primitives of an application user interface

Page 10: Michael Kowalski

Hey, let’s build the webapp right here!

• Democratisation of user interface development

• Low cost, rapid development

• The web is an open distribution channel

• Anybody can build a web app!

Page 11: Michael Kowalski
Page 12: Michael Kowalski
Page 13: Michael Kowalski
Page 14: Michael Kowalski

Alan Cooper

Page 15: Michael Kowalski

Alan Cooper

“The limitations and challenges of web interactivity... set interaction design back several years”

Page 16: Michael Kowalski

Web constraints

Page 17: Michael Kowalski

Web constraintsannoyances

Page 18: Michael Kowalski

Living on the network

Page 19: Michael Kowalski

Living on the network

• Connectivity

Page 20: Michael Kowalski

Living on the network

• Connectivity

• Network latency

Page 21: Michael Kowalski

Living on the network

• Connectivity

• Network latency

• Source code down the wire

Page 22: Michael Kowalski

Living in the browser

x

Page 23: Michael Kowalski

• Security sandbox

• Box-model rendering

• Limited widget setNo access to system menusNo rich text editing No drawing

• Typographically limited

Living in the browser

x

Page 24: Michael Kowalski

My pet hates

• <select multiple>!

• Backspace key for navigation!

• Form controls are modal!

• CSS...

Page 25: Michael Kowalski

But if web UI sucks so badly...

Page 26: Michael Kowalski

But if web UI sucks so badly...

how come the web is winning?

Page 27: Michael Kowalski

Why web apps became viable

• Cross-platform consistency driven by standards

• Asynchrony

• Faster networks and computers

• “Worse is better”

Page 28: Michael Kowalski

Innovation from the web

Hyperlinks

navigationaddressabilitybookmarks

Findability

Embedding

portletswidgets

Folksonomy

Social apps

sharingcollaboration

Page 29: Michael Kowalski

Why is good user interface design important?

Q.

Page 30: Michael Kowalski
Page 31: Michael Kowalski

• The rise of utility computing (S3, etc) and the adoption of good web frameworks has reduced web development costs.

Page 32: Michael Kowalski

• The rise of utility computing (S3, etc) and the adoption of good web frameworks has reduced web development costs.

• It’s never been cheaper or easier to get an idea to market.

Page 33: Michael Kowalski

• The rise of utility computing (S3, etc) and the adoption of good web frameworks has reduced web development costs.

• It’s never been cheaper or easier to get an idea to market.

• In a more competitive market, emphasis will shift from executing first to executing best.

Page 34: Michael Kowalski

• The rise of utility computing (S3, etc) and the adoption of good web frameworks has reduced web development costs.

• It’s never been cheaper or easier to get an idea to market.

• In a more competitive market, emphasis will shift from executing first to executing best.

• The quality of user experience is becoming the significant differentiator.

Page 35: Michael Kowalski

• The rise of utility computing (S3, etc) and the adoption of good web frameworks has reduced web development costs.

• It’s never been cheaper or easier to get an idea to market.

• In a more competitive market, emphasis will shift from executing first to executing best.

• The quality of user experience is becoming the significant differentiator.

• Also, scaling your app depends on not having to handle support requests (or at least, not linearly).

Page 36: Michael Kowalski

Let’s not reinvent wheels

We can take advantage of many years of research in interaction design.

Plus we can look at best practice on the web today.

Page 37: Michael Kowalski

What are the characteristics of a good user interface?

Q.

Page 38: Michael Kowalski

simple

Page 39: Michael Kowalski

simpleconsistent

Page 40: Michael Kowalski

simpleconsistent

polite

Page 41: Michael Kowalski

simpleconsistent

polite

responsive

Page 42: Michael Kowalski

simpleconsistent

polite

pragmaticresponsive

Page 43: Michael Kowalski

simpleconsistent

polite

aestheticallypleasing

responsivepragmatic

Page 44: Michael Kowalski
Page 45: Michael Kowalski

Interaction design concepts

Page 46: Michael Kowalski

Concept 1 The user

Page 47: Michael Kowalski

You are not the user!

Page 48: Michael Kowalski

Real world process or object

Page 49: Michael Kowalski

The implementation model

Page 50: Michael Kowalski

The user model

Page 51: Michael Kowalski

The user model

Page 52: Michael Kowalski

The user model

Mismatch between the user model and the implementation model is a source of usability problems

Page 53: Michael Kowalski

Users have different levels of expertise

Novice Intermediate Expert

Page 54: Michael Kowalski

Users have different levels of expertise

Novice Intermediate Expert

Page 55: Michael Kowalski

Users have different levels of expertise

Novice Intermediate Expert

Page 56: Michael Kowalski

The rule of 7

Page 57: Michael Kowalski

The rule of 7

• Short term memory holds around 7 distinct things

• Fades in 10 - 20 seconds

Page 58: Michael Kowalski

Spolsky’s 3 laws of users

People can’t control the mouse

Page 59: Michael Kowalski

Spolsky’s 3 laws of users

People can’t read

People can’t remember

People can’t control the mouse

Page 60: Michael Kowalski

A polite interface assumes the user is busy and has more important things to do than think about how the app works.

Page 61: Michael Kowalski

A polite interface assumes the user is busy and has more important things to do than think about how the app works.

• Talks the user’s language

• Designed around the user’s conceptual model

• Focused on achieving user goals

• Is tolerant and forgiving

Page 62: Michael Kowalski

Concept 2 Metaphor

Page 63: Michael Kowalski

Metaphor A shopping basket

• Add to the basket

• View the basket

• Go to the check out

Page 64: Michael Kowalski

Metaphor can be a useful way of gluing together the user model and the implementation model

• Metaphor gives developers a language to discuss the model

• Warning: metaphors can get you in trouble if you follow them too literally

Page 65: Michael Kowalski

False metaphor

Page 66: Michael Kowalski

Concept 3 Affordance

Page 67: Michael Kowalski

Affordance is...“the perceived and actual properties of the thing... that determine just how the thing could possibly be used”

Don Norman, The Design of Everyday Things

Page 68: Michael Kowalski

A tale of two buttons

Save Save

Page 69: Michael Kowalski

Save

A tale of two buttons

Save

Page 70: Michael Kowalski

Save

A tale of two buttons

Save

Page 71: Michael Kowalski

Save

A tale of two buttons

Save

Page 72: Michael Kowalski

Save

A tale of two buttons

Save

Page 73: Michael Kowalski

Save

A tale of two buttons

Save

Page 74: Michael Kowalski

Save

A tale of two buttons

Save

Page 75: Michael Kowalski

Save

A tale of two buttons

SaveSave

Page 76: Michael Kowalski

The #1 affordance on the web

Home | Help | Your profile

Page 77: Michael Kowalski

The #1 affordance on the web

• This is a learned affordance

Home | Help | Your profile

Page 78: Michael Kowalski

New affordances evolve

Page 79: Michael Kowalski

Fitt’s Law

whereT is the average time taken to complete the movement.a and b are empirical constants, and can be determined by fitting a straight line to measured data.D is the distance from the starting point to the centre of the target.

T = a + b log2( +1)DW

Page 80: Michael Kowalski

Fitt’s Law

T = a + b log2( +1)DW

Page 81: Michael Kowalski

Fitt’s Law

T = a + b log2( +1)DW

Targets that are smaller and/or further away require more time to acquire.

Page 82: Michael Kowalski

Bigger targets are better

Browse Search

Page 83: Michael Kowalski

Bigger targets are better

Browse Search

Page 84: Michael Kowalski

Bigger targets are better

Browse Search

Page 85: Michael Kowalski

Bigger targets are better

Browse Search

Page 86: Michael Kowalski

Affordance techniques

• Bevelled edges and gradients on buttons

• Texture, eg. grippy corners on draggables

• <label for>

• Tooltips (via title attribute on <a> tags)

• Cursor hinting

Page 87: Michael Kowalski
Page 88: Michael Kowalski

Concept 4 Excise

Page 89: Michael Kowalski

Excise is noise in the interface

• A “cognitive tax” on the user

• Effort that is not directed towards the users’ goals

• Frequently exposes the underlying implementation model

• Satisfies the needs of the technology rather than the user

• Visual clutter is excise

• Customisation is usually excise

Page 90: Michael Kowalski
Page 91: Michael Kowalski

Too much affordance is exciseTherefore:

• Trade off affordance against excise to prioritise more frequent tasks

• Provide extra affordance transiently, eg. on mouseover

• Reduce the affordance on less commonly used controls

Page 92: Michael Kowalski

Using links for commands

• In a form, hyperlinks have less affordance than buttons, so can be used to reduce excise.

• Use a different colour to distinguish command links from navigational links.

Cancel Save

Page 93: Michael Kowalski

Use progressive disclosure to reduce excise

Show more

Progressive disclosure

Page 94: Michael Kowalski

Use progressive disclosure to reduce excise

Show more Show less

Progressive disclosure

• Disclosure arrows

• Hyperlinks to popups or overlays

• Dropdowns

In a goal-oriented design, not every function has to be accessible from every screen.

Page 95: Michael Kowalski
Page 96: Michael Kowalski

Concept 5 Modes

Page 97: Michael Kowalski

Modes

The same gesture has different meanings depending on what mode the application is in

Page 98: Michael Kowalski

Modes

That’s the stupidest thing I ever heard!

I agree with every word of your brill...

Buy Vi@gra from us!!!

Approve Reject

Page 99: Michael Kowalski

Modes

That’s the stupidest thing I ever heard!

I agree with every word of your brill...

Buy Vi@gra from us!!!

Approve Reject

Modal Choose the command mode first (eg. “Approve” and then select the item to action.

Page 100: Michael Kowalski

Modes

That’s the stupidest thing I ever heard!

I agree with every word of your brill...

Buy Vi@gra from us!!!

Approve Reject

Modal Choose the command mode first (eg. “Approve” and then select the item to action.Modeless Make a selection first, and then choose a command to apply to that selection.

Page 101: Michael Kowalski

Modes

Page 102: Michael Kowalski

Modes

• With a few exceptions, modes are bad

Page 103: Michael Kowalski

Modes

• With a few exceptions, modes are bad

• The exceptions: graphics and other drawing apps

Page 104: Michael Kowalski

Modes

• With a few exceptions, modes are bad

• The exceptions: graphics and other drawing apps

• Transient modes are less bad

Page 105: Michael Kowalski

Modes

• With a few exceptions, modes are bad

• The exceptions: graphics and other drawing apps

• Transient modes are less bad

• If you are using modes, then the current mode should be visible right where the user is looking (eg. by changing the cursor).

Page 106: Michael Kowalski
Page 107: Michael Kowalski

Concept 6 Posture

Page 108: Michael Kowalski

What is posture?

• Defined by Alan Cooper in About Face

• Identified 4 different postures for apps

• Posture relates to amount of attention that a user will give the application

Page 109: Michael Kowalski

Sovereign

Page 110: Michael Kowalski

Transient

Page 111: Michael Kowalski

Auxiliary

Page 112: Michael Kowalski

Daemonic

Page 113: Michael Kowalski

Immersive

Page 114: Michael Kowalski

Concept 7 Preattention

Page 115: Michael Kowalski

Preattention variables

• Hard-wired rules of human perception

• Things we see immediately, without conscious thought

Page 116: Michael Kowalski

Visual properties

Colour Intensity

Texture SymmetryMotion

Shape

Page 117: Michael Kowalski

Visual properties

Colour Intensity

Texture SymmetryMotion

Shape

Page 118: Michael Kowalski

Spot the odd one out

Page 119: Michael Kowalski

Spot the odd one out

Page 120: Michael Kowalski

Grouping

Page 121: Michael Kowalski

Use grouping and visual properties to:

• Prioritise what’s important and most useful

• Associate related commands or information

• Distinguish between controls that behave differently

• Establish consistency

Page 122: Michael Kowalski

• Buttons are variably sized

• Poor alignment and inconsistent guttering

• Giftbox icon is excise

• Colours used inconsistently

Bad Amazon

Page 123: Michael Kowalski

Concept 8 Locus

Page 124: Michael Kowalski
Page 125: Michael Kowalski
Page 126: Michael Kowalski

I’m looking here

Page 127: Michael Kowalski
Page 128: Michael Kowalski

I’ll notice this

Page 129: Michael Kowalski
Page 130: Michael Kowalski

I probably won’t notice anything here

Page 131: Michael Kowalski

Concept 9 Feedback

Page 132: Michael Kowalski

Communication

FeedbackVisual cues Action

time

Page 133: Michael Kowalski

Communication

FeedbackVisual cues Action(“feedforward”)

time

Page 134: Michael Kowalski

After 0.25 seconds, the user will assume that it hasn’t worked and try again

Page 135: Michael Kowalski

Feedback rules

Page 136: Michael Kowalski

Feedback rules• If an action will take more than 0.1 sec to

complete, visually indicate that it has started.

Page 137: Michael Kowalski

Feedback rules• If an action will take more than 0.1 sec to

complete, visually indicate that it has started.

• Use spinners or progress bars for actions that

will take more than 1 second.

Page 138: Michael Kowalski

Feedback rules• If an action will take more than 0.1 sec to

complete, visually indicate that it has started.

• Use spinners or progress bars for actions that

will take more than 1 second.

• Document load events should not take more

than 10 seconds.

Page 139: Michael Kowalski

Feedback rules• If an action will take more than 0.1 sec to

complete, visually indicate that it has started.

• Use spinners or progress bars for actions that

will take more than 1 second.

• Document load events should not take more

than 10 seconds.

• Acknowledge completion modelessly

Page 140: Michael Kowalski

Feedback rules• If an action will take more than 0.1 sec to

complete, visually indicate that it has started.

• Use spinners or progress bars for actions that

will take more than 1 second.

• Document load events should not take more

than 10 seconds.

• Acknowledge completion modelessly

• If completion will take longer than a few seconds, the new status should be displayed non-transiently

Page 141: Michael Kowalski

Now Current state

• What’s happening now?

• Am I logged in?

• Are my friends logged in?

• Is there new activity I should know about?

Page 142: Michael Kowalski

Next Visual cues

• What’s going to happen next?

• What will happen if I click this?

Page 143: Michael Kowalski

Concept 10 Icons

Page 144: Michael Kowalski

Icons

Icons can be useful because:

• Don’t take up much screen real state

• Take advantage of human spatial recall

• They have become a familiar idiom

• Can add colour and visual interest

Page 145: Michael Kowalski

The trouble with icons

Page 146: Michael Kowalski

The trouble with icons

• In a modeless interface, most command affordances will be verbs.

Page 147: Michael Kowalski

The trouble with icons

• In a modeless interface, most command affordances will be verbs.

• Verbs are hard to draw.

Page 148: Michael Kowalski

The trouble with icons

• In a modeless interface, most command affordances will be verbs.

• Verbs are hard to draw.

• Most icons are therefore hard to interpret without a label.

Page 149: Michael Kowalski

The trouble with icons

• In a modeless interface, most command affordances will be verbs.

• Verbs are hard to draw.

• Most icons are therefore hard to interpret without a label.

• Icons work best in sovereign posture applications where space is at premium and users have the time to learn the icons.

Page 150: Michael Kowalski

Rules for using icons

• Use icons sparingly.

• Use icons that convention has made familiar (eg. document icons)

• Label your icons, using the app vocabulary. Avoid puns!

• Don’t forget your app’s colour scheme and lighting angle. You may need a larger palette of colours for hinting - but still keep it constrained.

• Get professionals to design them!

Page 151: Michael Kowalski
Page 152: Michael Kowalski

Concept 11 Learnability

Page 153: Michael Kowalski
Page 154: Michael Kowalski

Learnability is...

• what we usually mean when we say “intuitive.”

• Because most web apps have a transient posture, this is particularly important - your app has to be relearnable as well as learnable.

• Warning Too much guidance can be excise

Page 155: Michael Kowalski

Concept 12 Direct manipulation

Page 156: Michael Kowalski

Direct manipulation

Page 157: Michael Kowalski

Direct manipulation

• The user acts directly on a visual representation of an object, and immediately sees the result.

Page 158: Michael Kowalski

Direct manipulation

• The user acts directly on a visual representation of an object, and immediately sees the result.

• Examples:

• Drag and drop

• Drag resize

• Drawing tools

Page 159: Michael Kowalski

Direct manipulation

• The user acts directly on a visual representation of an object, and immediately sees the result.

• Examples:

• Drag and drop

• Drag resize

• Drawing tools

• Downside: generally poor affordance

Page 160: Michael Kowalski

Evaluating web app UI

Divide up into groups of about 4

Pick a web app

Evaluate affordance, excise and feedback

Look for good and bad points

Suggest at least one improvement

15 minutes

Page 161: Michael Kowalski

<br/>

Page 162: Michael Kowalski

Techniques

Page 163: Michael Kowalski

Technique 1 UI first

Page 164: Michael Kowalski

Design the user experience first

Page 165: Michael Kowalski

Design the user experience first

• Before user research?

Page 166: Michael Kowalski

Design the user experience first

• Before user research?

• Before data modelling?

Page 167: Michael Kowalski

Design the user experience first

• Before user research?

• Before data modelling?

• Before technology choices?

Page 168: Michael Kowalski

Design the user experience first

• Before user research?

• Before data modelling?

• Before technology choices?

Yes! Avoid getting railroaded by the implementation model

Page 169: Michael Kowalski

User research

• Formal user research can be expensive, tricky and inconclusive

• Long-tail users might be hard to come by

• Informal research with a handful of users can give useful insights

• Beta launching can get early feedback from real users

• Apple vs Microsoft

Page 170: Michael Kowalski

Technique 2 Personas

Page 171: Michael Kowalski

Sarah Turner

“Sooner is better.”

Occupation: Head of PR

Wants to get prior approval on new corporate comms. Worries that her staff will not use the new app unless it’s really simple. Must have controlled costs. Sarah can be quite demanding.

Justin Finch

“I’m not much of a technology buff, to be honest”

Occupation: Bookseller

Wants to get info about new releases as painlessly as possible. Low expectations: thinks the app will be pointlessly complicated. Dislikes hard sell from publishers; wants to make up his own mind.

Page 172: Michael Kowalski

Sarah Turner

“Sooner is better.”

Occupation: Head of PR

Wants to get prior approval on new corporate comms. Worries that her staff will not use the new app unless it’s really simple. Must have controlled costs. Sarah can be quite demanding.

Justin Finch

“I’m not much of a technology buff, to be honest”

Occupation: Bookseller

Wants to get info about new releases as painlessly as possible. Low expectations: thinks the app will be pointlessly complicated. Dislikes hard sell from publishers; wants to make up his own mind.• Not a market segment

• A representative individual

Page 173: Michael Kowalski

Technique 3 Goal-directed design

Page 174: Michael Kowalski

Goal-directed design

Task

Task

Task

Task

Task

Goal

Page 175: Michael Kowalski

Goal-directed design

May not be appropriate in social spaces

Task

Task

Task

Task

Task

Goal

Page 176: Michael Kowalski

Goal-directed design

• Determine goals

• Break down into tasks

• Aim for 1 task = 1 screen

• Every digression is an obstacle to the user

Step 1 Step 2 Step 3 Done

Page 177: Michael Kowalski
Page 178: Michael Kowalski

“Just start”

• Occasional use or transient posture apps need to be optimised for novices over intermediates.

• The web is your marketing and distribution channel. “Try-before-buy” means barriers to entry need to be as low as possible.

• Zero configuration is the ideal.

Page 179: Michael Kowalski
Page 180: Michael Kowalski

Technique 4 Paper prototyping

Page 181: Michael Kowalski

Paper prototypingBasic materials

Page 182: Michael Kowalski

Paper prototypingIn practice

• Use role play

• Encourage “think-aloud”

• If user testing with real users, don’t cheat: the “Computer” must not speak. Set goals and leave user to it

Page 183: Michael Kowalski

Paper prototypingAdvantages

• It’s really cheap. Really, really cheap.

• You can iterate on the spot

• Can be used for brainstorming as well as proof of concept testing

• Very flexible, can be adapted to suit skill levels of participants

• Good for working out what is essential, and what can be descoped

Page 184: Michael Kowalski

Other prototyping techniques

• Presentation software

• Quick-and-dirty software mockups

Page 185: Michael Kowalski

Other prototyping techniques

• Presentation software

• Quick-and-dirty software mockups

Beware the implementation model!

Page 186: Michael Kowalski

Technique 5 Grid systems

Page 187: Michael Kowalski

Grid systems

• Enforce consistency, exploit spatial memory

• All grid measurements defined in terms of an atomic unit (eg. 10 pixels)

• Minimise number of different layouts based on the grid

• Yahoo! and Google both provide useful starting points

Page 188: Michael Kowalski

Atom10 pixels

10 20 10180540

120Header width

Gutter

Example grid

440Overlay width

Overlay height320

Page 189: Michael Kowalski
Page 190: Michael Kowalski
Page 191: Michael Kowalski

Squint tests

• Take a snapshot of your interface

• Greyscale it in Photoshop

• Blur until you can’t make out detailed structure

Page 192: Michael Kowalski

Squint tests

• Take a snapshot of your interface

• Greyscale it in Photoshop

• Blur until you can’t make out detailed structure

OR

• Just sit back a bit and squint

Page 193: Michael Kowalski
Page 194: Michael Kowalski
Page 195: Michael Kowalski
Page 196: Michael Kowalski

Technique 6 Modular design

Page 197: Michael Kowalski

Modularity

• Aim for “deep consistency” by reusing design elements throughout your app

• Modules range from single control elements (a button) to complex composite widgets.

• Include abstract structural elements like a “sidebar box” as well as behaviours

• Develop an application lexicon

Page 198: Michael Kowalski

Colour swatches

• Add colour late in the design process.

• Use a small palette: 2 or 3 base colours.

• Use a small number of different tints of the base colours, eg. 100%, 80%, 40%

• Greyscale the coloured design to check contrast and intensity.

Page 199: Michael Kowalski

Consistent light source

Mac OS9to top left of screen

Mac OS Xdirectly above, slightly forward

OK OK

Page 200: Michael Kowalski
Page 201: Michael Kowalski

Technique 7 Copywriting

Page 202: Michael Kowalski

Copywriting is interface design

• Stick to the metaphor (within reason)

• Use the user’s language

• Avoid technical jargon

• Use consistent terminology: write a thesaurus

• Polite messages

• Positive actions in checkbox labels

• Keep it brief

Page 203: Michael Kowalski

Technique 8 Triage

Page 204: Michael Kowalski

Is that really necessary?

• Prune visual clutter and gratuitous motion

• Avoid forcing user to toggle back and forth between mouse and keyboard

• Avoid user preferences: modal excise

• Monotony as a virtue: only one way to perform any particular action

If you remove an interface element, will the interface still function?

Q.

Page 205: Michael Kowalski

Technique 9 Ajax

Page 206: Michael Kowalski

Ajax & Performance

• Avoid full page reloads

• Deferral Fetch additional data after the screen has loaded

• Progressive loading Incrementally fetch data as it is requested

Page 207: Michael Kowalski

Ajax & Excise

• Use transient affordances at the locus of attention

• Use disclosure to reveal additional guidance or advanced options only on request

Page 208: Michael Kowalski
Page 209: Michael Kowalski

Ajax & Modes

• Provide modeless feedback and state information

• Use overlays for modal or auxiliary interactions

Page 210: Michael Kowalski

Using overlays

Page 211: Michael Kowalski

Using overlays

• Overlays have displaced modal dialogs in many webapps

Page 212: Michael Kowalski

Using overlays

• Overlays have displaced modal dialogs in many webapps

• Overlays became popular because:

• They avoid popup blockers

• They can be more attractively styled than the default Javascript alert windows, and can load new content

• New windows can be weirdly slow to render on some platforms

• They avoid accidental dismissal problems.

Page 213: Michael Kowalski

Modeless overlay

Page 214: Michael Kowalski

Modal overlay

Page 215: Michael Kowalski

Rules for modal overlays

• Don’t use for informational or confirmation messages: these should be modeless

• Don’t ask questions to which you already know the answer (eg, where “OK” is the only option)

• Use sparingly: don’t cry wolf

• Remember overlays are not bookmarkable

• Don’t try and emulate the OS

Page 216: Michael Kowalski

Ajax & AnimationMotion is a preattentive variable.

Page 217: Michael Kowalski

Ajax & Animation

• Just because you can, doesn’t mean you should!

Motion is a preattentive variable.

Page 218: Michael Kowalski

Ajax & Animation

• Just because you can, doesn’t mean you should!

• Animation introduces latency and is distracting

Motion is a preattentive variable.

Page 219: Michael Kowalski

Ajax & Animation

• Just because you can, doesn’t mean you should!

• Animation introduces latency and is distracting

• Use it when you want to distract the user, ie. shift the user’s locus of attention

Motion is a preattentive variable.

Page 220: Michael Kowalski

Ajax & Animation

• Just because you can, doesn’t mean you should!

• Animation introduces latency and is distracting

• Use it when you want to distract the user, ie. shift the user’s locus of attention

• Good use: changes to screen layout (eg. opening a drawer or palette)

Motion is a preattentive variable.

Page 221: Michael Kowalski
Page 222: Michael Kowalski

Technique 10 Memory

Page 223: Michael Kowalski

Things to remember

Page 224: Michael Kowalski

Things to remember

• Configuration options

Page 225: Michael Kowalski

Things to remember

• Configuration options

• Paginated lists: remember page number

Page 226: Michael Kowalski

Things to remember

• Configuration options

• Paginated lists: remember page number

• Hierarchical lists: remember open nodes

Page 227: Michael Kowalski

Things to remember

• Configuration options

• Paginated lists: remember page number

• Hierarchical lists: remember open nodes

• MRU - Most Recently Used

Page 228: Michael Kowalski

Things to remember

• Configuration options

• Paginated lists: remember page number

• Hierarchical lists: remember open nodes

• MRU - Most Recently Used

• MFU - Most Frequently Used

Page 229: Michael Kowalski

Things to remember

• Configuration options

• Paginated lists: remember page number

• Hierarchical lists: remember open nodes

• MRU - Most Recently Used

• MFU - Most Frequently Used

Missed opportunity Remember state between sessions

Page 230: Michael Kowalski
Page 231: Michael Kowalski

Technique 11 Service design

Page 232: Michael Kowalski
Page 233: Michael Kowalski

MyApp

Page 234: Michael Kowalski

MyApp

Page 235: Michael Kowalski

Discovery

Adoption

Community

Support

Page 236: Michael Kowalski

Software as a service

• Web apps are services

• Great! An opportunity to break out of feature bloat cycle, as do not need to sell new features with each upgrade

• Think about service design

Page 237: Michael Kowalski

Service design

• Think about user interaction with app in a broader way than how a session works

• Touchpoints

• Service blueprint

Page 238: Michael Kowalski

User acquisition touchpoint

Page 239: Michael Kowalski

Technique 12 Design patterns

Page 240: Michael Kowalski

Using design patterns

• Consistent internally - but also consistent with usage elsewhere on the web

• Identify relevant patterns on other websites

• O’Reilly’s Designing Interfaces takes a pattern-based approach

• Yahoo! Design Patterns Library

Page 241: Michael Kowalski
Page 242: Michael Kowalski

The future

Page 243: Michael Kowalski

Trends

Page 244: Michael Kowalski

Trends

• Does fashion matter?

Page 245: Michael Kowalski

Trends

• Does fashion matter?

• Gradients, big fonts, drop shadows and rounded corners may stick around

Page 246: Michael Kowalski

Trends

• Does fashion matter?

• Gradients, big fonts, drop shadows and rounded corners may stick around

• Overlays, autocomplete, libraries will be ever more popular

Page 247: Michael Kowalski

Trends

• Does fashion matter?

• Gradients, big fonts, drop shadows and rounded corners may stick around

• Overlays, autocomplete, libraries will be ever more popular

• Guided interfaces will become the norm

Page 248: Michael Kowalski

Trends

• Does fashion matter?

• Gradients, big fonts, drop shadows and rounded corners may stick around

• Overlays, autocomplete, libraries will be ever more popular

• Guided interfaces will become the norm

• The web will increasingly drive innovation on the desktop (tags? bookmarks?)

Page 249: Michael Kowalski
Page 250: Michael Kowalski

Future

Page 251: Michael Kowalski

Future

Widgets

Page 252: Michael Kowalski

Future

WidgetsOffline

Page 253: Michael Kowalski

Future

WidgetsOffline

Charting / vector graphics

Page 254: Michael Kowalski

Future

WidgetsOffline

Charting / vector graphics

Mobile

Page 255: Michael Kowalski

Future

WidgetsOffline

Charting / vector graphics

Mobile

Game design?

Page 256: Michael Kowalski

Future

WidgetsOffline

Charting / vector graphics

Mobile

Game design?

Social space

Page 257: Michael Kowalski

• In the future, most user interface innovation will come from the web

Page 258: Michael Kowalski

end