Zu dieser Frage wird es noch viele gute Ideen geben. Meine persönliche Erfahrung hat mich das gelehrt:
1~ Das funktionierende Produkt ist selbst eine Form der Dokumentation: Wenn das Produkt akzeptiert wird, dann ist die Frage, was es unter bestimmten Bedingungen tun sollte, gleichbedeutend mit der Frage, was es unter diesen Bedingungen tatsächlich tut - loggen Sie sich ein und probieren Sie es aus, um Ihre Antwort zu erhalten.
2~ Die Tests, seien sie manuell oder automatisiert (oder eine Mischung), sind eine Form der Dokumentation. Sicherlich können Unit-Tests viel zu weit von der Fachsprache entfernt sein, die von den weniger technisch orientierten Teammitgliedern gesprochen wird (z. B. von den "Business Experts" oder den Kunden). Abnahmetests sind vielleicht eher eine Art "Mittelweg". Auf jeden Fall scheinen BDD-Tests die besten Chancen zu haben, eine allgegenwärtige Sprache zu entwickeln, die jeder verstehen kann (siehe in diesem Zusammenhang Gojkos Überbrückung der Kommunikationslücke ). Nichtsdestotrotz sind alle diese Formen von Tests eine Form der Dokumentation, die dazu verwendet werden kann, zu bestimmen, was das Produkt tun soll.
3~ Je nachdem, wo Ihr Projekt auf dem Spektrum liegt, kann Ihre Dokumentation (und im Allgemeinen alle Ihre zusätzlichen Artefakte) einen höheren oder niedrigeren Grad an Zeremonie erfordern. Kleinere Produkte, kleinere Teams, bei denen die Markteinführung von entscheidender Bedeutung ist, werden feststellen, dass eine sehr formale Dokumentation der Anforderungen im Vergleich zu ihrem Mehrwert viel zu viel kostet. Bei extrem großen Projekten, die sich über mehrere Teams und Jahre der Entwicklung erstrecken, sieht der ROI einer formalen Dokumentation dagegen ganz anders aus.
4~ In einer perfekten Welt bräuchten wir wahrscheinlich keine Anforderungen zu dokumentieren, außer in Form von funktionierendem Code (der im Elfenbeinturm auch selbsterklärend wäre) und Tests (hauptsächlich für Regressionstests und - am Rande - um die Entwicklung neuer Funktionen voranzutreiben). Die Frage der Anforderungsdokumentation ist also eine Frage danach, was der Unterschied zwischen der perfekten Welt/dem Elfenbeinturm und der realen Welt/den Gräben ist. Die Antwort ist natürlich von Fall zu Fall unterschiedlich, je nach Projekt und Team. Wir könnten z. B. sagen: "Alle Anforderungen werden in diesem Wiki festgehalten und mit größter Sorgfalt gepflegt usw. usw...", aber wenn das Team nicht mit Wikis vertraut ist und sich damit nicht auskennt, würde das nicht funktionieren.
5~ Letztlich sind die Betroffenen diejenigen, die Sie fragen sollten. Natürlich sollte das Thema in einer kollaborativen Art und Weise angegangen werden, da jeder im Team während des gesamten Projekts mit den Anforderungen interagieren muss, aber Sie müssen eine Form der Dokumentation finden, die den Bedürfnissen der Stakeholder entspricht.
Abgesehen davon habe ich hier einige Orte gesehen, an denen Anforderungen bei der Anwendung von Scrum dokumentiert wurden (warum habe ich das Gefühl, dass diesem Wort immer ein Sternchen folgen sollte?):
- PDF-Dokument
- Schwarze Bretter
- Wiki
- Wiki + automatisierte Akzeptanztests (lies: FitNesse)
- Einheitliche Tests
- Manuelle Testpläne
- User Stories, Use Cases Diagramme (lies: Enterprise Architect Modelle)
- Whiteboards im Büro
- E-Mails
- Post-it-Zettel
Und um ehrlich zu sein, kann ich nicht sagen, dass ein bestimmtes System eine durchgängig höhere Korrelation mit einem erfolgreichen Projekt aufweist als die anderen. Ich denke, wir haben in der Tat kein Patentrezept.
HTH, danke für den Denkanstoß!