Cos’è?

L’interazione uomo macchina è una campo multi disciplinare, che studia la progettazione, valutazione e implementazione di sistemi informatici per l’utilizzo umano.

Data la multidisciplinarietà della materia è inverosimile essere un esperti ogni campo che appartiene, per questo vengono utilizzate:

  • Design methods and processes
  • Models
  • Heuristics
  • Best practices
  • Conventions
  • Experiments and user studies

Gli ingredienti

In questo ambito si parla sempre di tre soggetti:

  • lo User
  • il Computer
  • la Task da compiere

L’obbiettivo è quello di sviluppare un sistema capace di supportare l’utente nello svolgere la task, con un focus sull’usabilità:

  • Useful
  • Usable
  • Used

In questo ambito l’uomo è un soggetto creativo, invece la macchina è soggetto deterministico.

Goal, Task, Domain

L’utente vuole raggiungere dei goals, in uno specifico dominio (domain).

Ogni dominio (domain) ha i propri termini e modi di dire, i propri obbiettivi e componenti.

Le Task sono operazioni effettuate dall’utente che manipolano il dominio.

Un goal può essere raggiunte effettuano una o più tasks.

Human Error is bad Design

Human errors should never be considered as faults of the user rather, «they are usually a result of bad design» (Norman)

Humans tend to be imprecise, distracted, not-omniscient

  • System design should anticipate this human behavior
  • Minimize the chance of inappropriate actions (evaluation)
  • Maximize the possibility of discovering and repairing an inappropriate action (execution)
  • Enable users to understand the state of the system and build an appropriate model

Design Processes and Frameworks

Nella progettazione di interfacce per l’interazione tra l’uomo e la macchina vengono studiati e utilizzati diversi processi e frameworks, con l’obbiettivo di semplificare e ridurre gli errori durante il processo di design.

User-Centered Design (UCD)

This approach takes the needs, wants, and limitations of the actual end users into account during each phase of the design process.

User-centered design issues are discovered during the early stages, this reduce the risk of software project failure.

Benefits: systems easier to learn, with less human errors, encourage users to discover advanced features, and avoids “building the wrong system.

Issues: how to find users? How many? How motivated? How to speak their language? How to extract user needs, business needs, organizational implications?

Participatory Design

One step further than UCD, users are directly involved in the collaborative design of the things and applications they use.

Engage a group of users:

  • Discussions
  • Creating scenarios, sketches, dramatizations
  • Creating and testing lo-fi prototypes
  • Continuous meetings, flexible management
  • Highly reliant on the skills of the group moderators/leaders (keep involved, filter ideas, reward participation, work around resistances, …)
  • More effective with more mature and prepared user populations (less with kids, elderly, disabled, …)

Agile Interaction Design

Borrows ideas from Agile development in software engineering:

  • System is built incrementally in rapid release cycles
  • Rapid prototyping techniques (for hardware, software and physical objects)

Requires:

  • low-cost many-iterations prototype
  • fast usability inspection (extreme usability, XU)

Human Centered Design

Lo Human Centered Design è una filosofia che da particolare importanza sull’usabilità del sistema.

Usabilità

Dove per usabilità si intende la capacità con cui un sistema può essere utilizzato dall’utente con per effectiveness, efficiency to achieve the specified goals.

Dimensions of usability:

  • Usefulness: does it do something people want?
  • Learnability: is it easy to learn?
  • Memorability: one learned, is it easy to remember?
  • Effectiveness: does it allow reaching the goal?
  • Efficiency: once learned, is it fast to use?
  • Visibility: is the state of the system visible?
  • Errors: are errors few and recoverable?
  • Satisfaction: is it enjoyable to use?

Process and Steps

Note: in this course we will focus on Needfinding - Prototyping (Storyboarding) - Testing

Needfinding – what is wanted

  • What exactly is needed? How are people currently accomplishing the goal?

  • User observation, interviews, …

Learn more: Needfinding - IUM

Analysis

  • Formalize and structure the needs

  • Create interaction scenarios, stories, tasks

  • Compare current situation with expected new situation

Learn more: Task Analysis - IUM

Design

  • The main choices to shape the system
  • Rules, guidelines, design principles
  • Considering different types of users
  • Modeling and describing interaction
  • Visual layout
  • Consider all inputs from cognitive models, communications theories, organization issues

Iteration and prototyping

  • Design must be supported by intermediate verification

  • Evaluate the design in its partial forms:

    • Prototypes
    • Evaluation metrics
  • Involving users

Learn more: Storyboards - IUM,

Implementation and deployment

  • Hardware and software implementation
  • Documentation