So verwalten und schätzen Sie unstrukturierte Anforderungen, die Sie von Kunden erhalten

21

Häufig erhalte ich während der Angebotsphase eines Projekts die Anforderungen eines Softwaresystems von unseren potenziellen Kunden in einem sehr unstrukturierten Format aus verschiedenen Quellen (E-Mail, Word-Dokumente, Excel). Es sind in der Regel ein paar "Produktentwickler" von Kundenseite, die diese "Lösungsvorschläge" für ihre geschäftlichen Probleme entwickeln. Während sie die Experten auf dem Gebiet der Geschäftswelt sind, haben sie oft nicht die richtigen Lösungen.

Das führt zu

  • mehrere Versionen derselben Anforderung
  • Vermischung zweier Anforderungen zu einer
  • Einige Versionen der Anforderung später werden die Anforderungen, die zusammengefügt wurden, wieder getrennt, wobei jede Version einige der neuen Ergänzungen mit sich bringt

Wie gehen Sie mit solchen Anforderungen um und sortieren sie in geeigneten Anwendungsfällen und bevor die Entwicklung beginnt? Mit welchen Tools können wir den Verlauf einer bestimmten Anforderung vom ersten Entwurf bis zur Kristallisation in einen ordnungsgemäßen Anwendungsfall verfolgen? Das Abschätzen der Arbeit anhand der auf diese Weise erhaltenen Anforderungen ist ein Albtraum, der dazu führt, dass Fehler auftreten, wenn die Anforderung richtig verstanden und der Aufwand dafür richtig abgeschätzt wird.

Sobald wir das Projekt gewonnen haben, haben die Kunden über ihre Anforderungen nachgedacht und es richtig artikuliert. Was in diesem Fall passiert, ist, dass einige Funktionen fallengelassen werden, andere verbessert werden, andere eine völlig neue Wendung einschlagen. Dies kann im Grunde genommen einige der Schätzungen des Arbeitselements zunichte machen, die vor dem Gewinn des Projekts vorgenommen wurden. Mich würde interessieren, ob es ein System gibt, mit dem wir einen Baum für eine bestimmte Anforderung erstellen können und wie jeder Zweig zu einer anderen Schätzung geführt hat.

Gibt es Tipps, Tools und Tricks, mit denen Sie diese Aktivität besser verwalten können? Ich versuche nur, von jemandem, der mehr Erfahrung als ich im Anforderungsmanagement und in der Aufwandsschätzung habe, einige Einblicke zu erhalten.

user20358
quelle
1
Arbeitet jemand aus Ihrem Team mit den "Produktentwicklern" zusammen, um eine Anforderungsanalyse durchzuführen (z. B. ein Business Analyst)?
Deco
Ja, das mache ich in allen Fällen, in denen wir keinen BA einplanen.
User20358

Antworten:

17

Die Anforderungen werden wachsen und sich ändern. Ich glaube nicht, dass irgendjemand darüber streiten könnte.

So erfassen und verarbeiten Sie eingehende Anfragen .

Nach meiner Erfahrung hilft es beim Erfassen von Anforderungen, wenn eine einzelne oder eine sehr kleine Gruppe von Kunden als Filter für die Bereitstellung neuer oder aktualisierter Anforderungen für eine kleine Gruppe von Entwicklungsplanern fungiert. Jeder von ihrer Seite kann sie vorschlagen oder aufschreiben, aber die Zustellung sollte nur durch sehr wenige erfolgen. Je weniger Personen am Austausch zwischen den Parteien beteiligt sind, desto besser.

Der Zweck des Filterns durch eine kleinere Gruppe von Personen besteht nicht darin, den Aufwand und die Informationen, die von anderen eingegeben werden, zu verwerfen oder zu verringern, auch wenn sie doppelt vorhanden oder scheinbar unwichtig sind, sondern die Fehlerquellen zu begrenzen: verloren gegangene oder falsch gehandelte Informationen. Es folgt einem Prinzip, das dem Zweck der Kapselung und der Schnittstellen ähnelt: Schutz privater Daten und Einrichtung eines gemeinsamen Protokolls für die Bearbeitung ähnlicher Anforderungen. Lassen Sie mich wiederholen: Die Vorlage von Duplikaten ist in Ordnung. Als Planer sagt mir das, worüber sie sprechen oder was sie vorschlagen, ist wichtig. Alles speichern oder aufzeichnen.

Nachverfolgung und Organisation von Anforderungen

Kurzfristig auf Low-Tech umsteigen

Offensichtlich gibt es Low-Tech-Lösungen, mit denen sich eingehende Anforderungen in hohem Maße organisieren und verfolgen lassen: Whiteboards, Stickies, Posterboards - was haben Sie? Diese können für die kurzfristige Planung großartig sein. Sie sind gut sichtbar, akzeptieren die Freiformnotation und können einfach neu konfiguriert werden.

Verwenden Sie auf lange Sicht ein durchsuchbares, sortierbares und verlinkbares Softwaretool

Für Bemühungen mit größerer Reichweite wäre eine Art Software wertvoll. Es gibt spezielle Tools für das Anforderungsmanagement: Doors, Clearcase / Clearquest und viele andere. Diese hochspezialisierten Werkzeuge sind großartig in ihrer Arbeit, aber oft übertrieben. Manchmal ist sogar eine einfache alte Tabelle mehr als ausreichend. Ich persönlich finde allgemeine Problemverfolgungssysteme ziemlich nützlich, um dies zu erreichen, und im Moment ist mein Favorit Redmine, aber andere, von denen ich sicher bin, dass sie auch in Ordnung sind.

Mit einem Fehlerverfolgungssystem kann jeder, den Sie zulassen, ein neues Problem oder eine neue Anforderung erstellen und alle Details hinzufügen, die er für angemessen hält. Sie können das Problem beobachten und Feedback zu allen Aktionen geben, die Sie damit unternehmen. Sie können es neu kategorisieren, die Priorität anpassen, den Text umschreiben, zusätzliche Informationen anhängen, ihn mit anderen "Problemen" verknüpfen, auf ein übergeordnetes Feature, einen "Anwendungsfall" oder eine Story oder eine Terminologie, die für Ihr System geeignet ist, ad nauseum werben. Mit anderen Worten, Sie können eine Menge tun, um eine nachvollziehbare, sortierbare, priorisierte, historienbezogene Liste von Anforderungen anhand von Problemen zu erstellen. Wenn das Tool nicht genau das ist, was ich brauche oder will, kann ich es ziemlich einfach ändern, um es besser an die Anforderungen meines Prozesses anzupassen.

Ein letzter Hinweis zu den Tools, mit denen einige Leute, mit denen ich gesprochen habe, viel Erfolg haben, wenn sie einfache alte Textdateien in einem Änderungs- und Versionsverwaltungssystem verwenden. Sie erhalten offensichtlich die Vorteile historischer Versionen. Sie verwenden auch das Basisbetriebssystem und zusätzliche Tools, um die Anforderungen zu finden, zu verknüpfen und zu katalogisieren. Sie sind nicht in der Lage, so viele strukturierte, verwandte Metainformationen hinzuzufügen, aber sie haben nicht das Gefühl, dass sie diese benötigen, und für ihre Bemühungen bieten sie nicht genug Wert. Das kann für Sie der Fall sein oder nicht. Der Vorteil ist, dass möglicherweise einige wenige Software-Teile auf Ihrem Entwicklungsstapel verwaltet und gewartet werden müssen.

Anforderungen nach Auftragsvergabe / Projektentwicklung

Der letzte Aspekt der Frage ist, wie Anforderungen nach Beginn einer Anstrengung verwaltet werden können. Ich denke, es gibt zwei wichtige Überlegungen dazu, und ein Teil davon, wie Sie damit umgehen, hängt von der Art Ihrer Beziehung zum Kunden ab: Erstens können bei einem Vertrag mit einem festen Wert Anforderungen berücksichtigt werden, die nach der Auftragsvergabe eingehen. Die Folge ist, dass sie den Umfang des Aufwands ändern können, sodass der Preis oder die Rechnung höher ist, wenn diese zusätzlichen Artikel geliefert und akzeptiert werden. es sei denn, ein gleichwertiger Aufwand wird aus dem angenommenen Vorschlag entfernt. Wenn sich der Umfang ändert, müssen Sie sicherstellen, dass der Kunde die Konsequenzen versteht und akzeptiert. Andernfalls müssen diese verspäteten Eingaben eingereicht werden.

Zweitens können und sollten Sie für die neuen Anforderungen, die nach der Auftragsvergabe eingehen und die sich eher an zeitlichem und materiellem Aufwand orientieren (was auch immer erforderlich ist, um das Gesamtwerk fertigzustellen), etwas flexibler sein, wenn die Der Kunde besteht darauf, ihn während dieses bestimmten Vorgangs einzuschließen. Sie werden bezahlt, ob Sie es einschließen oder nicht, solange alles, was Sie sagen, getan wird.

Wenn Sie mit ihnen nicht vertraut sind, sollten Sie sich einen Kanban-Ansatz und agile Methoden ansehen. Diese Techniken können dabei helfen, sich auf die unmittelbaren Belange zu konzentrieren, ohne die langfristigen Entwicklungsziele aus den Augen zu verlieren.

Stellen Sie Optionen als Was-wäre-wenn-Szenarien vor und geben Sie dem Kunden die Wahl und die Entscheidung

In beiden Fällen ist eine Was-wäre-wenn-Schätzung eine gute Strategie für Verhandlungen mit dem Kunden und Ihrem Team. Erstellen Sie einen direkten Vergleich der Aufgaben, ihrer Kosten und des Zeitplans, wobei in einer Spalte dieselben Informationen für die alternativen Ansätze angezeigt werden. Microsoft Project ist wahrscheinlich ein guter Kandidat, um dies zu tun, da Sie verschiedene Schätzungen auf der Grundlage eines weitgehend ähnlichen Aufgabensatzes erstellen können.

Selbst eine einfache Kalkulationstabelle ist jedoch oft genauso effektiv, um zu demonstrieren, wie sich bestimmte Änderungen oder Einschlüsse auf Kosten und Zeitplan auswirken würden. Eine Liste in diesem Fall ist wahrscheinlich genauso effektiv, wie ein Baum die Unterschiede demonstrieren könnte. Das Tool und die Methode, die Sie zum Erstellen dieser Szenarien auswählen, hängen weitgehend von der Größe des Projekts und des Personals ab (aber auch Triple-A-Software wie MS Project hat ihre eigenen Grenzen in Bezug auf Nützlichkeit und Leistungsfähigkeit).

Betrachten Sie diese Was-wäre-wenn-Szenarien als interne Arbeitselemente und speichern Sie sie für die Dauer des Projekts. Sie waren wichtige Demonstrationen im Entscheidungsfindungs- und Verhandlungsprozess. Möglicherweise müssen Sie sie auch noch einmal besuchen oder für eine weitere Runde wiederholen.

Bei der Vorbereitung von Was-wäre-wenn-Szenarien kann eine ergänzende Erklärung der Vor- und Nachteile aus technischer Sicht oder aus Sicht der Implementierung (vereinfacht) hilfreich sein, um zu rechtfertigen, warum eine Alternative eine so erhebliche Auswirkung hätte.

JustinC
quelle
4

Ich würde dies als einen iterativen Prozess betrachten. Schritt 1 ist das Sammeln von Anforderungen. Schritt 2 ist, sie zu sortieren. Schritt 3 besteht darin, sie zu priorisieren. Schritt 4 ist die Aufteilung in Bits, die klein genug sind, um den Aufwand abzuschätzen. Schritt 5 besteht darin, diese Bits zu einem globalen Aufwand zu verschmelzen (sagen wir 84 Personentage). In Schritt 6 wird der Aufwand den Ressourcen zugeordnet (84 Personentage / 2 Entwickler = 42 Tage).

Im Moment stecken Sie also zwischen Schritt 1 und Schritt 2 fest. Sie haben Anforderungen, aber Sie haben sie nicht in der Form, die Sie benötigen.

Angenommen, Sie haben mehrere Versionen derselben Anforderung. Sind diese im Wesentlichen gleich? Wenn ja, wählen Sie das aus, was Ihnen am klarsten erscheint, und verwenden Sie es. Wenn sie sich in Details unterscheiden, wählen Sie das aus, was am logischsten erscheint, und verwenden Sie dieses. Senden Sie dann eine Nachricht an den Client, in der er aufgefordert wird, die Anforderung zu überprüfen. Möglicherweise müssen Sie mehrmals hin und her gehen, um die Anforderungen zu erfüllen. Gib nicht auf und lass dich nicht entmutigen. Viele Projekte sind aufgrund geringer Anforderungen gescheitert.

Verwenden Sie Microsoft Project, um die Arbeit und den Zeitplan mit den sich ändernden Anforderungen synchron zu halten. Wenn der Kunde eine Änderung anfordert, spezifizieren Sie die zusätzlichen Arbeiten, schließen Sie diese an Ihr Modell an und teilen Sie ihnen das neue Datum mit. Glauben Sie nicht, dass Sie in unregelmäßigen Abständen neue Entwickler einstellen können, um die Lücke zu schließen. Ihr Zeitplan muss die Hochlaufzeit berücksichtigen, wenn eine neue Ressource hinzugefügt wird. Sie können dies nur dann richtig modellieren, wenn Sie auf jedes Projekt achten und daraus lernen. Nehmen wir an, Sie haben Bob an Bord von Projekt X gebracht, nachdem es 4 Monate durchgearbeitet hatte. Wie produktiv war er im 1. Monat? Der 3.?

Sie sollten das Projektmodell wöchentlich überprüfen und Aktualisierungen vornehmen, wann immer dies erforderlich ist. Führen Sie eine historische Aufzeichnung der Änderungen. Auf diese Weise können Sie in Zukunft bessere Schätzungen vornehmen.

doug

SnoopDougieDoug
quelle