Agile Interface Design as Though the User Mattered
The Agile Manifesto speaks of designing "working code," yet says nothing of usable code. Software usability is one of the greatest shortfalls of contemporary software development. This seminar will look at two major classes of techniques that improve usability in an Agile context:
Good interaction design based on GOMS analysis;
The Direct Manipulation metaphor as supported by Model-View Controller, and recent improvements to Model-View-Controller developed by its inventor, Trygve Reenskaug.
NOTE: 80% of this material is also covered in the course on "Effective and Productive Human Interfaces."
Description
Day 1: Properties of Great Human / Computer Interfaces
On the first day the student learns the basic principles behind human interface design. The student will learn practical models such as locus and focus that relate to the psychology of design. The tools, techniques and skills from this section form a foundation for analyzing computer interfaces and for avoiding bad human/machine interface for design. The three main themes are affordability (how obvious interface symbols and icons are), monotony (there should be exactly one good way to perform each task) and modality (what a command does should not depend on any modes left by previous commands). The apparent need for modes can often be solved by using quasimodes: a form of short-term mode that uses kinesthetic action (such as holding down a control key) to hold the user’s locus of attention.
What is HCI?
Productivity
User-centered design
The interface is the program
An exercise: Developing a temperature converter
Conceptual models
Storyboarding
An interface invisible between you and the application
Universal principles and domain-specific principles Pattern Languages
Example: Five Minutes of No Escalation Messages
Pattern Languages in HCI
Consciousness
Locus and Focus
The Interface
Habit Formation
Modality
Gestures
Definition and Examples
Redressing modes
Labeling and modes
Definition of range
Modes as a problem of state
Redressing Modes
Quasimodes
Examples
Defaults
Affordability
Relationship to Culture
Icons
Problems with words
Non-native English/Finnish users
Noun/Verb Construction
Monotony
Day 2: Analysis Techniques
On Day 2, the student learns how to apply the principles from Day 1 to analyze a given problem and to build and analyze a productive, effective machine interface. The lecture includes an in-depth analysis of the famous Model-View-Controller pattern from the perspective of its inventor, as well as the CHECKS pattern language: both practical designs for effective human/machine interfaces. It elaborates the direct manipulation metaphor and other metaphors for design. The overall focus is on sound analysis techniques customized for effective and productive human/machine interfaces. The seminar ends with a full life-cycle model that addresses the puzzling question: which do you build first, the interface or the application?
User-Centered Design
Quantification
Goals, Object, Method, Selection Rules (GOMS)
Interface Timing
Feedback (Progress bars, etc.)
Example: C-to-F converter
Information theory, 0-bit inputs
Information per message
Definition of efficiency
Limitations of efficiency calculations
Fitt’s law of target size
The Expert/Beginner Dichotomy Myth
Beyond Model-View-Controller-User: Interface Design and Architecture
Trygve Reenskaug’s DCI Architecture
Problem definition
Conceptual design models; objective, role, scenario, and contextual
User Profiles: key questions, building stories
Scenarios: Problem story scenario, Reality Check Scenario, personae, Vision Scenario
A life cycle model