Zunächst einmal entspricht fast nichts in der Antwort von @ DXM meiner Erfahrung mit Agile und insbesondere nicht mit Scrum.
Das Agile Manifest besagt, dass umfassende Dokumentation zwar wertvoll ist, funktionierende Software jedoch MEHR wert ist. Dokumentation ist also sicherlich keine schlechte Sache, aber sie sollte der Erstellung von funktionierender Software wirklich dienlich sein.
Individuen und Interaktionen über Prozesse und Werkzeuge
Arbeitssoftware über umfangreiche Dokumentation
Zusammenarbeit der Kunden bei Vertragsverhandlungen
Reagieren, um nach einem Plan umzuschalten
Das heißt, während die Gegenstände auf der rechten Seite einen Wert haben, schätzen wir die Gegenstände auf der linken Seite mehr.
Jedes Detail festzunageln, bevor mit dem Code begonnen wird, hat sich immer wieder als verschwenderisch erwiesen. Daher wird die Dokumentation in der Regel JIT-gerecht (just in time) behandelt. Das heißt, Sie dokumentieren, was Sie tatsächlich codieren werden.
Eine der gängigen Methoden für Scrum ist die Verwendung von User Stories, die vom Product Owner verwaltet und im Product Backlog gespeichert werden. Das Product Backlog ist eine ziemlich allgemeine Liste aller Dinge, die eine Lösung tun muss, und eine User Story ist im Allgemeinen eine gut dimensionierte Methode, um jede Sache auf der Liste zu beschreiben. User Stories sind nicht obligatorisch, aber sie scheinen eine gute Möglichkeit zu sein, die Details nicht zu übertreiben und stattdessen die Zusammenarbeit zu inspirieren.
Wenn eine Story fertig ist - das Team hat etwas erstellt, getestet und bereitgestellt, das die Akzeptanzkriterien erfüllt -, wird die Story nicht als GEGRIFFEN gekennzeichnet, sondern einfach als erledigt im Backlog markiert -, sodass der Backlog Hinweise enthält von dem, was in jedem Sprint gemacht wurde - Geschichten und die damit verbundenen Punkte. Dies ermöglicht Ihnen die Berechnung der Geschwindigkeit und ist eine wertvolle Dokumentation für sich.
Alles in allem ist eine User Story möglicherweise die gesamte Dokumentation, die zum Verstehen einer Anforderung erforderlich ist. Wahrscheinlicher ist es jedoch, eine Unterhaltung zwischen dem Kunden und dem Entwicklungsteam zu generieren. Aus diesem Grund können Sie im Zusammenhang mit dieser Konversation eine beliebige Anzahl von Aktionen ausführen. Wenn es sich um eine persönliche Ad-hoc-Sache handelt, wie dies häufig der Fall ist, können (und je nach Organisation sollten) die Analysten / Entwickler die getroffenen Entscheidungen aufschreiben und sie irgendwo speichern, z. B. in einem Wiki oder einem Dokumentationsspeicher. Wenn es sich um eine E-Mail-Unterhaltung handelt, können Sie die E-Mails speichern. Wenn es sich um eine Whiteboard-Sitzung handelt, machen Sie mit Ihrem Handy ein Foto des Boards und speichern Sie es. Der springende Punkt ist, dass diese Dinge Ihnen helfen, den Code fertigzustellen, und Ihnen möglicherweise später helfen können, wenn Sie herausfinden müssen, wie oder warum Sie es so gemacht haben, wie Sie es getan haben.
Eine andere Methode, Anforderungen zu erfassen, besteht darin, sie sofort in Testfälle einzubetten (worauf DXM meiner Meinung nach hinausläuft). Dies kann sehr effizient sein, da Sie ohnehin für jede Anforderung einen Test durchführen müssen. In diesem Fall können Sie Ihre Anforderungen effektiv in Ihrem Test-Tool speichern.
Wenn eine Story fertiggestellt (und akzeptiert) ist und der Benutzer seine Anforderungen ändert, müssen Sie wahrscheinlich eine neue Story erstellen. Wenn Sie ein Wiki für Ihre Dokumentation verwenden, können Sie die neue Geschichte wieder mit dem Original verknüpfen und diese ursprüngliche Geschichte ebenfalls mit dem neuen Material verknüpfen, sodass jemand, der sie ansieht, weiß, dass sich die Dinge geändert haben. Das ist das Schöne an Wikis - es ist einfach und ziemlich schmerzlos, Dinge zu verlinken. Wenn Sie den testgetriebenen Ansatz verwenden, aktualisieren Sie entweder den Testfall, um mit der Änderung fertig zu werden, oder erstellen neue Testfälle für die neue Story, wenn sich Alt und Neu nicht gegenseitig ausschließen.
Am Ende kommt es darauf an, was Sie brauchen. Wenn die Leute schnell auf den neuesten Stand gebracht werden sollen, ist es wahrscheinlich eine gute Idee, ein Onboarding-Dokument zu schreiben, um ihnen zu helfen. Lass das also jemand machen. Wie ich bereits erwähnt habe, sind Wikis ein großartiges Werkzeug, um diese Art von Dingen beizubehalten. Sie können also auch Atlassians Lösungen in Betracht ziehen , die das Confluence-Wiki mit Jira und Greenhopper integrieren, um Ihre Geschichten / Aufgaben / Fehler zu verfolgen und Ihr Projekt im Allgemeinen zu verwalten. Es gibt noch viele andere Tools zur Auswahl.