Agile Softwareentwicklung

Usability Driven Development

31.08.2010

Die Phasen Modellierung, Testdesign, Programmierung

Phase 4 - Modellierung: Nachdem die Oberfläche einer Funktion gestaltet ist, beginnt die Phase Modellierung. In ihr soll ein Überblick entstehen, wie die neue Funktionalität in das Gesamtsystem integriert werden kann.

Welche Datenbankfelder werden benötigt, wo im Schichtenmodell soll die Funktion implementiert werden, welche Bibliotheksfunktionen können benutzt werden, welche Algorithmen sind am geeignetsten für die Lösung des Problems? Diese Fragen sollten sich Entwickler stellen und beantworten.

Im Zweifelsfall sollte die Meinung von Kollegen eingeholt werden oder falls möglich, ein Test entwickelt werden. Besonders bei Performancefragen kann ein Lasttest sehr aufschlussreich sein.

Es geht in dieser Phase nicht darum, die zu entwickelnde Funktionalität bis ins letzte Detail mit UML-Diagrammen zu beschreiben. Diagramme sollten nur dort eingesetzt werden wo es sinnvoll ist und dadurch Vorteile entstehen.

Phase 5 - Testdesign: Als nächste Phase folgt das Testdesign. Dabei werden alle auf der zu bearbeiteten Storycard beschriebenen Funktionalitäten in Form von Tests umgesetzt. So entsteht aus der Storycard eine ausführbare Spezifikation der Funktionalität. Ausnahmen bilden Storycards, die sichausschließlich mit Verbesserungen der Oberfläche beschäftigen und keine Funktionalität des Systems verändern. Diese können aus einem Usability Test hervorgegangen sein und sind eventuell nur schwer oder gar nicht maschinell testbar. Dann wird die Phase Testdesign übersprungen.

Phase 6 - Programmierung: In der Phase der Programmierung werden die Ergebnisse aus den vorherigen Phasen umgesetzt. Das zuvor gestaltete Userinterface wird implementiert, benötigte Klassen und Methoden geschrieben und Datenbankstrukturen entwickelt.

Es sollte hierbei immer die einfachste, funktionierende Lösung implementiert werden. Die Programmierung ist abgeschlossen, wenn alle Tests fehlerfrei ausgeführt werden können. Nach erfolgreichem Test sollte der neu entwickelte Quellcode einem Refactoring unterzogen werden.