Wie lassen sich die Vorteile der agilen Entwicklung in einem Festkostenprojekt nutzen?

Ich bin kürzlich in ein Unternehmen eingetreten, das begonnen hat, sich in Richtung einer „agileren“ Entwicklung zu bewegen. Ich war bereits Product Owner für ein internes Softwareprojekt und das hat, soweit ich das beurteilen kann, ziemlich gut funktioniert (ich bin auch neu in der Rolle und kein Entwickler).

Allerdings werde ich bald Product Owner für ein Softwareprojekt mit festen Kosten sein. Uns wurden die Anforderungen so detailliert übermittelt, dass ein Angebot unterbreitet werden konnte.

Die Idee ist, ein Kick-off-Meeting mit dem Kunden abzuhalten, um „grobe“ funktionale Designspezifikationen zu erhalten. Ein Blick in den Vertrag verrät, dass es zumindest laut dem, was dort steht, doch nicht so ruppig werden wird.

Ich sehe viele Probleme auf mich zukommen. Ich mache mir etwas Sorgen, dass mein Unternehmen am Ende von mir erwartet, dass ich den Rückstand so aufarbeite, dass die gelieferte Funktionalität nicht mehr ist als die in der "groben" Spezifikation festgelegte, während der Kunde keinen Grund sieht, bis dahin mit der Arbeit aufzuhören perfekt gelöst.

Ich habe sehr wenig Erfahrung als Product Owner und möchte wirklich, dass dieses Projekt gut läuft, weil mir gefällt, was der Kunde mit dem Projekt erreichen möchte.

Wie kann ich unter diesen Umständen die Vorteile der agilen Entwicklung nutzen?

SPOILER (nach ein paar Monaten im Projekt): Wie von vielen in diesem Thread vorhergesagt (und irgendwie von mir erwartet) funktioniert es nicht so gut. Die Probleme, die ich erwartet hatte, traten ein... Glücklicherweise wird dies höchstwahrscheinlich das erste und letzte Projekt sein, das auf diese Weise "gemanagt" wurde. Wenn Sie sich in einer ähnlichen Situation befinden: protestieren Sie, halten Sie alles transparent, damit Ihnen niemand die Schuld gibt, protestieren Sie, ...

Ein allgemeiner Tipp ist, das Projektmanager-Dreieck stark im Auge zu behalten: en.wikipedia.org/wiki/Project_management_triangle Mir persönlich hat es geholfen zu erklären, dass es einfach nicht möglich ist, alles zu tun, was alle wollen, und trotzdem ein Qualitätsprodukt rechtzeitig herauszubringen, ohne zusätzliche Kosten zu verursachen Budget und ohne Einschränkung der Funktionalität.
Ist Ihr Projekt termingebunden – gibt es einen festen Liefertermin, bis zu dem Sie die vertraglichen Verpflichtungen erfüllen müssen? Wie viel Kontakt werden Sie mit dem Kunden haben und wie schnell wird er in der Lage sein, auf Fragen zu antworten? Wie viel Domänenwissen haben Sie darüber, wie der Kunde die Software verwenden möchte?
Thomas, irgendwie, aber nicht so sehr - wichtiger noch, die Anzahl der Entwicklertage ist festgelegt. Ich denke, ich werde regelmäßig in Kontakt bleiben und bin zuversichtlich, dass sie Fragen beantworten werden, die ich zwischen den geplanten Treffen haben werde. Ich habe gute bis sehr gute Fachkenntnisse. Ich kenne ihr Geschäft auf einer abstrakteren Ebene sowie die meisten Details der Prozesse, die sie verwenden.
Regel Nr. 1: Arbeite NIEMALS an groben Spezifikationen. Es wird nur an Spezifikationen gearbeitet, die sowohl vom Kunden als auch von der Person in Ihrem Unternehmen mit den entsprechenden Befugnissen genehmigt wurden.
Okay, Danny, aber ist es nicht die Realität, dass Sie ( [fast sicher] ( en.wikipedia.org/wiki/Almost_surely ) ) NIE die genauen Anforderungen kennen werden, bevor Sie mit der Arbeit begonnen haben, daher ist es wirklich eine Verschwendung, die Dokumente so detailliert zu erstellen von Zeit? Die High-Level-Funktionalität ist bereits im Vertrag beschrieben.
@DannySchoemann - Kontext ist alles und "nie" ignoriert den Kontext. :)
@BootstrapBill - je detaillierter die Spezifikation, desto schneller die Codierung und desto weniger Änderungen. Das mag Sie überraschen, aber in manchen Unternehmen werden Spezifikationen in der Regel als vollständig deklariert, und alle Änderungen sind als Änderungsanforderung kostenpflichtig . Viel Spaß beim Schießen auf ein sich bewegendes Ziel.

Antworten (4)

Scrum ist ein agiles Framework, das sich auf die Anpassung an Veränderungen und die Bereitstellung von Geschäftswert konzentriert. Es ermutigt zu Feedback und versucht, das zu liefern, was benötigt wird, was oft nicht mit dem übereinstimmt, was ursprünglich geplant war.

Die Kombination von Scrum mit einem Festpreisvertrag mit festem Umfang ist eine Herausforderung. Dies kann häufig zu Streitigkeiten zwischen dem Kunden und dem Lieferanten darüber führen, was eine gültige Änderung ist und was als „neue“ Funktionalität bezahlt werden sollte.

Dies ist besonders schwierig für Sie, da es sich so anhört, als ob Sie keine echte Product Owner-Rolle haben, da Sie keine Entscheidungen über den Umfang treffen können.

Meine Empfehlung wäre, einen sehr transparenten Ansatz für Ihre Arbeit zu verwenden. Stellen Sie sicher, dass alle Entscheidungen zur Funktionalität klar beschrieben und auch die Auswirkungen der Änderung deutlich gemacht werden.

Es würde sich lohnen, eine häufige Release-Planung durchzuführen. Hier sehen Sie sich die Geschwindigkeit des Teams an und sehen, wie lange es braucht, um die verbleibende Arbeit zu erledigen. Wenn der Kunde Änderungen vornimmt und das Team auf technische Probleme stößt, stellen Sie möglicherweise fest, dass sich auch der Projekttermin (und die Projektkosten) ändern. Der beste Ansatz besteht darin, diese Änderungen und ihre Auswirkungen so öffentlich wie möglich zu machen, damit sie sowohl von Ihrem Kunden als auch vom Managementteam in Ihrer Organisation diskutiert werden.

Einige Teile von Scrum können Ihnen dabei helfen, die Dinge transparent zu machen. Stellen Sie sicher, dass der Rückstand öffentlich ist und der Fortschritt deutlich angezeigt wird. Sprechen Sie häufig mit Ihren Stakeholdern und stellen Sie sicher, dass sie sich voll und ganz mit dem Projekt beschäftigen.

Agile Methodik und Festpreisprojekte passen nicht gut zusammen, da Sie bei einer Festpreislieferung nicht in der Lage sein werden, die besten Vorteile einer agilen Projektdurchführung zu erzielen. Um ein Beispiel zu nennen: Es ist schwierig, Demo-Änderungen und Geschäftsänderungen zu integrieren, wenn Sie innerhalb fester Grenzen arbeiten.

Trotzdem können Sie mit den folgenden Schritten/Vorbereitungen immer noch Sprints/Agilität durchführen.

  1. Stellen Sie sicher, dass Sie die klar definierten Spezifikationen und Funktionen verstehen, bevor Sie sich auf das Festgebot festlegen.
  2. Lassen Sie keine offenen Posten/Mehrdeutigkeiten aus – entweder nehmen Sie diese nach Abwägung der Risikofaktoren in Ihre Festpreislieferung auf oder lassen sie weg.
  3. Planen Sie Ihre Iterationen und Sprintziele. Sprint Null ist eine gute Phase dafür, da Sie Elemente in Sprints zusammenfassen können, was den Aufwand reduzieren könnte. (Beachten Sie, dass dies gegen die agilen Prinzipien der „gerade ausreichenden“ Planung verstößt.)
  4. Erstellen Sie eine Liste der von dieser Lieferphase ausgeschlossenen Artikel/Funktionen (ggf. mit groben Schätzungen).
  5. Behalten Sie Ihren Fortschritt im Auge und seien Sie transparent in Bezug auf Verzögerungen und unerwartete Probleme.
  6. Arbeiten Sie so viel wie möglich mit den Stakeholdern zusammen, damit Sie die Erwartungen effektiv steuern können.
  7. Bleiben Sie in der Nähe des Teams und stellen Sie sicher, dass es die Anforderungen richtig versteht und befolgt. Es kann passieren, dass sie abschweifen und unnötigen Code/Testdaten erzeugen, wodurch Sie Zeit verlieren.
  8. Die Durchführung von Demos in dieser vordefinierten Reise ist eine Herausforderung. Sie müssten die Vorschläge/Änderungen wahrscheinlich in den Rückstand aufnehmen, um sie in der nächsten Phase anzugehen, anstatt sie im nächsten Sprint umzusetzen. Wenn Sie aus irgendeinem Grund (z. B. geschäftlicher Wert) aufgefordert werden, einen zu implementieren, stellen Sie sicher, dass Sie einen Artikel mit gleichem Gewicht tauschen.
  9. Raten Sie dem Team, viel zusammenzuarbeiten, damit die Szenarien klar sind, und dies wird Fehler reduzieren und auch Behebungen einfach und schnell machen.
  10. Vor allem ist es wichtig, dass Sie den Ansatz und die Einschränkungen mit dem Team und dem Business/Product Owner und anderen Stakeholdern besprechen und deren Zustimmung einholen, bevor Sie beginnen.

Es fühlt sich sehr nach Wasserfall an und ist mit Sicherheit weniger befriedigend, aber Sie können planen, in jedem Sprint einen geschäftlichen Mehrwert zu liefern und weiterzumachen!

Dies ist (genau wie Barnabys Antwort) sehr hilfreich! Daher akzeptiere ich seine Antwort als "offiziell" und möchte mich bei Ihnen persönlich bedanken :)

Legen Sie den Umfang fest, dann den Preis. Aktualisieren Sie ständig, während Sie Fortschritte machen.

Versuchen Sie, das Projekt in einem Bereich zu schätzen, der Ihren groben Vorstellungen entspricht. Da sie „grob“ sind, können die Kosten- und Zeitschätzungsbereiche relativ weit auseinander liegen. 10.000–20.000 oder 3.–4. Quartal 2016.

Verwenden Sie Iterationen für die Entwicklung. Nach jeder Iteration gewinnen Sie mehr Wissen über das Projekt und die Spezifikationen. Alle neuen Erkenntnisse, die sich auf die Kosten auswirken könnten, sollten angemessen mitgeteilt werden. Arbeiten Sie mit dem Team zusammen und aktualisieren Sie die Schätzungen entsprechend.

Analysieren Sie den Fortschritt und die verbleibende Arbeit. Bestimmen Sie, was wichtiger ist – das Produkt zu liefern oder das Budget nicht zu überschreiten. Auf dieser Grundlage wird das Projekt so ausbalanciert, dass es die erforderlichen Ergebnisse liefert.

Zwei Dinge sollten während des Projekts passieren, während Sie mehr Wissen gewinnen und die Unsicherheit über Anforderungen verringern:

  1. Sie erkennen, dass es nicht möglich ist, diesen Umfang zu diesen Kosten zu liefern. In diesem Fall beantragen Sie eine Budgeterhöhung und erhalten diese

oder

  1. Die Kosten bleiben gleich, aber Sie gleichen den Umfang aus, damit er zum Budget passt.

Agile Best Practices, die Sie verwenden können: - Iterativer Ansatz (Arbeiten in Sprints); - Sprint-/Release-Planung; - Backlog-Verfeinerung (neue Priorisierung der Arbeit vor jedem Sprint, basierend auf der Situation im Projekt). Sie können die Risiko-Wert-Beziehung verwenden, um sie besser zu priorisieren; - Story Point-Schätzungen, die Ihnen im Laufe der Zeit Geschwindigkeit bringen werden. Damit können Sie die Kosten zukünftiger Artikel, an denen Sie arbeiten werden, aus dem Rückstand berechnen und vorhersagen. Dies hilft Ihnen bei der Budgetverwaltung; - Verfolgen Sie alle Änderungen, schätzen Sie deren Auswirkungen auf den Kostenplan ein; - Machen Sie das Projekt für die Stakeholder so transparent wie möglich. Sie müssen es so verwalten, dass sie verstehen, "WARUM" das Projekt mehr kostet oder länger dauert, wenn dies der Fall sein wird.

Ich bin mir nicht sicher, was Agile (oder eine andere Methodik) mit dieser Frage zu tun hat.

Ohne eine abgemeldete Spezifikation schießen Sie auf ein sich bewegendes Ziel. Sie könnten eine Weile an etwas arbeiten, es fertigstellen, zu anderen Teilen übergehen und dann das ursprüngliche Teil umrüsten, was sich auf alle nachfolgenden Teile auswirken kann.

Regel Nr. 1 in effizienter Softwareentwicklung lautet: „ Arbeite NIEMALS an groben Spezifikationen “. Es wird nur an Spezifikationen gearbeitet, die sowohl vom Kunden als auch von der Person in Ihrem Unternehmen mit den entsprechenden Befugnissen genehmigt wurden.

Je detaillierter die Spezifikation, desto schneller die Codierung und desto weniger Änderungen. Das mag Sie überraschen, aber in einigen Unternehmen werden die Spezifikationen tendenziell als vollständig deklariert! irgendwann. Jede weitere Änderung ist als Änderungswunsch kostenpflichtig .

Ich habe einmal für einen Bauunternehmer gearbeitet, der eine Ausschreibung zu einem sehr niedrigen Preis gewonnen hat; unter Kosten. Seine gesamte Gewinnspanne basierte auf Änderungswünschen . Sein Spielplan war es, die Spezifikation so zu definieren, dass sie vollständig schien, aber in Wirklichkeit fehlten Schlüsselelemente. Als der Kunde diese anforderte, wurden sie ihm in Rechnung gestellt.
"Was? Die Tür hat keinen Griff?"
"Nein, das steht nicht in der Spezifikation. Es wurde nur ein Schlüsselloch angegeben."

Scheint, als würde Ihr Kunde anders arbeiten; Halten Sie die Spezifikation offen, damit alles darin enthalten sein kann.

Auf diese Weise zu arbeiten, bringt Ihren Kunden nachweislich keinen Mehrwert. Wenn Sie den Erfolg anhand von „pünktlich, im Rahmen des Budgets und gemäß Spezifikation“ messen, dann fehlt Ihnen der Wert: standishgroup.com/sample_research
@MrHinsh - Wo auf dieser langen Homepage , auf die Sie verlinkt haben, kann ich sehen, dass Sie nicht an groben Spezifikationen arbeiten sollten? (Und ich habe nicht gesagt, dass ich so arbeiten soll, ich habe darauf hingewiesen, wie schlimm es war.)
"Ohne eine abgemeldete Spezifikation schießt man auf ein sich bewegendes Ziel." <--- Du schießt immer auf ein sich bewegendes Ziel. Agilität minimiert die Bewegung mit kleineren und schnelleren Schritten. (Die Standish-Gruppe erfordert leider eine Mitgliedschaft, um auf Berichte zugreifen zu können)