Designing for infinity

120
Designing for Infinity -d- Dustin Kirk www.webmetrics.com

description

When faced with endless data and the need to manage it, there are a variety of proven design patterns that will help designers create usable, effecient, and effective interfaces. From advanced distributing workload to avoiding information overload, this presentation reviews techniques that are enabling the highly scalable user interfaces of today and tomorrow.

Transcript of Designing for infinity

Page 1: Designing for infinity

Designing for Infinity

-d- Dustin Kirk

www.webmetrics.com

Page 2: Designing for infinity

1. I grew up on a ranch in South Dakota

2. I started building websites back in 1995

3. Background in CS, Psych, & HCI

4. Sr. UX Designer at Neustar Webmetrics

A bit about me

Designing for InfinityDesigning for Infinity – Dustin Kirk

www.dustinkirk.com

@Dustin_KirkME

Page 3: Designing for infinity

Why Infinity?

Page 4: Designing for infinity

Why Infinity?Designing for Infinity – Dustin Kirk

It’s all about usability at scale!

Page 5: Designing for infinity

Why Infinity?Designing for Infinity – Dustin Kirk

Country:

488 Countries

Welcome to 1995

Page 6: Designing for infinity

Why Infinity?Designing for Infinity – Dustin Kirk

Country:

488 Countries

“It can’t be that bad, everyone does this!”

Page 7: Designing for infinity

Why Infinity?Designing for Infinity – Dustin Kirk

Country:

488 Countries

Alright, we’re looking for Spain.

Page 8: Designing for infinity

Why Infinity?Designing for Infinity – Dustin Kirk

Country:

487 Countries

“Easy, it’s alphabetically sorted!”

Page 9: Designing for infinity

Why Infinity?Designing for Infinity – Dustin Kirk

Country:

488 Countries

Page 10: Designing for infinity

Why Infinity?Designing for Infinity – Dustin Kirk

Country:

488 Countries

18 Keystrokes later…

Page 11: Designing for infinity

Why Infinity?Designing for Infinity – Dustin Kirk

Country:

488 Countries

Don’t do this!

Page 12: Designing for infinity

Why Infinity?Designing for Infinity – Dustin Kirk

Data

Typical Design Patterns

Bad

Great

Small

Usability

Page 13: Designing for infinity

Why Infinity?Designing for Infinity – Dustin Kirk

Data

Usability

Design Patterns For Infinity

Bad

Great

Small

Page 14: Designing for infinity

1. Searching

2. Filtering

3. Infinite Scrolling

4. Context Recognition

5. Distributed Workload

6. Automation

7. Loading Data

8. Navigation

Design Patterns Covered

Designing for InfinityDesigning for Infinity – Dustin Kirk

Page 15: Designing for infinity

Searching

Part 1 of 8

Page 16: Designing for infinity

Searching

Part 1 of 8

“Designing for Infinity 101”

Page 17: Designing for infinity

iOS App StoreSearchingDesigning for Infinity – Dustin Kirk

Page 18: Designing for infinity

iOS App StoreSearchingDesigning for Infinity – Dustin Kirk

“299,000 apps you’ll never know about.”

Page 19: Designing for infinity

iOS App StoreSearchingDesigning for Infinity – Dustin Kirk

Let’s search for flashcards…

Page 20: Designing for infinity

iOS App StoreSearchingDesigning for Infinity – Dustin Kirk

1343 Flashcard Apps

“Whoa! I’ll only see the first 25”

Page 21: Designing for infinity

iOS App StoreSearchingDesigning for Infinity – Dustin Kirk

A Common Mistake…• Relying on search alone

1343 Flashcard Results

Page 22: Designing for infinity

iOS App StoreSearchingDesigning for Infinity – Dustin Kirk

A Common Mistake…• Relying on search alone

1343 Flashcard Results

How would you improve this?

Page 23: Designing for infinity

iOS App StoreSearchingDesigning for Infinity – Dustin Kirk

A Common Mistake…• Relying on search alone

Solution• Use Filters too• Sorting becomes a prominent fixture

1343 Flashcard Results

Page 24: Designing for infinity

Searching & Filtering

Parts 1 & 2 of 8

“Designing for Infinity 101”

Page 25: Designing for infinity

Yelp.comDesigning for Infinity – Dustin Kirk

Searching & Filtering

Page 26: Designing for infinity

Yelp on iPhoneDesigning for Infinity – Dustin Kirk

92 Results

Searching & Filtering

Page 27: Designing for infinity

Yelp on iPhoneDesigning for Infinity – Dustin Kirk

Filtering to the rescue!

92 Results

Searching & Filtering

Page 28: Designing for infinity

iOS App Store & Yelp on iPhoneDesigning for Infinity – Dustin Kirk

Searching & Filtering

Page 29: Designing for infinity

Yelp on iPhoneDesigning for Infinity – Dustin Kirk

Searching & Filtering

Page 30: Designing for infinity

Great Design Pattern For• Searching and Filtering on a smart phone

Key Points• Use Filtering when you have lots of results• Use Sorting too

Yelp on iPhoneDesigning for Infinity – Dustin Kirk

Searching & Filtering

Page 31: Designing for infinity

Yelp on iPhoneDesigning for Infinity – Dustin Kirk

What about the map button?

Searching & Filtering

Page 32: Designing for infinity

Yelp on iPhoneDesigning for Infinity – Dustin Kirk

Devices with GPS allow you to bypass entering in your

location, over and over and over again.

Searching & Filtering

Page 33: Designing for infinity

Google mapsDesigning for Infinity – Dustin Kirk

On a PC you have to manually enter an

address, or zoom in to an area.

Searching & Filtering

Page 34: Designing for infinity

Yelp on iPhoneDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Location based search

Key Points• Utilize GPS to get current location• Allow for entering in other locations• Search results should be visible on map• Redo search when the user moves the map

Searching & Filtering

Page 35: Designing for infinity

SplunkDesigning for Infinity – Dustin Kirk

Searching & Filtering

Page 36: Designing for infinity

SplunkDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Building complex search queries

Key Points• Ability to click on text in search results to drill-down further• Ability to create conditionals with the use of a key press + mouse click• Flexible filtering capabilities (time based + categorical based)

Searching & Filtering

Page 37: Designing for infinity

Mint.comDesigning for Infinity – Dustin Kirk

Searching & Filtering

Page 38: Designing for infinity

Mint.comDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Simplifying search queries

Key Points• Display categorical filters based on the item(s) selected

Searching & Filtering

Page 39: Designing for infinity

Amazon Diamond SearchDesigning for Infinity – Dustin Kirk

Searching & Filtering

Page 40: Designing for infinity

Amazon Diamond SearchDesigning for Infinity – Dustin Kirk

Searching & Filtering

Great Design Pattern For• Filter categorical ranges

Key Points• Allows for setting upper and lower limits• Visual aids teach unfamiliar terms• # of Results is updated in real-time

Page 41: Designing for infinity

Designing for Infinity – Dustin Kirk

Searching & Filtering

Country:

488 Countries

Remember this example?

Page 42: Designing for infinity

GmailDesigning for Infinity – Dustin Kirk

Searching & Filtering

The modern day solution…

Page 43: Designing for infinity

GmailDesigning for Infinity – Dustin Kirk

Searching & Filtering

The modern day solution…

Awesome!

Page 44: Designing for infinity

GmailDesigning for Infinity – Dustin Kirk

Searching & Filtering

The modern day solution…

1995 2011

Page 45: Designing for infinity

GmailDesigning for Infinity – Dustin Kirk

Searching & Filtering

1995 2011

The modern day solution…

Page 46: Designing for infinity

GmailDesigning for Infinity – Dustin Kirk

Searching & Filtering

1995 2011

The modern day solution…

Page 47: Designing for infinity

GmailDesigning for Infinity – Dustin Kirk

Searching & Filtering

Great Design Pattern For• Selecting a single item from a list

Key Points• Replaces combo boxes• Replaces check boxes• Allows user to browse as well as filter• Ability to filter on multiple characters• List updates after each character entered• List keeps up to 10 items in view• List scrolls to show everything• Use keyboard arrows move selection up/down

Page 48: Designing for infinity

GmailDesigning for Infinity – Dustin Kirk

Searching & Filtering

Great Design Pattern For• Selecting commonly selected items

Key Points• Combines both filtering and select into one step• Hides within the menu of ‘select all’• Keep to a minimum # of filters

Page 49: Designing for infinity

GmailDesigning for Infinity – Dustin Kirk

Searching & Filtering

Auto-suggest in Gmail for Contact Disambiguation

Page 50: Designing for infinity

GmailDesigning for Infinity – Dustin Kirk

Searching & Filtering

Close, but it shows only a maximum of 10 items

Auto-suggest in Gmail for Contact Disambiguation

Page 51: Designing for infinity

iPhone SMSDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Contact Disambiguation

Key Points• Results are searched in real-time• Contacts show up one time for each method• Search by both contact name & method• Scroll to view more results

Searching & Filtering

Page 52: Designing for infinity

Designing for Infinity – Dustin Kirk

Searching & Filtering

So what about multi-selection?

?

Page 53: Designing for infinity

Designing for Infinity – Dustin Kirk

Searching & Filtering

So what about multi-selection?

1995

Page 54: Designing for infinity

FacebookDesigning for Infinity – Dustin Kirk

Searching & Filtering

1995 2011

The modern day solution…

Page 55: Designing for infinity

FacebookDesigning for Infinity – Dustin Kirk

Searching & Filtering

Sweet!

Page 56: Designing for infinity

FacebookDesigning for Infinity – Dustin Kirk

Searching & Filtering

Awesome!

Page 57: Designing for infinity

FacebookDesigning for Infinity – Dustin Kirk

Searching & Filtering

View SelectedView All

Page 58: Designing for infinity

FacebookDesigning for Infinity – Dustin Kirk

Searching & Filtering

Great Design Pattern For• Multi-selection

Key Points• Ability to filter on multiple characters• List updates after each character entered• List keeps multiple items in view• List scrolls to show everything• Ability to view list of all selected items

Page 59: Designing for infinity

Infinite Scrolling

Part 3 of 8

Searching & Filtering

Page 60: Designing for infinity

GmailDesigning for Infinity – Dustin Kirk

Infinite Scrolling

Again, welcome to 1995

Page 61: Designing for infinity

GmailInfinite ScrollingDesigning for Infinity – Dustin Kirk

Common Mistake #2• Restricting the number of items that can be selected due to pagination

Page 62: Designing for infinity

Mint.comInfinite ScrollingDesigning for Infinity – Dustin Kirk

Common Mistake #2• Restricting the number of items that can be selected due to pagination

Page 63: Designing for infinity

Neustar WebmetricsDesigning for Infinity – Dustin Kirk

Infinite Scrolling

Page 64: Designing for infinity

Neustar WebmetricsDesigning for Infinity – Dustin Kirk

Infinite Scrolling

Great Design Pattern For• Selectable Data Lists

Key Points• Enables actions to be taken on ALL items• Asynchronous data loading keeps it fast• Buffers additional data to prevent jerky loading• Calculates total height to prevent jerky scrolling• Track scroll position to support back button use

Page 65: Designing for infinity

Bing ImagesInfinite ScrollingDesigning for Infinity – Dustin Kirk

Maxes out at 1000 (of 131,000) images

Page 66: Designing for infinity

Google ImagesDesigning for Infinity – Dustin Kirk

Infinite Scrolling

Not necessary

Page 67: Designing for infinity

FriendlyDesigning for Infinity – Dustin Kirk

Infinite Scrolling

Page 68: Designing for infinity

GmailDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Navigating an Infinite Scrolling page

Key Points• Navigation options float at the edge of the screen above the scrolling content• Includes the ability to jump directly to the top

Infinite Scrolling

Page 69: Designing for infinity

Context Recognition

Part 4 of 8

Infinite Scrolling

Page 70: Designing for infinity

Microsoft WordContext RecognitionDesigning for Infinity – Dustin Kirk

Toolbar Overload

Page 71: Designing for infinity

Microsoft WordContext RecognitionDesigning for Infinity – Dustin Kirk

Hide & Seek Menus

Page 72: Designing for infinity

Microsoft WordContext RecognitionDesigning for Infinity – Dustin Kirk

Page 73: Designing for infinity

Microsoft WordDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Simplifying menus and toolbars

Key Points• Use context to hide/show content appropriate menus• Adjust icon size the most used items are easy to locate and click• Allow the menu to resize based on screen real-estate to maximize shortcuts• Use visuals in drop-down menus to aid in quick decision making

Context Recognition

Page 74: Designing for infinity

Wufoo.comDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Providing Help

Key Points• Helps users in decision making• Contextual help only appears when it is relevant• Eliminates need for external help documentation for users• Keeps users in the ‘zone’ and doesn’t require leaving the application.

Context Recognition

Page 75: Designing for infinity

ZimbraContext RecognitionDesigning for Infinity – Dustin Kirk

Page 76: Designing for infinity

ZimbraDesigning for Infinity – Dustin Kirk

Context Recognition

Great Design Pattern For• Providing Just-In-Time information/tools

Key Points• Reduces steps to access additional information• Keeps user engaged within the application

Page 77: Designing for infinity

Distributing Workload

Part 5 of 8

Context Recognition

Page 78: Designing for infinity

Designing for Infinity – Dustin Kirk

Distributing Workload

100% 20%

5 people1 person

Page 79: Designing for infinity

WikipediaDesigning for Infinity – Dustin Kirk

Distributing Workload

Page 80: Designing for infinity

WikipediaDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Large scale public projects

Key Points• Distributes work across people willing to volunteer time and effort• Enables general public to contribute and govern• Works well for collaboration and keeping up with fast moving events

Distributing Workload

Page 81: Designing for infinity

Galaxy ZooDesigning for Infinity – Dustin Kirk

Distributing Workload

Page 82: Designing for infinity

Galaxy ZooDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Overcoming weaknesses in computer vision

Key Points• Take advantage of people’s ability to easily discern objects visually• Provide users simple options to classify objects

Distributing Workload

Page 83: Designing for infinity

Mechanical TurkDesigning for Infinity – Dustin Kirk

Distributing Workload

Page 84: Designing for infinity

Mechanical TurkDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Outsourcing tasks cheaply

Key Points• Easy way to outsource simple tasks that require a human• Pay for services people would not generally volunteer for

Distributing Workload

Page 85: Designing for infinity

ESP GameDesigning for Infinity – Dustin Kirk

Distributing Workload

Page 86: Designing for infinity

ESP GameDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Acquiring additional data

Key Points• Simple tasks can become fun through a social game• Use multiple data points to validate reliability of contributions

Distributing Workload

Page 87: Designing for infinity

Automation

Part 6 of 8

Distributing Workload

Page 88: Designing for infinity

Designing for Infinity – Dustin Kirk

Automation

100%

Manual

Manual labor is costly

Page 89: Designing for infinity

Designing for Infinity – Dustin Kirk

Automation

20% 80%

AutomationManual

Automation eases manual input

Page 90: Designing for infinity

Designing for Infinity – Dustin Kirk

Automation

5% 80%

AutomationManual

15%

Crowdsourcing

All together they reduce labor even further

Page 91: Designing for infinity

iPhoto FacesDesigning for Infinity – Dustin Kirk

Automation

Page 92: Designing for infinity

iPhoto FacesAutomationDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Augmenting manual tasks

Key Points• Enable people to classify items• Use learning algorithms to identify patterns• Classify the remaining items automatically• Allow users to confirm changes and correct mistakes

Page 93: Designing for infinity

iPhotoAutomationDesigning for Infinity – Dustin Kirk

Facebook should auto-tag photos

Page 94: Designing for infinity

GmailAutomationDesigning for Infinity – Dustin Kirk

Spam, Spam, & more Spam

Page 95: Designing for infinity

GmailAutomationDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Reducing information overload

Key Points• Enable people to provide identify unwanted data• Use learning algorithms to identify patterns• Prevent unwanted data from appearing to others

Page 96: Designing for infinity

SporeDesigning for Infinity – Dustin Kirk

Automation

Page 97: Designing for infinity

SporeAutomationDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Create Unique Experiences

Key Points• Reduce upfront work by using procedural algorithms• Provide users with customization tools• Enables diversity by generating music, movement, & texturing on the fly

Page 98: Designing for infinity

Pandora RadioDesigning for Infinity – Dustin Kirk

Automation

Page 99: Designing for infinity

Pandora RadioAutomationDesigning for Infinity – Dustin Kirk

Need more input!

Page 100: Designing for infinity

NetflixDesigning for Infinity – Dustin Kirk

Automation

Page 101: Designing for infinity

NetflixAutomationDesigning for Infinity – Dustin Kirk

Relying heavily on automated suggestions limits discoverability.

Page 102: Designing for infinity

Amazon.comDesigning for Infinity – Dustin Kirk

Automation

Page 103: Designing for infinity

Amazon.comAutomationDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Enable discovery through recommendations

Key Points• Suggestions should augment searching and filtering tools

Page 104: Designing for infinity

Loading Data

Part 7 of 8

Automation

Page 105: Designing for infinity

Delicious LibraryDesigning for Infinity – Dustin Kirk

Loading Data

Page 106: Designing for infinity

Delicious LibraryLoading DataDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Avoiding work duplication

Key Points• Use APIs to pull in 3rd party data

Page 107: Designing for infinity

RoambiDesigning for Infinity – Dustin Kirk

Loading Data

Page 108: Designing for infinity

Mechanical TurkLoading DataDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Bulk loading data

Key Points• Use pattern recognition to identify data structures• Automate data importing• Provide tools to make adjustments and correct errors

Page 109: Designing for infinity

Navigation

Part 8 of 8

Loading Data

Page 110: Designing for infinity

Google FinanceDesigning for Infinity – Dustin Kirk

Navigation

Page 111: Designing for infinity

Google FinanceNavigationDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Navigating Timelines

Key Points• Ability to see the overall timeline• Ability to set zoom level (day, month, year, custom)• Secondary view showing zoomed in timeline

Page 112: Designing for infinity

Microsoft PivotDesigning for Infinity – Dustin Kirk

Navigation

Page 113: Designing for infinity

Microsoft PivotNavigationDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Exploring Data

Key Points• Ability to visual all data types using bar chart• Ability to filter data categories, choose data source to sort, and ability to zoom• Ability to represent all data in a visual manner

Page 114: Designing for infinity

Windows Media CenterNavigationDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Navigating time linearly

Key Points• Accelerates scrolling the longer you hold a button down• Useful when control options are limited• Provides a broader view of time as scrolling speeds up

Page 115: Designing for infinity

iPhone ContactsNavigationDesigning for Infinity – Dustin Kirk

Great Design Pattern For• Navigating alphabetically

Key Points• Floating index layer allows jumping to a letter• List updates in real-time• Heading always remains at the top• Touch enables fast and slow scrolling

Page 116: Designing for infinity

Concluding Notes

Navigating

Page 117: Designing for infinity

1. Searching

2. Filtering

3. Infinite Scrolling

4. Context Recognition

5. Distributed Workload

6. Automation

7. Loading Data

8. Navigation

Patterns Covered

Concluding NotesDesigning for Infinity – Dustin Kirk

Page 118: Designing for infinity

iTunesConcluding NotesDesigning for Infinity – Dustin Kirk

Page 119: Designing for infinity

1. When designing UIs, think about limits

2. Utilize patterns that have been proven by others

3. Keep the innovation going and find new patterns

View these slides online and share them with otherswww.dustinkirk.com/infinity/

@Dustin_Kirk

Takeaway Tips

Concluding NotesDesigning for Infinity – Dustin Kirk

Page 120: Designing for infinity

Designing for Infinity

-d- Dustin Kirk

www.webmetrics.com