Wie man große F&E-Projekte mit Scrum (oder einem anderen agilen Framework) abwickelt

Zusätzlich zu unseren regulären Softwareentwicklungsaufgaben haben wir einige große F&E-Aufgaben, die wir nur schwer in unser Scrum-Framework integrieren können.

Das Hauptproblem ist, dass es absolut keinen Benutzerwert gibt, bevor das gesamte Projekt abgeschlossen ist, und es ist sehr schwierig, ihn aufzuschlüsseln.

Angenommen, ich möchte einen Algorithmus erstellen, der Katzen von Hunden unterscheiden kann. Wir haben vielleicht schon einen mit einer Leistung von 98 %, aber wir brauchen einen neuen (von Grund auf neu), der 99 % liefern kann. Die wichtigsten Schritte sehen in etwa so aus:

  1. Führen Sie eine Literaturstudie durch
  2. Erwerben Sie einige Bilder von Katzen und Hunden. Vielleicht auch etwas Code, um mit den Bildern umzugehen.
  3. Trainieren Sie einen Algorithmus basierend auf den Daten und testen Sie die Genauigkeit.
  4. Nehmen Sie eine abschließende Validierung der Ergebnisse vor
  5. Implementieren Sie den funktionierenden Prototypen in ein Produkt.

Schritt 1,2,4 und 5 sind einfach und können bei Bedarf weiter aufgeschlüsselt werden. Schritt 3 ist jedoch viel zu groß und viel zu unsicher, um nur eine Geschichte für sich zu sein. Die Erfahrung zeigt, dass der Fortschritt in etwa so sein wird:

  1. Trainieren Sie den Algorithmus mit der in der Literaturstudie gefundenen De-facto-Methode
  2. Machen Sie sich klar, dass Sie eine bessere Leistung benötigen, diese aber möglicherweise erreichen können, indem Sie einige spezielle Informationen in diesen speziellen Anwendungsfall integrieren.
  3. Wenden Sie Tweak #1 an, was die Leistung um x% verbessert
  4. Anpassung Nr. 2 anwenden .....
  5. .....
  6. n Anpassungen später haben Sie das Ziel von 99 % korrigierten Vorhersagen erreicht.

Da jedoch die Anpassung/Optimierung der Hauptteil der Arbeit ist und es oft unmöglich ist, die Anzahl der erforderlichen Optimierungen, die Auswirkung einer Optimierung und die Art der Optimierungen im Voraus vorherzusagen. Wir denken, dass die Planung eines solchen Projekts sehr schwierig ist.

Wir verstehen, dass ein großes (nicht das größte) Ziel der agilen Entwicklung darin besteht, dass Sie sich nach Bedarf anpassen und die Richtung ändern können - und das ist großartig. Aber wie plant/schätzt man eine Geschichte wie diese, wo wir es sehr schwierig finden, den Arbeitsaufwand im Voraus einzuschätzen, und ebenso schwer, das Problem aufzuschlüsseln?

Jedes Feedback ist willkommen

Habe gerade auf eine ähnliche pm.stackexchange.com/a/25022/33769 geantwortet

Antworten (2)

Ich arbeite auch in einem ähnlichen Umfeld.

Ich schlage dich vor:

  • Legen Sie eine maximale Anzahl von Optimierungen fest (oder nehmen Sie eine Timebox vor) und dokumentieren Sie die möglichen „Optimierungen“ und die Zeit, die sie benötigen
  • Arbeiten Sie daran, die Geschwindigkeit Ihres Teams zu verstehen, und versuchen Sie, ähnlich wie im vorherigen Punkt, Gruppen von Aufgaben zu erstellen und die dafür benötigte Zeit zu überprüfen

Diese beiden Punkte helfen Ihnen zu verstehen, wie viel sie dauern können, wenn ähnliche Aufgaben oder Optimierungen erforderlich sind, damit Sie sich ein genaueres Bild davon machen können, wie lange Sie benötigen.

Der agile Softwareentwicklungsprozess fördert die relative Dimensionierung. dh. Wie groß ist eine Arbeit gegenüber einer anderen Arbeit? In diesem Fall klingt es so:

  1. Du hast nichts zum Vergleichen. Eine relative Dimensionierung ist also nicht wirklich möglich.
  2. Die inkrementelle Verbesserung (Umfang der nächsten Optimierung) kann nicht quantifiziert werden.

Sie benötigen also eine Referenz für die relative Größenbestimmung. Zum Beispiel, wenn Sie einige Zahlen aus einem früheren Projekt haben, in dem Sie Vögel und Fische vergleichen. Das könnte helfen.

Alternativ können Sie Wasserfall oder Kanban verwenden. Diese Art von Arbeit klingt ungefähr richtig, um als Wasserfallprojekt geplant zu werden.

Wer auch immer diese Ablehnung abgegeben hat, können Sie bitte beschreiben, warum Sie abgelehnt haben? Dies wird mir helfen zu verstehen, was ich vermisse