Dokumentation¶
Einstieg¶
Die Dokumentation ist ein wichtiger, wenn nicht sogar der wichtigste Teil eines Projekts.
Hier möchte ich dem Leser wichtige Konzepte rund um die Dokumentation näherbringen.
Dokumentationstaktiken¶
Die nachfolgenden Dokumentationstaktiken finden im Zusammenhang mit der Niederschrift von Anforderungen seitens der Auftragsgeber Anwendung.
- Lastenhefte¶
Bei einem Lastenheft handelt es sich um ein Dokument, welches detaillierte Spezifikationen beschreibt, sowohl sachlich, wie auch technisch, und lässt auch kategorisierte Anforderungen zu.
- User Stories¶
User Stories behandeln explizit die Perspektive des Endnutzers auf die Applikation. Diese sind in kurzer Form gegeben und behandeln möglichst grundlegende Funktionen. Sie werden oft in der „Als [Benutzerrolle] möchte ich [eine Aktion], um [einen Nutzen zu erhalten]“ Form beschrieben.
- Use Cases¶
Use Cases sind spezifische Szenarien, in welchen welchen das Produkt sich auf eine bestimmte Art und Weise Verhalten soll. Sie legt Fokus auf die Interaktion zwischen dem Produkt und dem Nutzer und liefert leicht verständliche Beispiele zur Funktionsweise des Produktes.
- Prototypen¶
Kleine Prototypen ermöglichen die frühe Ausmärzung möglicher Missverständnisse und sind ebenfalls ein erster Schritt in der Umsetzung, was einen Fortschritt in der Umsetz selbst bedeutet.
- Datenmodelle¶
Datenmodelle (zum Beispiel: Entity-Relationship-Diagramm) ermöglichen eine visuelle Darstellung der Struktur einer Datenbank oder geben auch Auskunft über den Aufbau eines späteren Produktes.
Wichtige Konzepte¶
Personas¶
Personas sind Spezifikationen, welche die Zielgruppen des Produktes repräsentieren. Sie ermöglichen das Hineinversetzen in einen Kunden und das Nachvollziehen dessen Bedürfdnisse und so kann das Produkt besser an die Anforderungen des Kunden angepasst werden.
Personas können bereits in der Informationsphase ausgemacht werden und mit dem Kunden ausgearbeitet werden, was so die Personas auch für die Planung und das Fällen von funktionsspezifischen Entscheidungen vereinfacht, da weniger Mutmassungen bezüglich der Ziele des Produktes notwendig sind.
Oftmals werden Nutzermodelle mittels folgender Vorlage formuliert: „Persona A, ein erfahrener Benutzer, benötigt Funktion X, um seine Arbeitsabläufe effizienter zu gestalten“.
Gut formulierte Anforderungen¶
Details in Anforderungen¶
Es ist überaus wichtig, dass die Anforderungen möglichst tiefschürfend festlegen, wie das Produkt strukturiert sein soll und wie es funktionieren soll. Dies bedeutet, dass die Struktur des Produktes und seiner Komponenten anhand der Anforderungen erahnbar oder gar eindeutig sein sollte.
Eindeutigkeit der Anforderungen¶
Bei der Überprüfung einer Anforderung auf deren Eindeutigkeit ist diese mit anderen Anforderungen zu überprüfen und sicherzustellen, dass diese nicht im Widerspruch zu den übrigen Anforderungen steht, also beispielsweise eine Anforderungen bestimmte Technologien voraussetzt, während eine andere Anforderungen andere, konfliktbehaftete Technologien voraussetzen.
Messbarkeit der Anforderungen¶
Es gilt sicherzustellen, dass alle Anforderungen eindeutig als „erreicht“ oder „nicht erreicht“ eingestuft werden können. Dies ist wichtig, da damit Meilensteine gesetzt werden können, was die Durchführung von beispielsweise Scrum Stints vereinfacht, und so die Auswertung eines Auftrages anhand einer Anforderung eindeutig und klar ist.
Anforderungen katalogisieren¶
Katorisierung anhand Anforderungstypen¶
Die Anforderungen können mittels Anforderungstypen kategorisiert werden. Gängige Typen sind zum Beispiel: Funktionale Anforderungen, entwicklungsspezifische Anforderungen und repräsentative Anforderungen.
Kategorisierung anhand Relevanz¶
Im Weiteren, ins besondere im Zusammenhang mit Meilensteinen, können Anforderungen anhand deren Relevanz im Generellen oder in Relation zu anderen Anforderungen.
Aufwandsschätzung Auftrag¶
Analyse der Anforderungen¶
Alle Anforderungen sollten unter die Lupe genommen werden und es soll festgestellt werden, ob, und, gegebenenfalls, welche Anforderungen Komplikationsrisiken mit sich bringen, also den Bedarf an einem Zeitpuffer nahelegen. Ausserdem gilt es, jene Aufträge mit hoher Relevanz zu priorisieren.
Zeitrahmen für Umsetzung¶
Die Implementation einer Anforderung bring manche zeitlichen Faktoren mit sich. Diese währen zum Beispiel die Integration in eine bestehende Infrastruktur oder die Einarbeit in eine neue Technologie im Rahmen des Auftrages. Es gilt, diese Faktoren in die Zeitschätzung einzubeziehen.
Zeitrahmen für die Dokumentation¶
Nach Umsetzung oder währendessen sollte dokumentiert werden, was wann geändert wurde und weshalb es geändert wurde. Es sollte besser Zeit im Überfluss, als spärlich, für die Dokumentation beansprucht werden, da die Dokumentation für andere Entwickler am Projekt enorm relevant sein kann, wenn es darum geht, das Projekt kennenzulernen oder Änderungen und deren Hintergrund nachzuvollziehen.
Einbezug eines Puffers¶
Für den Fall von unerwarteten Komplikationen Puffer einzuplanen, damit genug Zeit besteht, diese aufzulösen und die Deadline einzuhalten.
Qualität der Anforderungen¶
Regelmässigkeit der Absprachen¶
Die Ansprache im Bezug auf die Anforderungen und Plänen eines Projektes sollte regelmässig gehalten werden und möglichst viele Illustrationen und Demonstrationen beinhalten und sollte, falls notwendig, überarbeitet werden.
Anpassungen nach Notwendigkeit¶
Anforderungen sollten im Falle von Überarbeitungen umgehend angepasst werden und sollten, im Rahmen der Planung, auch an die gegebenen, technischen Aspekte angepasst werden.