Das kurzfristige Anforderungsmanagement für agile Projekte scheint mir ein gelöstes Problem zu sein.
Aus der Perspektive von Scrum werden neue Anforderungen oder Änderungen an vorhandenen Anforderungen durch User Stories bereitgestellt. Und User Stories, die unter einem Epos oder Feature zusammengefasst sind, erleichtern die Bereitstellung komplexerer Anforderungen.
Natürlich ist eine User Story technisch gesehen kein Anforderungsdokument. Es handelt sich um eine überschaubare Gruppierung von Arbeiten, die dem entspricht, was häufig als vertikaler Funktionsbereich bezeichnet wird. Der Umfang dieser Geschichten kann durch die Verwendung von Akzeptanzkriterien (AC) eindeutig definiert werden.
Obwohl User Stories keine formalen Anforderungen sind, können Sie durch Durchsuchen der User Stories eine ziemlich klare Vorstellung von den zugrunde liegenden Anforderungen erhalten. Kurzfristig.
Ich sage kurzfristig, weil mit fortschreitendem Projekt die Anzahl der User Stories zunimmt. Daher wird das Durchsuchen einer ständig wachsenden Liste von Geschichten, um eine Anforderung zu finden, mit der Zeit immer weniger effizient.
Dieses Problem wird noch verstärkt, wenn Sie User Stories berücksichtigen, die frühere Stories erweitern, ersetzen oder sogar negieren.
Stellen Sie sich nun eine 2-jährige Pause zwischen den Entwicklungsiterationen eines Projekts vor (produktionsstabil). Das ursprüngliche Team ist weg und so ist all ihr Wissen.
Wenn das ursprüngliche Team wüsste, dass dies passieren würde (z. B. aufgrund der Art des Geschäfts), welche Maßnahmen könnten sie ergreifen, um nachfolgenden Teams zu helfen?
Sicher, der Backlog wird einige Informationen liefern, aber es ist kaum in einer leicht durchsuchbaren Form.
Was kann also getan werden, damit nachfolgende Teams den Stand des Projekts verstehen, einschließlich warum und wie es dort ankam?
Nach meiner Erfahrung funktionieren die folgenden Dinge nicht:
- Backlog-Optimierung zum Löschen oder Aktualisieren früherer User Stories, sodass das Backlog als Anforderungsdokument gelesen werden kann.
- Dokumentation Sprints, in denen Teammitglieder den aktuellen Status des Systems dokumentieren müssen.
- Dokumentation durch Verhaltenstests . Dieser Ansatz ist der einzige, der meiner Arbeit sehr nahe gekommen ist. Coded Behaviour Tests sind leider Opfer des Namensproblems. Obwohl die Tests das System möglicherweise ordnungsgemäß dokumentieren, ist es fast unmöglich, ein fluktuierendes Entwicklerteam dazu zu bringen, ihre Tests nach derselben Domain-Terminologie, demselben Domain-Wortlaut und demselben Domain-Stil zu schreiben.
Also, um es noch einmal zu wiederholen:
Wie managt man Agile Projektanforderungen langfristig?