Best practices agiler Modellierung
- Verwenden Sie adäquate Artefakte: Jedes Artefakt hat seinen eigenen Anwendungskontext. Je nachdem, was Sie entwerfen wollen, ob Geschäftsprozesse, Komponenten, Lifecycle von Komponenten, Datenbankzugriff etc., eignen sich jeweils andere Artefakte für die Modellierung.
- Aktive Beteiligung der Auftraggeber und Nutzer: Beteiligen Sie Auftraggeber, Endanwender und Nutzer des zu erstellenden Systems am Entwicklungsprozess. Damit ermöglichen Sie zeitnahe Entscheidungsprozesse, frühes Feedback und bessere Priorisierung der Anforderungen des zu entwickelnden Systems.
- Pair Modelling/Pair Diagramming: Modellieren Sie Ihre UML-Diagramme in kleinen Teams (z.B. mit zwei oder drei Mitarbeitern). Setzen Sie sich z.B. zu zweit an den Computer.
- Parallele Entwicklung mehrerer Modelle: Modellieren Sie verschiedene Diagramme zu bestimmten Anforderungen gleichzeitig, z.B. Klassen- und Sequenzdiagramme. Damit lassen sich die Artefakte gegenseitig verifizieren und „beflügeln“.
- Gemeinsame Nutzung der Artefakte: Ein jedes Artefakt sollte prinzipiell – wenn erforderlich – von jedem Projektbeteiligten nutzbar und änderbar sein.
- Inkrementelle Entwicklung: Erstellen Sie Ihre Architektur-Artefakte inkrementell in kleinen Schritten. D.h. erarbeiten Sie ihre Modelle auf der Basis einiger weniger Anforderungen. Spezifizieren Sie Ihre UML-Diagramme nur für die Anforderungen, die Sie explizit bearbeiten wollen. Spezifizieren Sie Ihre Modelle nicht für zukünftige Iterationen.Dazu dienen zukünftige Anforderungen. Und diese können völlig anders aussehen, als die, die Sie zur Zeit bearbeiten. Dann hätten Sie für den Papierkorb modelliert, aber nicht für die zu erstellende Software.
- Kurze Iterationszyklen: Ein Vorteil bei der Nutzung kurzer Iterationszyklen ist, dass Sie den Kunden schneller zufrieden stellen, da Sie nur Anforderungen der jeweils höchsten Priorität bearbeiten. Außerdem führt dieses Vorgehen dazu, dass Anforderungen schneller erarbeitet und spezifischer auf die zu erstellende Software abgestimmt werden können.
- Veränderungen aufgreifen: Nehmen Sie veränderte Anforderungen bzw. Veränderungen bereitwillig an („embrace change“). Veränderungen sollten Sie nicht als Feind, sondern als Freund annehmen. Veränderungen beinhalten immer auch neue Chancen und können kreative Energien freisetzen. Veränderte Anforderungen ermöglichen es dem Auftraggeber bzw. Kunden, das jeweils optimalste Produkt zu entwickeln.
- Refactoren Sie frühzeitig: Nutzen Sie „Refactoring“-Techniken kontinuierlich auch im Kontext der Modellierung. Warten Sie nicht irgendwelche Reviews ab, um Ihre Modelle zu verbessern. Tun Sie es dann, wenn Sie den Eindruck gewinnen, dass es etwas zu verbessern oder zu konsolidieren gibt. Greifen Sie zurück auf bekannte Patterns oder suchen Sie nach schon erstellten Mustern, wenn Sie ein schwieriges Problem zu lösen haben. Aber übertreiben Sie dabei nicht. Refactoren Sie Ihre Modelle nur für die vorliegenden Anforderungen, nicht aber für denkbare zukünftige Iterationen oder Anforderungen, denn diese können wieder ganz anders aussehen.
- Testen Sie: Testen Sie Ihre Modelle parallel zur Modellierung. Verfeinern Sie Ihre Modelle, bis sie fehlerfrei ausführbar sind. Damit sind Sie in der Lage, frühzeitig Feedback zum Produkt einzuholen und dem Kunden bzw. Auftraggeber schnell sichtbare Ergebnisse vorzuweisen.
- Reviews: Nutzen Sie Reviews am Ende einer Iteration. Damit erhalten Sie die Möglichkeit, herauszufinden, welche methodischen Ansätze gut waren, wie Sie Ihre Schätzungen realistischer angehen können und was Sie in Zukunft besser machen können.
- Nutzen Sie einfache Techniken und Tools: Eine Nutzung möglichst einfacher Techniken bzw. Tools, um Ideen, Diagramme, Konzepte etc. zu dokumentieren und zu visualisieren, beschleunigt und erleichtert den Kommunikationsprozess im Team. Erschweren Sie sich selbst und anderen nicht die Arbeit durch unnötig komplizierte, lernintensive Toolumgebungen.