Anatomie einer Iteration

„Wovon lässt sich das Team von Microsoft eigentlich inspirieren? Woher nehmen die ihre Ideen für die neue Version von MS Office?“

Seit 15 Jahren stelle ich verschiedenen Entwickler-Teams bereits diese Frage, Monat für Monat. Und jedes Team kommt mit der gleichen Liste von Gründen, dabei hat es in diesem Zeitraum nicht weniger als sechs neue Office-Versionen und unglaubliche technologische Fortschritte gegeben.

Die wichtigste Antwort ist immer: "Wir hören unseren Kunden zu und beobachten die Nutzer früherer Versionen genau.“ Mit anderen Worten: Die neueste Version kann nur existieren, weil sie eine Vorgängerin hat. Die Microsoft-Leute haben die Software viele Iterationen durchlaufen lassen, eine nach der anderen, um dorthin zu gelangen, wo sie jetzt stehen. Und sie fahren kontinuierlich damit fort.

Häufige Iterationen sind erfolgskritisch für jeden Entwicklungsprozess. Sie haben eine Idee, entwickeln daraus etwas, probieren es aus, schauen sich an, wie es funktioniert, und fangen wieder von vorne an. Genau das tut Microsoft – wie auch alle anderen Software-Hersteller – bei jeder neuen Version.

Nein, die neue Office-Ausgabe ist beileibe nicht die einzige Iteration seit der Vorgängerversion. Das Team hat diese eine Vorlage Hunderte, wenn nicht Tausende Iterationen durchlaufen lassen, nur präsentiert Microsoft diese Iterationen nicht der Öffentlichkeit. (Lediglich die Horden von Alpha- und Beta-Testern bekommen ein paar zu Gesicht.)

Dies ist eines der großen Paradoxa im Entwicklungs-Management: Die allermeisten Iterationen bleiben Leuten außerhalb der Entwicklungs-Umgebung verborgen. Wird ein neues Produkt veröffentlicht, sieht es für die Außenwelt so aus, als hätte sich das Team hingesetzt, alles gründlich durchdacht und es schließlich umgesetzt, so ganz ohne viele Versuche und Irrtümer. Nichts jedoch könnte weiter von der Wahrheit entfernt sein.

Analyse einer erfolgreichen Iteration

Iterationen sind der Kern eines erfolgreichen Entwicklungsprozesses. Weil wir die schlechten Ideen rechtzeitig verwerfen können und nur die besten der besten realisieren, reduzieren wir unser Risiko signifikant.

Leider wissen zahlreiche Teams nicht viel über effektive Iterationen. Gutes Iterieren ist eine bewusste Aktivität, die vier Phasen umfasst: Planen, Implementieren, Messen und Lernen. Die besten Teams widmen sich jedem Stadium mit gleicher Intensität und stellen sicher, dass sie das Beste aus diesem Prozess herausholen. In der Tat können Iterationen sehr kurz sein (wir haben Teams kennengelernt, die ein Dutzend am Tag durchführen), ohne in dieser oder jener Phase zu mogeln.

Wenn Sie mit der agilen Entwicklung vertraut sind, sind Ihnen diese Stadien sicher vertraut. Es gibt nämlich Parallelen bei der Verwirklichung großartiger Nutzererlebnisse und der Erstellung von Applikationen. Doch während es bei fast allen agilen Iterationen um Programmierung geht, können aus Usability-bezogenen Iterationen ganz verschiedene Ergebnisse wie beispielsweise Wireframes oder Beschreibungen von Personas resultieren; das ist der große Unterschied.

Interessanterweise hat die Iteration ihren Ursprung nicht etwa in den Anfangstagen der Usability-Forschung oder der agilen Programmierung, sondern geht Jahrhunderte zurück bis zum Beginn der technischen Entwicklung. Allein: Die Phasen sind die gleichen geblieben.

Phase #1: Planen

In der Planungsphase entscheiden wir, was uns die Iteration lehren soll und was wir dafür tun müssen. Wir planen nicht das Gesamtergebnis, sondern wirklich nur diese eine Iteration. Planung muss kein komplexer Prozess sein, aber sie ist ein notwendiger Bestandteil des Gesamtprozesses.

Wir widmen uns der Iteration mit einem spezifischen Problem im Hinterkopf. In der Planungsphase entscheiden wir, wie wir das Problem anpacken und definieren, woran wir erkennen, ob wir Erfolg haben. (Um zu wissen, worauf es in der Planungsphase genau ankommt, sollten wir uns zunächst den anderen Stadien widmen und diese verstehen; wir kommen später noch einmal auf Phase 1 zurück.)

Phase #2: Implementieren

Die Implementierunsphase ist der berühmteste Teil der Iteration: Hier erschaffen wir den Entwurf bzw. das Ergebnis, zu dem wir Feedback erhalten möchten.

Bei der Implementierung dürfen wir nicht vergessen, dass wir ausschließlich den speziellen Teil ausbauen, zu dem wir Rückmeldungen benötigen. Wenn unser Endergebnis eine bestimmte Funktionalität erhalten soll (sagen wir mal eine Druckfunktion), wir jedoch noch nicht gründlich genug vorbereitet sind, um sie uns genau anzusehen, brauchen wir auch noch nicht mit der Umsetzung zu beginnen.

Im Grunde können wir uns zurücklehnen. Ein Beispiel: Wenn wir uns nur dafür interessieren, wie die Daten auf dem Bildschirm dargestellt werden, können wir diese Daten im Entwurf „hart“ kodieren; die Backend-Datenbank kann bei dieser Iteration völlig außen vor bleiben. Möchten wir nur wissen, ob der Server die Transaktionen in einer brauchbaren Zeit bewältigen kann, müssen wir eben ein Programm schreiben, das das Transaktionssystem unter Last setzt; die Benutzeroberfläche können wir vernachlässigen.

Phase #3: Messen

Das Messen ist die erfolgskritische Phase. In dieser sammeln wir die nötigen Daten um zu entscheiden, ob uns die Iteration voranbringt oder ob wir einen anderen Weg finden müssen, um unser Problem zu lösen.

Wie wir messen hängt ganz davon ab, welche Art von Informationen wir sammeln möchten. Wollen wir sehen, ob der User mit der Oberfläche zurechtkommt, müssen wir User-Tests durchführen. Möchten wir wissen, ob eine spezielle interaktive Funktion sich „richtig anfühlt“, brauchen wir sie nur selbst auszuprobieren. Auch das Messen muss kein zwangsläufig komplexer Prozess sein – wir sollten nur genau darüber nachdenken, was wir eigentlich beurteilen wollen.

Phase #4: Lernen

Das Lernen ist die letzte Phase und diejenige, der wir oft leider nicht genug Beachtung schenken. Hier nehmen wir uns die gewonnenen Daten vor und identifizieren die Lektionen, die wir zu lernen haben.

Einige Ergebnisse werden bestätigen, dass unsere Ideen zum Erreichen unserer Ziele geführt haben. Andere werden konstruktiver sein und uns lehren, dass wir unsere Ziele auf diesem speziellen Weg nicht erreicht haben. Diese Lektionen eröffnen uns neue Ideen und alternative Wege, die wir beschreiten müssen. Indem wir das Gelernte nutzen, begeben wir uns zurück ins Planungsstadium. Dort entscheiden wir uns, was wir von der nächsten Iteration erwarten.

Zurück zur Planungsphase

Nun haben wir uns alle Phasen angesehen und können das Planungsstadium noch einmal genauer unter die Lupe nehmen. Wie ich schon erwähnt habe, geht es in dieser Phase nur um diese eine, spezifische Iteration. Wir möchten exakt planen, wie wir etwas implementieren und wie wir was messen. Wir wollen sicherstellen, dass wir über die nötigen Ressourcen verfügen, um Daten zu sammeln, und genügend Zeit haben, um aus ihnen zu lernen.

Hier ein Beispiel: Zunächst entscheiden wir, welche Erkenntnisse wir aus dieser Iteration ziehen möchten. Können wir mit einem Check-out-Prozess aufwarten, der aus der Sicht eines Users sinnvoll ist, der seine gesammelten Bonuspunkte einlösen möchte? Wir entscheiden, dass wir das mit einem Entwurf auf Papier umsetzen können und fangen an, den bestehenden Check-out um die neuen Funktionen zu erweitern. Diesen Entwurf testen wir mit ein paar Nutzern, die wir aus anderen Bereichen des Unternehmens rekrutieren, beispielsweise aus der Buchhaltung. Wir geben uns einen halben Tag für den Prototypen auf Papier, einen halben Tag für unsere Usability-Tests und planen eine Stunde für ein Nachbereitungs-Meeting ein.

Tipps für erfolgreiche Iterationen

Über die Jahre haben wir einige Tricks gelernt, mit deren Hilfe sich das Optimum aus Iterationen herausholen lässt.

Erstens: Für das Messen und Lernen müssen Sie genauso viel Zeit ansetzen wir für die Phasen Planung und Implementierung. Wenn Sie sich dabei ertappen, dass Sie sich zwei Wochen mit der Implementierung beschäftigen und sich nur einen Tag mit dem Messen befassen, ist etwas nicht im Gleichgewicht. Häufig machen Teams den Fehler, sich gerade beim Messen zeitlich einzuengen: Diese berauben sich der Chance zu lernen, was sie lernen sollten.

Zweitens: Suchen Sie nach Techniken, mit deren Hilfe sich die Implementierung beschleunigen lässt. Stellen Sie sicher, dass nur die Funktionalität implementiert wird, die für die Iteration notwendig ist – behalten Sie die anderen Funktionen künftigen sinnvollen Iterationen vor. Sehen Sie sich auch Entwurfstechniken an, die schnelle Antworten auf Ihre Fragen versprechen. Mir gefallen zum Beispiel Prototypen auf Papier: Innerhalb kurzer Zeit habe ich etwas, mit dem ich einen User beschäftigen kann.

Wenn Sie sich Ihre Iterationsprozesse ganz genau ansehen, eröffnen sich Ihnen Möglichkeiten, Ihre Techniken zu verfeinern und bestmögliche Ergebnisse zu erzielen.

Dieser Artikel wurde im Original am 9. Februar 2009 unter dem Titel „Anatomy of an Iteration“ von Jared M. Spool veröffentlicht. Jared M. Spool gehört zu den führenden Usability-Experten unserer Zeit. Seine Website erreichen Sie unter http://www.uie.com. Weitere Artikel von Jared M. Spool finden Sie im Usability-Special von //SEIBERT/MEDIA.