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