Angeben von Schätzungen bei der Arbeit mit unbekannter Technologie?

19

Vor kurzem wurde ich mit einem neuen Problem konfrontiert, um eine Schätzung für ein Projekt vorzulegen, in dem ich ein Framework (und möglicherweise Teile eines anderen Frameworks) verwenden muss, mit denen ich nicht vertraut bin. Es ist für mich viel einfacher, Schätzungen zu erstellen, wenn ich die mir vertrauten Informationen verwenden kann, aber es war, als hätte sich eine lähmende Analyse ergeben, als eine Schätzung für Arbeiten in unbekanntem Gebiet angefordert wurde.

Meine Lösung war im Nachhinein falsch. Ich habe nur angefangen zu arbeiten.

Wie kann ich Projekte und Aufgaben besser einschätzen, wenn ich mit unbekannten Sprachen / Technologien / Frameworks arbeiten muss?

Sampson
quelle
2
Es ist praktisch unmöglich, eine Schätzung für etwas abzugeben, das Sie noch nie getan haben. Ich habe diese Analogie kürzlich auf die Frage gegeben, wie lange etwas dauern würde, wenn es viele Unbekannte gäbe: "Stellen Sie sich vor, Sie gehen nachts auf dem Lande spazieren. Es ist pechschwarz. Sie müssen eine Meile über Land laufen. Sie wissen, in welche Richtung Sie fahren Sie müssen gehen, aber Sie haben nur eine Laterne, die zehn Fuß beleuchtet. Sie haben keine Ahnung, was vor Ihnen liegt: Feld, Fluss, Berg. Angesichts dessen können Sie fundierte Vermutungen anstellen, aber letztendlich sind Sie Dingen unterworfen, die außerhalb Ihrer Kontrolle liegen "
Nemi
Dies hängt auch vom Zweck der Schätzung ab. Schätzen Sie für den wahrscheinlichsten Fall? Schlimmsten Fall? Gibt es harte Fristen?
David Thornley
@ David Ich glaube, das wäre ein "höchstwahrscheinlicher" Fall.
Sampson

Antworten:

18

Die Standardantwort aus dem agilen Lehrbuch ist das Ausführen eines Spikes. Ein Spike ist eine zeitaufwändige Aufgabe, um das Unbekannte zu erkunden, sodass Sie am Ende (hoffentlich) genügend Informationen haben, um eine nützliche Schätzung abzugeben, oder eine bessere Vorstellung davon haben, wie viel Zeit Sie benötigen, um diesen Punkt zu erreichen .

Spikes können zwischen 1 Stunde und mehreren Tagen oder sogar länger anhalten. Da sie zeitlich begrenzt sind, besteht für keine der Parteien ein Risiko, und die Ausgaben sind streng begrenzt.

Idealerweise würden Sie während des Spikes ein paar einfache Dinge identifizieren, die mit diesem neuen Framework erreicht werden mussten, und mit ihm sehr einfache Lösungen entwickeln. Wenn Sie fortfahren, lernen Sie, und genau darum geht es bei Spikes.

wolfgangsz
quelle
Vielleicht ist es eine gute Idee hinzuzufügen, dass "Spike" eine Terminologie von Scrum ist .
Jesper
1
Klingt nach einem guten Ansatz. In meinem speziellen Fall bestand meine "Spitze" aus dem Projekt selbst. Es schien mir eine wertvolle Verwendung meiner Zeit zu sein, die Aufgabe tatsächlich als Tor zur Vertrautheit zu nutzen und nicht als eine nicht zusammenhängende Aufgabe.
Sampson
10

Die klassische Art, dies zu tun, ist die Verfeinerung. Beim ersten Planungstreffen sagen Sie:

"Ich habe keine Ahnung - wir forschen hier im Grunde genommen nach Software. Bis zum nächsten Treffen werde ich jedoch in einigen Monaten eine bessere Schätzung haben."

Dann gehst du weg und recherchierst. Nächstes Treffen:

"Es sieht so aus, als würde es zwischen zwei und vier Quartalen dauern. Wir werden einen Prototyp bauen, mit dem wir die Zahlen weiter verfeinern können."

Nächstes Treffen:

"Der Prototyp war einfacher zu bauen als wir dachten. Es sieht so aus, als könnten wir es in zwei Quartalen schaffen, plus oder minus einem Monat."

und so weiter. In jeder Phase hat das Unternehmen die Möglichkeit, das Projekt zu sperren oder es weiterlaufen zu lassen, um immer bessere Schätzungen für den Fertigstellungstermin zu erhalten.

Dies wird sehr gut in Steve McConnells großartigem Buch Rapid Development beschrieben , das es verdient, weitaus bekannter zu werden. Sicherlich ist es jedem der Bücher über "Agile", die ich gelesen habe, weit überlegen.

Neil Butterworth
quelle
+1 Danke für den Einblick, @Neil. Ich werde auch in den Buchvorschlag schauen.
Sampson
2

Sie können Nachforschungen anstellen und trotzdem falsche Schätzungen anstellen. Siehe Grundlegende Grenzen der Softwareschätzung von JP Lewis und das Begleitmaterial Mathematische Grenzen der Softwareschätzung . Ich sage nicht, dass Sie sich nicht die Mühe machen sollten, zu schätzen oder zu recherchieren, sondern nur, dass Sie keine objektiv genaue Schätzung vornehmen können, und Sie müssen dies zusammen mit der Schätzung sagen, zu der Sie gelangen.

Bruce Ediger
quelle
3
Schätzungen sind per definitionem ungenau, und es scheint, dass viele Manager und / oder Kunden mit dieser Realität zu kämpfen haben.
Wolfgangsz