Spezifikation durch Beispiele
Stille Post vermeiden, richtig konzipieren
Erfahrungen aus erfolgreichen Teams zeigen, dass Softwarespezifikationen am besten gemeinsam von allen Projektbeteiligten erstellt werden: Wenn Ideen durch Beispiele kommuniziert werden, läuft der Entwicklungsprozess schneller und verständlicher als ohne. Auch wenn der Kunde nicht 24 Stunden am Tag, 7 Tage die Woche anwesend ist, lassen sich durch die richtigen Mittel, wie Akzeptanztests, von Anfang an Missverständnisse verringern und die Qualität der Software verbessern.
Erfahrungen aus erfolgreichen Teams
- Vorteile gemeinschaftlich erstellter Softwarespezifikationen für Softwareentwickler, Tester, Fachexperten und das Management
- Grundlagen der Spezifikation durch Beispiele
- Akzeptanztestgetriebene Entwicklung
- Lebende Dokumentation
- Ein Umfeld zur Verringerung „technischer Schuld“ schaffen: Testabdeckung und funktionale Anforderungen mit Akzeptanztests verbinden
- Durch interaktive Spiele und Simulationen lernen, was zu einer Softwarespezifikation gehört, was nicht und wie man eine richtig erstellt
- Nachteile herkömmlicher Spezifikationsarten erleben
- Wichtigkeit persönlicher Kommunikation und gemeinsamer Kollaboration
- Eindeutige Beispiele gemeinsam erarbeiten
Im Detail
- Aufgabenstellungen gemeinschaftlich von Geschäftszielen bzw. Visionen ableiten
- Theorien über die Funktion eines Systems untereinander abgleichen
- Warum technisch orientierte Stories ungeeignet sind
- Personas und Akzeptanzkriterien als Technik der Klarheit und Verbindlichkeit zwischen Kunde, Domänenexperte, Projektmanagement und Entwickler
- Wie sich über nicht-funktionale Anforderungen häufig unterspezifizierte funktionale Anforderungen identifizieren lassen
- Flexibilität durch bewusste Unterspezifikation (Late Modeling)
- Unterschied zwischen spezifizierenden Beispielen und Akzeptanztests
- Ausführbare, wartbare Spezifikationen
- Verfeinern der Beispiele
Aus der Praxis
- Effektive Organisation und Strukturierung der Beispiele
- Integration in Prozesse mit vorgeschriebenem Iterationsprinzip (Scrum, XP) und in Prozesse ohne Vorschriften (Kanban)
- Häufige Probleme und Schwierigkeiten bei der Adaption
- Wie man Teams und Vorgesetzten das Konzept Spezifikation durch Beispiele im Unternehmen erfolgreich vermittelt
Unterstützung durch Tools
- FitNesse – ein Wiki-Server mit eingebauter automatisierter Validierung von Spezifikationen
- Cucumber – ausführbare Spezifikationen in natürlicher Sprache schreiben
- Integration mit Versionskontrollsystemen
- Synchronisation von Spezifikationen mit dem produktiven Code
- Automatisierte Validierung und kontinuierliche Integration
Specification by example
Specification by example, Example-driven development, Executable requirements, Acceptance Test-Driven Development (ATDD, A-TDD) oder Agile Acceptance Testing sind andere Namen für Spezifikation durch Beispiele.