Wie lange muss ich damit verbringen, Programmieraufgaben abzuschätzen?

9

Wenn ich beispielsweise ein Projekt in n diskrete Arbeitsprodukte (z. B. Klassen oder Funktionen oder Komponenten) aufteile, gibt es eine Zeit t, in der n * t eine angemessene Zeit für die Schätzung ist?

Michael Behan
quelle
9
Es ist einfach. Planen Sie einfach etwas Zeit ein, um Ihre Arbeitsbelastung zu überprüfen und ungefähr abzuschätzen, wie lange die Schätzungen dauern werden, und ... oh, warten Sie.
Joshin4colours
Da Ihre Schätzungen immer falsch sind, ist keine Kapitalrendite = keine Zeitaufwand. Oh, außer Bosse werden dich zwingen, falsche Schätzungen zu erstellen. Agile Schätzungen, bei denen Sie eine zufällige Fibonacci-Zahl in einer zufälligen Maßeinheit ohne Einheit namens BogoEstimons oder so etwas auswählen, scheinen besser zu sein als Schätzungen in realen menschlichen Stundenarbeitseinheiten.
Warren P
Schätzen Sie die Zeit für die Schätzung der Aufgabe. Lassen Sie die Schätzung beginnen
Benutzer

Antworten:

13

Wenn Sie über genügend Informationen verfügen, um diese auf diese Ebene herunterzubrechen, sollten Sie nicht mehr als eine Minute für jede einzelne verwenden. Sie werden sowieso nicht korrekt sein, aber Sie werden nach einer Minute genauso korrekt sein wie nach einer Stunde.

Wenn Sie andererseits über User Stories sprechen , würde ich vorschlagen, die Stakeholder in einen Raum zu bringen und vor der Schätzung fünf Minuten lang Fragen zu stellen.

Verschwenden Sie trotzdem nicht viel Zeit mit Schätzungen. Sie sind nicht nützlich oder genau genug, um die Mühe wert zu sein.

pdr
quelle
3
+1. aber ich stimme nicht zu, dass Schätzungen nicht sehr nützlich sind. Sie helfen, besser zu planen und sind daher produktiver.
SuperM
4
@superM: Ich habe nicht gesagt, dass sie überhaupt nicht nützlich sind. Sie sind es auf jeden Fall. Ich sagte, dass sie nicht viel Zeit wert sind. Arbeitssoftware ist viel nützlicher, also verbringen Sie den größten Teil Ihrer Zeit damit.
pdr
@superM: Haben Sie jemals einen Vergleich zwischen Ihren Schätzungen und den tatsächlichen Werten durchgeführt? Dies wird eine großartige Lektion über den tatsächlichen Wert von Vermutungen (die per Definition eine Schätzung sind) geben. Schätzung ist eine klassische Pareto-Sache: In 20% der Fälle erhalten Sie eine ziemlich gute Schätzung. Wenn Sie mehr Zeit verschwenden, wird es nur 5% besser.
JensG
Je länger ich an einem Projekt arbeite, desto bessere Schätzungen mache ich. Es gibt zu viele Faktoren und einige davon kann ich nicht kontrollieren, und diese [projektspezifischen] Faktoren zu kennen, bringt Erfahrung mit sich. Manchmal kann man sich einer Schätzung einfach nicht entziehen, und manchmal gehört man zu denen, die unter Ihren ungenauen Schätzungen leiden.
SuperM
2

Nach meiner Erfahrung ist eines der Kernelemente eines agilen Ansatzes, das wirklich funktioniert, die Richtlinie „Aufgaben sollten weniger als einen Tag dauern“. Wenn Sie Dinge schätzen, die länger als einen Tag dauern, sind Sie ziemlich weit weg.

Sobald Sie sie aufgeschlüsselt haben, damit Sie das tun können, haben Sie genug getan. unabhängig davon, was diese Dinge wirklich sind.

Telastyn
quelle
2

In der agilen Scrum-Methodik wird Planning Poker als eine effektive Möglichkeit angesehen, das gesamte Team zu nutzen, um den Aufwand für die User Stories in einem Sprint schnell abzuschätzen (vorausgesetzt, Sie sprechen davon). Andernfalls würde ich nicht länger als ein paar Minuten damit verbringen, eine einzelne Aufgabe zu schätzen, die Teil einer User Story ist.

Ich würde die Verwendung dieser konsensbasierten Technik sehr empfehlen, wenn Sie versuchen, Schätzungen für ein Entwicklerteam vorzunehmen.

Wenn Sie Poker planen, können Sie innerhalb einer Sitzung (nicht mehr als 1-2 Stunden) ziemlich gute Schätzungen für jede einzelne User Story erhalten.

Lesen Sie etwas darüber und probieren Sie es aus!

Außerdem sollte in der Regel keine Aufgabe in einer User Story 7,5 Stunden (ein einziger Arbeitstag) überschreiten. In diesem Fall müssen Sie die Aufgabe in kleinere Aufgaben aufteilen.

Ciaran Gallagher
quelle
1
Planning Poker schätzt Punkte, die sich in No Real Units befinden. Welche Art von macht sie analog zu wie Schätzungen wirklich sind; Wild Ass Guessery.
Warren P
1
Die Idee ist, dass, wenn wir wissen, dass eine 1-Punkt-Aufgabe beispielsweise 7,5 Stunden dauert, wir sagen können, dass eine 5-Punkt-User-Story 30 Stunden und eine 10-Punkt-User-Story 60 Stunden dauert. Beispielsweise können wir eine der kleinsten Aufgaben auswählen und die geschätzte Zeit kann als Wert eines einzelnen User Story-Punkts zugewiesen werden. Dann können wir diese User Story als Grundlage für die Schätzung größerer Aufgaben verwenden. Wenn wir glauben, dass eine andere Aufgabe doppelt so lange dauert, würden wir 2 User Story-Punkte (15 Stunden) zuweisen und so weiter.
Ciaran Gallagher
1

Ich denke, es hängt davon ab, was Sie brauchen. Wenn zum Beispiel die Ressourcenzuweisung Ihres Projekts davon abhängt (wie es hier manchmal der Fall war), ist es besser, dies sorgfältig zu tun. Auf der anderen Seite, wenn Sie ein Projekt durchführen, das diese Art von Notwendigkeit nicht hat, gehen Sie möglicherweise nicht zu sehr ins Detail. Es ist keine gute Idee, zu viel Zeit damit zu verbringen, da eine genaue Schätzung sehr schwierig ist.

Bei Wikipedia gibt es ein berühmtes Konzept namens Cone of Uncertainty und Cone of Uncertainty , das besagt, wie genau eine Schätzung normalerweise sein kann. Es lohnt sich darüber zu lesen.

Joqus
quelle
1

Was bringen Sie aus Ihren Schätzungen?

Je nachdem, woran Sie arbeiten, können genaue individuelle Schätzungen relevant sein (der Kunde zahlt Sie am Ende der Woche oder die Aufgabe / Story blockiert andere und eine genaue ETA ist erforderlich) oder nicht (Sie haben 200 Storys im Backlog, Niemand wird sterben, wenn sich eine Geschichte für eine Woche verschiebt, und Sie rechnen mit Schätzfehlern, um über eine große Anzahl von ihnen einen Durchschnittswert zu erzielen.

Nehmen Sie sich nur die minimale Zeit, um einen Kostenvoranschlag zu erhalten, der Ihren Anforderungen entspricht. Es gibt keine Formel.

Persönlich denke ich, dass mehr als ein oder zwei Minuten bedeuten, dass Sie wahrscheinlich das Falsche einschätzen (aufteilen oder Entdeckung planen).

ptyx
quelle
0

Tatsächlich benötigen Sie eine Schätzung, um anderen Stakeholdern dabei zu helfen, die relative Priorität zuzuweisen. Daher sind breit angelegte Schätzungen, die zumindest sagen, dass Aufgabe1 im Vergleich zu Aufgabe2 ungefähr dreimal so aufwändig ist (auch wenn sie in Stunden ausgedrückt nicht sehr genau ist), nützlich. Nehmen Sie sich so viel Zeit, um zu verstehen, was diese Aufgaben sind (um bestimmte Ziele zu erreichen), und um dann grobe Schätzungen für sie zu erhalten.

Sobald Sie relative Priorität haben, konzentrieren Sie sich einfach darauf, Dinge zu tun und die Schätzungen unterwegs anzupassen. Mit anderen Worten, verbringen Sie wenig Zeit mit Vorabschätzungen, aber verfeinern Sie Ihre Schätzungen im Laufe der Zeit, damit der Projektplan eine gute Vorstellung davon gibt, wann was getan wird.

Roopesh Shenoy
quelle
0

Gute Schätzungen basieren einmal auf Fakten und nicht auf Annahmen.

Wenn Sie also bereits ein ähnliches Projekt hatten und Ihre vorherige Schätzzeit erfasst haben, ist dieser Server möglicherweise eine gute Grundlage für den Start . Abhängig von Ihrem Projektumfang können jedoch unbekannte Artefakte vorhanden sein. Dies lässt sich besser so schnell wie möglich mit BA oder dem Produktbesitzer klären.

Es ist auch richtig zu sagen, dass: Die Schätzung von Softwareprojekten von Natur aus ungenau ist . Es gibt jedoch einige realistische Schätzpraktiken, die helfen könnten:

  • Personen, die die Arbeit erledigen, sollten an der Projektschätzung teilnehmen
  • Experten hinzuziehen: Expertenmeinung ist entscheidend für den Projekterfolg
  • Schätzen Sie große Stücke als Bereich
  • Verwenden Sie die Delphi-Technik: Dies ist eine Methode, mit deren Hilfe die Meinungen des Teams zusammengeführt werden können, falls es zu Konflikten bei der Schätzung von Softwareprojekten kommt.
  • Beachten Sie die Kosten
  • Beachten Sie die zugewiesenen Ressourcen, die für die Ausführung der Arbeit verfügbar sind
Yusubov
quelle
Ich habe noch nie ein Team oder eine Einzelperson beobachtet, die Schätzungen vorgenommen hat, dass sich routinemäßig (in mehr als 50% der Fälle) herausgestellt hat, dass sie innerhalb von 10% der tatsächlich aufgewendeten Zeit korrekt sind. Andere Menschen an anderen Orten behaupten Erfolge, die mir schwer vorstellbar sind, jemals irgendwo zu passieren, wo ich jemals gearbeitet habe.
Warren P
"genau innerhalb von 10% der tatsächlich verbrachten Zeit" - ist eigentlich ein sehr schlechtes Ergebnis. Berücksichtigen Sie auch die Fehlerquote, die sich durch Komplexität und externe Abhängigkeiten des Projekts erhöht.
Yusubov
Sag ich doch. Schätzung ist scheiße.
Warren P
Ja, das ist wirklich ein schwerer Schlag, um "innerhalb von 10% der tatsächlich verbrachten Zeit genau zu sein" ...
Yusubov