290 likes | 475 Views
Responsiveness Bloopers. BJ Hardage & Isaac Bailey. Responsiveness Bloopers. BJ Hardage & Isaac Bailey. Responsiveness Bloopers. BJ Hardage & Isaac Bailey. Responsiveness Bloopers. BJ Hardage & Isaac Bailey. Responsiveness Bloopers. BJ Hardage & Isaac Bailey.
E N D
Responsiveness Bloopers BJ Hardage & Isaac Bailey
Responsiveness Bloopers BJ Hardage & Isaac Bailey
Responsiveness Bloopers BJ Hardage & Isaac Bailey
Responsiveness Bloopers BJ Hardage & Isaac Bailey
Responsiveness Bloopers BJ Hardage & Isaac Bailey
Introduction - Responsiveness • Not performance or speed • Lets you know instantly that your actions were received • Lets you estimate how long lengthy computations will take • Frees you to do other things while waiting • Manages queued events intelligently • Performs housekeeping and low-priority tasks in the background • Makes use of idle time to anticipate future requests
Bloopers • 64: Pointer doesn’t keep up with the users movements • 65: Text editor doesn’t keep up with users keystrokes • 66: Buttons don’t acknowledge mouse clicks immediately • 67: Menus, sliders, and scrollbars that lag behind users movements • 68: Moving and sizing doesn’t keep up with users actions • 69: Applications that become unresponsive while doing background work
Bloopers continued • 70: Software that ignores all user input until it finishes the current function • 71: Applications that don’t give busy indicators • 72: Windows that ignore user input while they repaint irrelevant areas • 73: Websites that are loaded with images and are not viewable without high speed internet • 74: Printers and fax machines that cease all operations when out of paper or ink • 75: Software that doesn’t use idle time for background processes
The facts about responsiveness are not widely known • UI designers rarely consider responsiveness during design • Programmers equate responsiveness with performance • Programmers treat user input like machine input
Question • Is it ok to ignore user input in any circumstance? • Yes • Unnecessary • Irrelevant • Can’t be done on time • Waste time and resources
The facts about responsiveness are not widely known • UI designers rarely consider responsiveness during design • Programmers equate responsiveness with performance • Programmers treat user input like machine input • Developers use simple, naive implementations • GUI software tools, components, and platforms are inadequate • Managers hire GUI programmers who lack the required skill
Question • Why don’t managers hire people with responsiveness knowledge? • They don’t think it’s important • Knowledge of multithreading is required • Expensive
Responsiveness is not the same thing as performance • Processing resources are always limited • The UI is a real-time interface • All delays are not equal; the software need not do everything immediately • 0.1 second – the limit for perception of cause-and-effect between events • 1 second – the limit for displaying busy indicators or progress bars • 10 seconds – the amount of time people are willing to spend setting up an operation and starting it
The software need not do tasks in the order in which they were requested • The software need not do everything it was asked to do • Human users are not computer programs
Question • Are all progress indicators created equal? • No • Some give better estimates at when the task will be completed • Although, any progress indicator is better than none
Timely feedback • Acknowledge user input immediately • Provide busy indicators and progress indicators • Some busy indicators are more helpful than others
Timely feedback continued • Progress indicators can be approximate • Display important information first • Fake heavyweight computations
Parallel problem solution • Offload non-time-critical work • Work ahead
Queue optimization • Nonsequential input processing • Flush tasks that have become useless
Dynamic time management • Monitor event queue; adjust strategy if not keeping up with the user • Monitor time compliance; decrease quality or quantity of work to keep up • Predict completion time; decide how to perform the task • Predict time compliance; negotiate quality or whether to do the task at all