Designing Responsive
Software Despite Performance Limits
Jeff Johnson
UI Wizards, Inc.
www.uiwizards.com
Reasons for Unresponsive Software
- Responsiveness is often equated with performance.
- UI designers rarely consider responsiveness during design.
- Developers use simple architectures & naive solutions
that are easy to program but bad for responsiveness.
- User input is often treated like machine input.
Insights that Suggest Solutions
- Performance need not restrict responsiveness.
- The user interface is a real-time interface.
- The system need not respond immediately to everything.
- Human users are not computer programs.
Techniques of Responsive Software
1. Timely feedback
ACK input immediately
Provide busy indicators or progress indicators
Show important info first
Fake heavyweight computations
2. Parallel problem solution
3. Queue optimization
4. Dynamic time-management
Monitor event queue; adjust strategy or resources if
more than N events behind.
Monitor time-compliance; decrease quality or quantity
to keep up.
Predict response time; decide whether to fork or not
to fork.
Predict time-compliance; negotiate quality, whether
to do task at all.
Readings on User-Interface Responsiveness
Compiled by Jeff Johnson, Ph.D.
UI Wizards, Inc.
www.uiwizards.com
Design Guidelines Books That Discuss User-Interface Responsiveness
- Bickford, P., Interface Design: The Art of Developing
Easy-to-Use Software, 1997, Chestnut Hill, Massachusetts:
Academic Press.
- Flanders, V., and Willis, M. Web Pages that Suck: Learning
Good Design by Looking at Bad Design, 1998, San Francisco:
Sybex Inc. [See also: www.WebPagesThatSuck.com.]
- Johnson, J., GUI
Bloopers: Don'ts and Dos for Software Developers and Web Designers,
2000, Morgan Kaufmann.
- Nielsen, J., Designing Excellent Websites: The Practice
of Simplicity, 1999, Indianapolis: New Riders Publishing.
[See also: www.useit.com.]
- Smith, S.L. and Mosier, J.N. "Guidelines for Designing
User Interface Software," Technical Report ESD-TR-86-278,
1986, Springfield, VA: National Technical Information Service.
Research on User-Interface Responsiveness
- Barber, R. and Lucas, H. "System Response Time, Operator
Productivity, and Job Satisfaction", Communications of
the ACM, November 1983, 26(11), pages 972-986.
- Brady, J.T. "A theory of productivity in the creative
process", IEEE Computer Graphics and Applications,
May 1986, 6(5), pages 25-34.
- Carroll, J. and Rosson, M. "Beyond MIPS: Performance
is not Quality", BYTE, 1984, pages 168-172.
- Dix, A. "The Myth of the Infinitely Fast Machine",
People and Computers III: Proceedings of HCI87,
Cambridge University Press, pages 215-228, www.soc.staffs.ac.uk/~cmtajd/papers/
hci87.
- Duis, D. and Johnson, J., "Improving User-Interface
Responsiveness Despite Performance Limitations", Proceedings
of IEEE CompCon'90, February 1990, pages 380-386.
- Lambert, G. "A Comparative Study of System Response
Time on Program Developer Productivity", IBM Systems
Journal, 1984, 23(1), pages 407-423.
- Miller, R. "Response time in man-computer conversational
transactions", Proceedings of IBM Fall Joint Computer
Conference, 1968.
- Robertson, G., Card, S., Mackinlay, J. "The Cognitive
Co-Processor Architecture for Interactive User Interfaces",
Proceedings of the ACM Conference on User Interface Software
and Technology (UIST89), November 1989, ACM Press,
pages 10-18.
- Robertson, G., Card, S., Mackinlay, J. "Information
Visualization Using 3D Interactive Animation", Communications
of the ACM, April 1993, 36(4), pages 56-71.
- Rushinek, A. and Rushinek, S. "What Makes Users Happy?",
Communications of the ACM, 1986, 29, pages 584-598.
- Shneiderman, B., "Response Time and Display Rate in
Human Performance with Computers", ACM Computing Surveys,
September 1984, 16(4), pages 265-285.
- Thadhani, A. "Interactive User Productivity", IBM
Systems Journal, 1981, 20(4), pages 407-423.