DEIN TÄGLICHES UI/UX-COACHING / LEKTION 13

UX-Research: Wie beweist du, dass Design B besser ist?

Ein Entwurf kann überzeugend aussehen und trotzdem an der Nutzeraufgabe scheitern. Heute planst du einen Vergleich, der deine Designentscheidung auch widerlegen könnte – statt ihr nur gute Argumente zu liefern.

ca. 15 Minuten inklusive Übung

Dein Lernziel

Du formulierst eine überprüfbare Hypothese, vermeidest Hinweise auf den Lösungsweg und planst Reihenfolge, Erfolgskriterien und Messung für einen kleinen vergleichenden Usability-Test.

01 / DAS EXPERIMENT · 3 MINUTEN

Zwei Wege zum passenden Buch.

Du gestaltest eine fiktive mobile Buchsuche. Variante A bietet häufig benötigte Filter direkt an; zusätzliche Kriterien stehen in einem Dialog. Bei B liegen alle Filter im Dialog. Deine Vermutung: Der direkte Zugriff in A erleichtert die Suche. Noch ist das eine Hypothese, kein Ergebnis.

VARIANTE A

Bücher entdecken

RomantasyEnemies to LoversAb 4 ★Weitere Filter
Quick-Filter plus erweiterter Dialog. Beispiel-Ergebnis nach passender Auswahl: 18 Bücher.

VARIANTE B

Bücher entdecken

Filter öffnen
Alle Filter im Dialog. Dieselben Kriterien ergeben dieselben 18 Bücher.

Die Ansichten sind beschriftete, nicht bedienbare Konzeptskizzen. Die 18 Treffer sind eine fiktive Datenannahme nach der Filterung, keine gemessene Erfolgszahl. Für deinen Test baust du daraus klickbare Prototypen.

Die erste Verzerrung steckt oft in der Aufgabe.

Du möchtest ein Romantasy-Buch mit dem Trope Enemies to Lovers finden, das mindestens vier Sterne hat. Suche ein passendes Buch.

Diese Formulierung nennt ein überprüfbares Ziel, ohne einen bestimmten Bedienweg vorzuschreiben.

Eine Aufgabe sollte das gewünschte Ergebnis verständlich machen und keine Klickfolge vorsagen. Wenn du ausdrücklich die Quick-Filter nennst, kannst du ihre eigenständige Entdeckung kaum noch beurteilen. Nielsen Norman Group: Task Scenarios for Usability Testing.

02 / DEINE CHALLENGE · 8 MINUTEN

Ein kleiner Research-Plan vor dem ersten Test.

  1. Hypothese · 2 Minuten: Formuliere, welche Änderung für welche Aufgabe welchen Unterschied erwarten lässt. Definiere auch, welches Ergebnis gegen deine Vermutung sprechen würde.
  2. Prototypen · 3 Minuten: Skizziere zwei klickbare Abläufe in Figma oder React. Halte Buchdaten, Sortierung, Texte, Ladeverhalten und visuelle Rahmenbedingungen gleich. Variiere gezielt das Filter-Pattern.
  3. Testdesign · 2 Minuten: Lege Zielgruppe, Zuteilung und zwei vergleichbare Aufgaben fest. Entscheide, ob jede Person beide Varianten oder nur eine sieht. Notiere mögliche Lerneffekte.
  4. Messung · 1 Minute: Wähle eine primäre Metrik und zwei ergänzende Beobachtungen. Definiere Start, Ende, Hilfe und Abbruch für beide Varianten gleich.

Die acht Minuten reichen für einen ersten Plan und grobe Wireframes. Ein vollständig testbarer Prototyp, Rekrutierung und Durchführung brauchen zusätzliche Zeit. Prüfe den Ablauf vorab in einem Pilottest; dessen Ergebnisse sind nicht automatisch Teil der Hauptauswertung.

Was passiert, wenn alle zuerst A sehen?

Die zweite Variante profitiert möglicherweise davon, dass die Aufgabe, Begriffe und Daten schon bekannt sind. Within-Subjects bedeutet: Jede Person nutzt beide Varianten. Between-Subjects bedeutet: Verschiedene Personen nutzen jeweils eine. Die erste Option erlaubt einen direkten Vergleich je Person, die zweite vermeidet den Transfer zwischen Varianten. Keine ist immer richtig. Nielsen Norman Group: Between-Subjects vs. Within-Subjects.

P1ZuerstA · RomantasyDanachB · Contemporary
P2ZuerstB · RomantasyDanachA · Contemporary
P3ZuerstA · ContemporaryDanachB · Romantasy
P4ZuerstB · ContemporaryDanachA · Romantasy

Alle vier Kombinationen aus Startvariante und erster Aufgabe sind gleich häufig besetzt. Das verteilt Reihenfolge und Aufgaben, beseitigt Lerneffekte aber nicht automatisch.

Planungsbeispiel, keine durchgeführte Studie. Weise passende Testpersonen vorab zufällig den vorbereiteten Zeilen zu; sortiere sie nicht nach Erfahrung oder Termin in eine bevorzugte Variante.

Aufgabe R: Romantasy, Enemies to Lovers, mindestens vier Sterne. Aufgabe C: Contemporary, Slow Burn, mindestens vier Sterne. Für dieses Planungsbeispiel setzt du in beiden Fällen gleich viele passende Bücher und ähnlich viele Ablenkungstreffer voraus. Prüfe im Pilottest, ob Begriffe und Suchaufwand tatsächlich vergleichbar sind. Gleich viele Ergebnisse allein garantieren keine gleiche Schwierigkeit.

03 / KOMMENTIERTE MUSTERLÖSUNG

Was würde dich vom Gegenteil überzeugen?

Research-Plan und Auswertungskriterien öffnen

Dieser eigene Vorschlag ist ein Plan für eine formative Untersuchung. Es wurden keine Testpersonen beobachtet und keine Variantenleistung gemessen.

1. Hypothese und Entscheidungsregel

„Bei Personen, die regelmäßig nach Genre und Trope suchen, ermöglicht A häufiger eine korrekte Buchauswahl ohne Hilfe als B, weil zentrale Kriterien direkt erreichbar sind.“ Primär messe ich korrekte Auswahl ohne Hilfe; ergänzend notiere ich Zeit bis zum Erfolg und beobachtete Fehlaktionen oder Rückwege.

Weniger korrekte Auswahlen, übersehene aktive Filter oder notwendige Hilfe sprechen gegen die erhoffte Verbesserung. Bei gleich erfolgreicher Auswahl kann die Zeit einen zusätzlichen Hinweis geben. Mit vier oder sechs Personen begründe ich daraus keine allgemeine Überlegenheit und keinen statistisch gesicherten Gewinner. Ich dokumentiere konkrete Hindernisse und plane die nächste Überarbeitung.

2. Gleiche Bedingungen statt versteckter Zusatzänderungen

Beide Prototypen starten ohne aktive Filter, mit denselben Büchern und derselben Sortierung. Auswahlregeln, Rücksetzen, Ergebnisdarstellung und Bestätigung im gemeinsamen Dialog sind identisch. A ergänzt nur den direkten Zugang zu den festgelegten Kriterien. Wenn dieser Zugang sofortige Änderungen ermöglicht, gehört auch das ausdrücklich zur getesteten Änderung. Ich ändere daneben weder die Qualität der Buchkarten noch die Suchgeschwindigkeit.

Nach jedem Durchlauf setze ich den Prototyp zurück. Pro Person nutze ich zwei verschiedene, vorab geprüfte Aufgaben und verteile die vier Kombinationen des Plans. Ich rekrutiere Personen aus der definierten Zielgruppe, ohne ihnen die vermutete Gewinnerlösung zu nennen.

3. Vorab festgelegte Messregeln

  • Start: Die Person hat die Aufgabe gelesen und verstanden. Auf ein einheitliches Startsignal wird der zurückgesetzte Prototyp bedienbar und die Zeitmessung beginnt.
  • Erfolg: Die Person wählt ein Buch aus und beendet die Aufgabe. Die Testleitung prüft anhand der Buchdaten, ob Genre, Trope und Bewertung passen. Ein sichtbarer Trefferzähler allein ist kein Erfolg.
  • Kein Erfolg ohne Hilfe: Falsche endgültige Auswahl, Abbruch, Überschreiten des vorab festgelegten Zeitlimits oder notwendige Bedienhilfe werden gesondert protokolliert. Hilfe wird nie nachträglich als unassistierter Erfolg gewertet. Ein falscher Zwischenklick mit anschließender Korrektur ist dagegen eine Beobachtung im Ablauf.
  • Zeit: Ich halte Dauer und Ausgang jedes Versuchs fest. Zeiten bis zum Erfolg betrachte ich nur für erfolgreiche Versuche und immer zusammen mit der Anzahl der Misserfolge. Abbrüche dürfen den Mittelwert nicht künstlich verbessern.
  • Beobachtung: Ich protokolliere zum Beispiel das Übersehen einer Auswahl oder mehrfaches Zurückgehen samt Kontext. Die Zahl sämtlicher Klicks ist keine automatische Fehlerzahl.

4. Bericht statt Siegeretikett

Mein Protokoll enthält Personenkennung, Variante, Reihenfolge, Aufgabe, Erfolg ohne Hilfe, Dauer, Hilfe und konkrete Beobachtungen. Ich zeige Einzelfälle und nenne die kleine Stichprobe sowie mögliche Aufgaben- und Lerneffekte. Ich veröffentliche keine erfundenen Messwerte.

Ergänzend kann ich nach jeder Aufgabe dieselbe Frage zur empfundenen Schwierigkeit stellen. Diese Selbstauskunft beschreibt das Erleben; sie ersetzt weder die Prüfung des ausgewählten Buchs noch die gemessene Dauer. Eine angenehm wirkende Variante kann trotzdem falsche Ergebnisse liefern.

Für einen belastbaren quantitativen Nachweis wären unter anderem Stichprobenplanung, eine passende Analyse und eine vorab definierte relevante Effektgröße nötig. Das ist eine andere Untersuchung als diese kurze Übung.

04 / TECHNISCHER IMPULS

Erfolg und Dauer getrennt erfassen.

Starte das Labor, zähle einige Beispielaktionen und simuliere dann einen Erfolg. Wiederhole den Ablauf mit einem Abbruch. Beachte, wie sich die Bedeutung der Dauer ändert. Diese Buttons illustrieren die Instrumentierung; sie messen nicht, wie gut die Buchsuche funktioniert.

Messlabor: Was landet im Ergebnis?

Eine Simulation der Messlogik, kein Buchsuch-Prototyp und kein Usability-Test. Du setzt Erfolg oder Abbruch hier selbst. Die gezählten Aktionen sind weder Fehler noch ein Qualitätsurteil.

Noch kein Durchlauf. Starte die Messung und simuliere einzelne Aktionen.

Messwerte bleiben nur im Arbeitsspeicher dieses Moduls und verschwinden beim Neuladen. Das Modul sendet keine Messwerte und speichert sie weder in Cookies noch im Browser-Speicher.

React-Code und Messmodell ansehen

Der tatsächlich verwendete Code trennt Zustandslogik und Uhr. Im Labor liefert performance.now() die Zeitpunkte. Eine laufende Messung kann nicht versehentlich neu gestartet werden; beim Abschluss wird sie zurückgesetzt. Ein weiterer Abschluss erzeugt kein doppeltes Ergebnis.

In einem echten Prototyp ersetzt du die Simulationsbuttons durch einheitliche Ereignisse aus der Aufgabe und eine fachliche Prüfung der Buchauswahl. Lege fest, welche Aktionen gezählt werden. Zeichne keine Texteingaben oder personenbezogenen Daten bloß aus Bequemlichkeit auf.

coaching-research.tsx

"use client";

import { useEffect, useRef, useState } from "react";
import { emptyResearchTrial, finishResearchTrial, recordResearchAction, researchSchedule, startResearchTrial, type ResearchResult } from "@/lib/coaching-research";
import "./coaching-research.css";

export function CoachingResearchBrief() {
  const [suggestive, setSuggestive] = useState(false);
  return <div className="research-widget">
    <div className="research-switch" role="group" aria-label="Aufgabenformulierungen vergleichen"><button type="button" aria-pressed={!suggestive} aria-controls="research-task-wording" onClick={() => setSuggestive(false)}>Neutral</button><button type="button" aria-pressed={suggestive} aria-controls="research-task-wording" onClick={() => setSuggestive(true)}>Suggestiv</button></div>
    <div id="research-task-wording" aria-live="polite"><blockquote>{suggestive ? "Nutze die Quick-Filter für Romantasy, Enemies to Lovers und mindestens vier Sterne. Wähle anschließend ein passendes Buch aus." : "Du möchtest ein Romantasy-Buch mit dem Trope Enemies to Lovers finden, das mindestens vier Sterne hat. Suche ein passendes Buch."}</blockquote><p>{suggestive ? "Diese Formulierung verrät den Weg und bevorzugt das sichtbare Pattern von A. Ob jemand die Filter selbst entdeckt hätte, bleibt unklar." : "Diese Formulierung nennt ein überprüfbares Ziel, ohne einen bestimmten Bedienweg vorzuschreiben."}</p></div>
  </div>;
}

export function CoachingResearchSchedule() {
  const [count, setCount] = useState<4 | 6 | 8>(4);
  return <div className="research-widget">
    <label className="research-select" htmlFor="research-count">Geplante Testpersonen<select id="research-count" value={count} onChange={event => setCount(Number(event.target.value) as 4 | 6 | 8)} aria-describedby="research-schedule-note"><option value="4">4 Personen</option><option value="6">6 Personen</option><option value="8">8 Personen</option></select></label>
    <div className="research-schedule" role="list" aria-label="Beispielhafte Zuteilung">{researchSchedule(count).map(row => <div role="listitem" key={row.person}><strong>{row.person}</strong><span><small>Zuerst</small>{row.first}</span><span><small>Danach</small>{row.second}</span></div>)}</div>
    <p id="research-schedule-note" aria-live="polite">{count === 6 ? "Drei Personen starten mit A, drei mit B. Die vier Kombinationen aus Startvariante und erster Aufgabe sind bei sechs Personen aber nicht gleich häufig besetzt: 2 / 2 / 1 / 1. Diese Restunwucht muss im Bericht stehen." : "Alle vier Kombinationen aus Startvariante und erster Aufgabe sind gleich häufig besetzt. Das verteilt Reihenfolge und Aufgaben, beseitigt Lerneffekte aber nicht automatisch."}</p><p>Planungsbeispiel, keine durchgeführte Studie. Weise passende Testpersonen vorab zufällig den vorbereiteten Zeilen zu; sortiere sie nicht nach Erfahrung oder Termin in eine bevorzugte Variante.</p>
  </div>;
}

export function CoachingResearchMetrics() {
  const trial = useRef(emptyResearchTrial);
  const startButton = useRef<HTMLButtonElement>(null);
  const [running, setRunning] = useState(false);
  const [actions, setActions] = useState(0);
  const [result, setResult] = useState<ResearchResult | null>(null);
  useEffect(() => { if (result) startButton.current?.focus(); }, [result]);
  function start() { trial.current = startResearchTrial(performance.now()); setActions(0); setResult(null); setRunning(true); }
  function record() { trial.current = recordResearchAction(trial.current); setActions(trial.current.actions); }
  function finish(success: boolean) { const next = finishResearchTrial(trial.current, performance.now(), success); trial.current = emptyResearchTrial; setResult(next); setRunning(false); }
  return <div className="research-widget">
    <h3>Messlabor: Was landet im Ergebnis?</h3><p>Eine Simulation der Messlogik, kein Buchsuch-Prototyp und kein Usability-Test. Du setzt Erfolg oder Abbruch hier selbst. Die gezählten Aktionen sind weder Fehler noch ein Qualitätsurteil.</p>
    <div className="research-switch"><button ref={startButton} type="button" onClick={start} disabled={running}>{result ? "Neuen Durchlauf starten" : "Messung starten"}</button><button type="button" onClick={record} disabled={!running}>Beispielaktion zählen</button><button type="button" onClick={() => finish(true)} disabled={!running}>Erfolg simulieren</button><button type="button" onClick={() => finish(false)} disabled={!running}>Abbruch simulieren</button></div>
    <div className="research-result" role="status">{running ? <p>Messung läuft · {actions} gezählte Aktionen. Beende sie mit Erfolg oder Abbruch.</p> : result ? <><strong>{result.success ? "Erfolg simuliert" : "Abbruch simuliert"}</strong><p>{(result.durationMs / 1000).toLocaleString("de-DE", { maximumFractionDigits: 2 })} s {result.success ? "bis zum simulierten Erfolg" : "bis zum Abbruch"} · {result.actions} Aktionen</p><p>{result.success ? "In einem echten Test zählt erst die geprüfte, passende Buchauswahl als Erfolg." : "Dieser Durchlauf gehört zu den Misserfolgen. Seine Dauer ist keine Zeit bis zum Erfolg und darf nicht als schnelle Lösung gewertet werden."}</p></> : <p>Noch kein Durchlauf. Starte die Messung und simuliere einzelne Aktionen.</p>}</div><p>Messwerte bleiben nur im Arbeitsspeicher dieses Moduls und verschwinden beim Neuladen. Das Modul sendet keine Messwerte und speichert sie weder in Cookies noch im Browser-Speicher.</p>
  </div>;
}

coaching-research.ts

export type ResearchTrial = { startedAt: number | null; actions: number };
export type ResearchResult = { success: boolean; durationMs: number; actions: number };
export const emptyResearchTrial: ResearchTrial = { startedAt: null, actions: 0 };
export function startResearchTrial(now: number): ResearchTrial { return { startedAt: now, actions: 0 }; }
export function recordResearchAction(trial: ResearchTrial): ResearchTrial {
  return trial.startedAt === null ? trial : { ...trial, actions: trial.actions + 1 };
}
export function finishResearchTrial(trial: ResearchTrial, now: number, success: boolean): ResearchResult | null {
  if (trial.startedAt === null) return null;
  return { success, durationMs: Math.max(0, Math.round(now - trial.startedAt)), actions: trial.actions };
}
// The four rows distribute interface order AND task assignment. Six rows cannot
// distribute all four combinations equally; interface order is still 3:3.
export function researchSchedule(count: 4 | 6 | 8) {
  const patterns = [
    ["A · Romantasy", "B · Contemporary"],
    ["B · Romantasy", "A · Contemporary"],
    ["A · Contemporary", "B · Romantasy"],
    ["B · Contemporary", "A · Romantasy"],
  ];
  return Array.from({ length: count }, (_, index) => ({ person: `P${index + 1}`, first: patterns[index % 4][0], second: patterns[index % 4][1] }));
}

05 / REFLEXION · 3 MINUTEN

Schneller ist nur eine mögliche Antwort.

Du hast sechs Testpersonen. Welches Testdesign wählst du?

Jede Person testet beide Varianten mit verteilter Reihenfolge, je drei Personen testen nur A oder B, oder alle sehen erst A und dann B? Begründe deine Entscheidung und benenne ihre Grenze.

Mögliche Antwort zum Testdesign

Für einen explorativen Vergleich dieser Filter würde ich zunächst beide Varianten pro Person vorsehen, mit drei Starts in A und drei in B sowie vergleichbaren Aufgaben. Ich erhalte so Beobachtungen beider Patterns von jeder Person. Sechs Personen lassen die vier Kombinationen aus Reihenfolge und Aufgabe aber nicht gleich häufig zu; die Restunwucht im Beispiel beträgt 2 / 2 / 1 / 1.

Wenn ich vor allem die erstmalige Entdeckung prüfen möchte und der Transfer stark ist, kann eine Aufteilung in getrennte Gruppen sinnvoller sein. Drei Personen pro Variante liefern dann nur wenige Beobachtungen. Alle grundsätzlich mit A starten zu lassen vermischt die Variante mit der Reihenfolge. Keine dieser kleinen Anordnungen beweist, welches Design für alle Menschen besser ist.

A ist im Mittel schneller, aber zwei Personen wählen falsche Bücher.

Bevorzugst du A trotzdem? Welche Information brauchst du?

Mögliche Antwort zu Geschwindigkeit und Fehlern

Ich entscheide nicht anhand des Zeitmittelwerts allein. Zuerst prüfe ich, ob die Zeiten nur erfolgreiche Auswahlen enthalten, wie viele Versuche in beiden Varianten scheiterten und ob ein übersehener Filter die falsche Auswahl tatsächlich erklärt. Auch Reihenfolge, Aufgaben und notwendige Hilfe gehören dazu.

Wenn die Kernaufgabe häufiger misslingt, ist eine kürzere Dauer kein ausreichendes Argument. Ich untersuche die Sichtbarkeit aktiver Filter und teste eine Überarbeitung. Eine Aussage wie „A ist 20 % besser“ wäre ohne definierte Zielgröße und geeignete Untersuchung nicht gerechtfertigt.

Dein Selbstcheck

  • Kann das Ergebnis deiner Hypothese widersprechen?
  • Verrät die Aufgabe weder Bedienelemente noch Klickfolge?
  • Sind Daten, Startzustand und Erfolgskriterien vergleichbar?
  • Hast du Reihenfolge und mögliche Restunwuchten dokumentiert?
  • Trennst du korrekte Auswahl, Dauer, Beobachtung und Selbstauskunft?

DEIN MERKSATZ

Gib deiner Entscheidung die Chance, widerlegt zu werden.

Ein guter Usability-Test bestätigt nicht deine Designentscheidung. Er gibt ihr die Chance, widerlegt zu werden.