Für diese Diskussion Anforderungen = User-Stories (da ich per se keinen Prozess unterscheide und Unklarheiten beseitigen möchte).
Es ist durchaus üblich, einen Satz von etwa 100-500 Anforderungen für kleine bis mittlere Systeme zu haben. Es ist aber natürlich, dass es eine Weile dauert, bis man herausfindet, welche Anforderungen widersprüchlich sind (um so mehr, wenn >1 Stakeholder beteiligt ist). Entweder werden sie mit Excel oder Karteikarten/Post-its oder vielleicht in einem Projektmanagement-Tool erfasst.
Wie also geht man bei der Identifizierung von Konflikten innerhalb von Anforderungen vor? Welche Praktiken haben Sie angewendet und für nützlich befunden (in Bezug auf aufgewendete Zeit/Aufwand und identifizierte Konflikte).
Lohnt sich die Konfliktidentifikation überhaupt, oder ist es besser, sie zu lösen, „wenn Sie dort ankommen“, da dies zu einem Missmanagement der Erwartungen führen könnte, wenn sie später gelöst würden?
Ich spreche NICHT von -ilitätskonflikten. Diese sind aber offensichtlich und sollten meiner Meinung nach früher geklärt werden. Ich spreche von Konflikten zwischen verschiedenen funktionalen Anforderungen zusammen mit funktionalen vs. nicht-funktionalen Konflikten.
Einige Beispiele sind:
Letzteres (direktes) kann verhandelbar sein oder nicht, aber es lohnt sich meiner Meinung nach, es frühzeitig zu erkennen.
Es ist ziemlich umständlich, jede Anforderung einzeln durchzugehen, um Konflikte zu identifizieren. Das Beste ist, den Aufwand aufzuteilen und zu beschleunigen. Eine andere Strategie besteht darin, die Anforderungen hierarchisch zu analysieren, aber das kann bestimmte Konflikte verbergen, die in den unteren "Knoten" auftreten würden (und das sind diejenigen, die Sie meiner Meinung nach später beißen werden :)
Mir sind keine Tools/Techniken/Best Practices bekannt, die helfen würden, Konflikte mit minimalem Zeit-/Aufwandsaufwand zu identifizieren, und daher die Frage. Der obige manuelle Schritt ist der beste, den ich kenne. Ja, in einer idealen Welt wäre es großartig, wenn das Tool potenzielle Konflikte ausspucken würde, aber ich weiß nicht, ob ein Tool dies tut (oder sogar einen halbwegs guten Job macht. Hilfe?)
Was ist also in einer idealen Welt (ohne Maschinen, die natürliche Sprache beherrschen :) die beste Technik, um Konflikte zu identifizieren (vorausgesetzt, es ist menschenintensiv) und welche Erfahrungen haben Sie damit gemacht? Wenn es sich nicht lohnt, erkläre das bitte auch.
Widersprüchliche oder widersprüchliche Anforderungen sind nicht nur Teil eines IT-Projekts, sondern erstrecken sich über alle Arten von Projekten. Sie können sicher sein, dass Sie eine Anforderungsbaseline mit einer Vielzahl inkonsistenter oder widersprüchlicher Anforderungen erstellen werden, egal wie sehr Sie sich auch bemühen, dies zu vermeiden. Darüber hinaus könnte die zur Erfüllung einer Anforderung abgeleitete Lösung eine andere Lösung für eine andere Anforderung brechen oder eine dritte Anforderung unmöglich machen.
Ich finde keinen Wert, dh Geld, das nicht gut angelegt ist, um zu versuchen, dieses Phänomen zu minimieren oder zu beseitigen. Der Grund? Denn wenn Sie einen Satz von Anforderungen aufheben, führen Sie andere Konflikte oder Inkonsistenzen in einem anderen Satz von Kategorien und Klassen von Anforderungen ein.
Anforderungskonflikte sind gewiss, ebenso Änderungen. Aus diesem Grund muss jedes Projekt einen Änderungsmanagementprozess haben, damit bei Konflikten und wenn das Team klüger wird, eine Änderung verarbeitet und genehmigt werden kann. Durch Iterationen und fortschreitende Planung werden Anforderungen entzerrt, konsistent gemacht oder entfernt und ersetzt.
Anstatt also zu versuchen, eine Fähigkeit aufzubauen, um diese Konflikte zu vermeiden, bauen Sie eine starke Fähigkeit auf, mit ihnen umzugehen, wenn sie sich materialisieren.
Sie können diese Art von Situationen wie folgt angehen:
Konflikte im Zusammenhang mit Prozessen wie der Fähigkeit, eine Aktion im System auszuführen. Sie müssen Ihre Anforderungen oder Stories logisch strukturieren und gruppieren.
=> Sie können Ihre Storys auf mehreren Ebenen strukturieren: zB nach Funktionsbereichen (zB Kalenderfunktion) und Prozessbereichen (zB Termine & Meetings erstellen). Auf diese Weise können Sie Ihre Geschichten aufteilen und würfeln, um Konflikte zu identifizieren.
=> Sie sollten auch Ihre Prozesse abbilden, da Sie so Ihre Geschichte End-to-End durchgehen können: Auf diese Weise können Sie Konflikte erkennen, aber auch Geschichten verfeinern/klären. In Ihrem Beispiel könnte „ Teilnehmer-Zeitfenster werden privat sein“ stattdessen „ Meine Zeit wird anderen nur als verfügbar oder nicht verfügbar angezeigt, mit Details zu meinen privaten Terminen und Meetings “ und für „ Der Meeting-Organisator sollte in der Lage sein, das zu sehen Meeting-Zeit aller Teilnehmer vor der Entscheidung für einen Meeting-Slot "könnte statt dessen sein " als Meeting-Organisator kann ich die Verfügbarkeit der Teilnehmer einsehen "). Dies wird auch dazu beitragen, Entscheidungen über Geschäftsregeln zu erleichtern, wenn solche Konflikte auftreten (ist hier die Verfügbarkeit von Personen öffentlich oder nicht?).
Promotion
Adam Würl