Agile Softwareentwicklung

Usability Driven Development

31.08.2010

Die Phasen Integration, Deployment, Usability Test

Phase 7 - Integration: Integration bedeutet das Zusammenführen des geänderten Quellcodes mit der Codebasis. Bevor dieser Schritt durchgeführt werden kann müssen alle Tests erfolgreich durchlaufen werden.

Als Werkzeug für die Integration sollte unbedingt eine Versionsverwaltung eingesetzt werden. Es ist ratsam, dass zusätzlich zum Quellcode auch die in der Phase Modellierung eventuell erstellten Diagramme in die Versionsverwaltung eingecheckt werden.

Auch auf Werkzeuge, die automatisch bei jeder Softwareversion, die in die Versionsverwaltung eingespielt wird, alle Tests durchlaufen und einen Build anstoßen, sollte nicht verzichtet werden. Dadurch können Fehler, wie das vergessene Einchecken einer Datei in die Versionsverwaltung, leicht entdeckt werden.

Phase 8 - Deployment: Der Begriff Deployment beschreibt die automatische Verteilung und Auslieferung der entwickelten Software. Im Idealfall wird die neu erstellte Funktion im Produktivsystem eingespielt.

Das bringt den Vorteil, dass den Anwendern die Weiterentwicklungen sofort zur Verfügung stehen. Dies birgt jedoch trotz umfangreicher Tests das Risiko, dass Fehler in eine Produktivversion gelangen. Damit man dieses eingehen kann, muss die Möglichkeit bestehen, ein Deployment jederzeit einfach wieder rückgängig zu machen.

Ist eine sofortige Produktivschaltung eines neuen Releases nicht möglich oder nicht erwünscht, sollte man das Deployment zumindest auf einem Testsystem vornehmen, um immer ein funktionierendes System mit der neuesten Softwareversion für Tests und Demonstrationen zur Verfügung zu haben.

Phase 9 - Usability Test: Der Usability Test ist die letzte Phase einer UDD-Iteration. Dabei testet der Entwickler die neu implementierte Funktion gegen die Beschreibung derFunktionalität auf der Storycard.

Sollten hierbei trotz der ausgiebigen Tests Fehler gefunden werden, ist umgehend das vorhergegangene Deployment rückgängig zu machen und die Iteration mit dem Ziel der Fehlerbehebung neu zu durchlaufen. Im Normalfall sollte die Funktionalität gewährleistet sein.

Es wird jedoch oft der Fall eintreten, dass Ideen für die Verbesserung der gerade entwickelten Funktionalität oder einer anderen Funktion des Systems entstehen. Diese werden in Form von Storycards notiert und müssen vom Kunden beim nächsten Planungsspiel priorisiert werden.