Als Programmierer werden wir ständig gefragt, wie lange es dauern wird.
Und Sie wissen, die Situation ist fast immer so:
- Die Anforderungen sind unklar. Niemand hat alle Auswirkungen eingehend analysiert.
- Die neue Funktion wird wahrscheinlich einige Annahmen, die Sie in Ihrem Code getroffen haben, brechen und Sie werden sofort über alle Dinge nachdenken, die Sie möglicherweise umgestalten müssen.
- Sie haben aus früheren Aufträgen andere Aufgaben zu erledigen und müssen einen Kostenvoranschlag erstellen, der diese andere Arbeit berücksichtigt.
- Die Definition von "erledigt" ist wahrscheinlich unklar: Wann wird es erledigt? "Fertig", wie gerade beim Codieren, oder "Fertig", wie bei "Die Benutzer verwenden es"?
- Egal wie bewusst Sie sich all dieser Dinge auch sind, manchmal lässt Sie der Stolz Ihres "Programmierers" kürzer geben / akzeptieren, als Sie ursprünglich angenommen hatten. Besonders wenn Sie den Druck von Fristen und Managementerwartungen spüren.
Viele davon sind organisatorische oder kulturelle Probleme, die nicht einfach und leicht zu lösen sind. Letztendlich werden Sie jedoch nach einem Kostenvoranschlag gefragt und erwarten von Ihnen eine angemessene Antwort. Das gehört zu deinem Job. Man kann nicht einfach sagen: Ich weiß es nicht.
Infolgedessen gebe ich immer Schätzungen ab, von denen ich später feststelle, dass ich sie nicht erfüllen kann. Es ist unzählige Male passiert und ich verspreche immer, dass es nicht wieder passieren wird. Aber es tut.
Was ist Ihr persönlicher Prozess zur Entscheidung und Abgabe eines Kostenvoranschlags? Welche Techniken haben Sie als nützlich empfunden?
quelle
Antworten:
Vom Pragmatischen Programmierer: Vom Gesellen zum Meister :
In diesem Abschnitt empfehlen die Autoren das folgende Verfahren:
quelle
Die Softwareschätzung ist die schwierigste Einzelaufgabe in der Softwareentwicklung - eine knappe Sekunde ist die Ermittlung der Anforderungen.
Es gibt eine Menge Taktiken, um sie zu erstellen, die alle darauf basieren, dass zuerst gute Anforderungen gestellt werden. Aber wenn dein Rücken an der Wand ist und sie dir keine besseren Details geben wollen, fälsche es:
Es ist so, als hätte meine Mutter als Kind gedroht: "Beeil dich und such dir ein paar Klamotten aus, oder ich suche sie für dich aus!"
quelle
Ich habe die Entwicklung für einen Typen gemacht, der sehr darauf aus war, genaue Schätzungen zu wollen. Was wir beschlossen, was sehr gut funktionierte, war Folgendes:
20-25% der Abrechnung klingt nach viel.
Aber er hat mich gebeten, XYZ zu ändern, weil ich dachte, es würde ungefähr 2 Stunden dauern. In einer Stunde detaillierter Schätzung würde ich bestimmen, dass es 8,5 Stunden dauern würde. Also würde er entscheiden, ob es 8,5 Stunden Lohn wert war. Wenn nicht, dann sparte er 7,5 Stunden mehr, als es ihn gekostet hätte, wenn ich es ohne Schätzung getan hätte.
Und wenn er hat wollen die 8,5 Stunden investieren, die Detailarbeit ich für die Schätzung tat , war Arbeit , die ich gehabt haben , würde auf jeden Fall zu tun.
Ich stellte fest, dass ich mit dieser Methode die meisten Aufgaben pünktlich oder sogar früh einbringen konnte, ohne sie stark überschätzen zu müssen. Weil die Zeit so kurz war, konnte ich früh erkennen, ob ich ausrutschte. Wenn ich Straßensperren traf, so dass ich nach 3 Stunden feststellen konnte, dass meine 8,5-Stunden-Aufgabe 12 Stunden dauern würde, konnte ich mit ihm darüber sprechen, bevor mehr Zeit verging, damit er das Feature neu bewerten und herausziehen konnte, wenn er sich Gedanken über die Kosten machte .
War er vernickelt? Nein, ich habe es so gesehen, dass er sein Geld dort einsetzen konnte, wo er den größten Nutzen sah. Und ich war froh, Erfahrungen im Schätzen zu sammeln, in denen ich immer schrecklich gewesen war.
quelle
Wir werden oft bei Meetings nach einem "Baseball-Kostenvoranschlag" gefragt, bei dem wir sehr umfassende und genaue Vorstellungen darüber bekommen, was sie gerne tun würden. Ich sage immer: "Wenn Sie heute eine Antwort wünschen, sind es ein Jahr und eine Million Dollar. Wenn Sie mir viel mehr Details und etwas Zeit zum Überprüfen geben möchten, kann ich diese Zahlen für Sie verfeinern."
Sie verstehen fast immer, worum es geht.
quelle
Es kommt darauf an, wofür die Schätzung ist.
Für eine erste hochrangige Schätzung für einen Geschäftsfall sind dann die Schlüsselsachen:
Ich finde die beste Technik, um ein vergleichbares Projekt auszuwählen, das sich gleich "anfühlt". "Gefühl" ist völlig subjektiv - aber mit dieser Art von Schätzung können Sie meiner Erfahrung nach keine objektiven Messungen finden. Dann sorgen Sie für ein breites Spektrum. Ich habe einige Bücher gelesen, die sagen, ein Bereich von -50% bis + 100% ist gut, aber es hängt von vielen Faktoren ab.
Für eine detaillierte Schätzung auf niedriger Ebene:
quelle
Einige Ratschläge von der dunklen Seite von jemandem, der es auf die harte Tour gelernt hat.
Machen Sie zu diesem Zeitpunkt noch keine Schätzung. Man schätzt nicht, wie viele Soldaten benötigt werden, um eine Schlacht zu gewinnen, ohne die feindlichen Zahlen zu kennen. Die Schätzung erfolgt nach dem Scouting. Es sei denn, Sie haben diesen Feind bereits bekämpft.
Dies liegt in Ihrer Verantwortung zu berücksichtigen, es sei denn, Sie erwarten von anderen, dass sie das Fachwissen in diesem Bereich haben.
Das Gleiche gilt für unerwartete Arbeiten, die von einem Teamkollegen neben Ihnen mit einem nahezu nicht existierenden Testverfahren erstellt wurden, bei dem der Code fehlerhaft ist und der nicht im Voraus perfekt vorhergesagt werden kann. Es ist eine Wettervorhersage.
Verstehen Sie die Benutzeranforderungen hier, denken Sie wie ein Benutzer. Tun Sie nicht das, was Ihre Kollegen tun, wenn sie einschätzen, dass etwas "erledigt" ist, nur weil einige grundlegende Funktionen mit einem Barebone-Workflow, die möglicherweise kein Benutzer tolerieren kann, ihrer Meinung nach "erledigt" sind . Denken Sie vom Standpunkt des Benutzers aus daran, denn das ist alles, was der Kunde, für den Sie eine Schätzung vornehmen, normalerweise versteht. Schätzen Sie in Bezug auf die vollständigen Benutzeranforderungen und nicht in Bezug auf die technischen Anforderungen des Barebones. Und stellen Sie fest, dass Ihre Kunden, die nach Schätzungen fragen, hier völlig ungenau sind, wie sie Dinge formulieren und die technischen Aspekte Ihrer Aussagen verstehen.
Mach das nicht! Sie klingen wie ein selbstmotivierter harter Arbeiter und möglicherweise einer, der leicht dem Zwang nachgibt.
Das Problem hierbei ist Folgendes: Nehmen wir an, Sie und Joe haben Zeitschätzungen für dieselbe Aufgabe vorgenommen (jedoch zwischen zwei verschiedenen Mitarbeitern, die beide Schätzungen nicht gleichzeitig kennen). Sie schätzen tapfer, "eine Woche" . Du denkst, du arbeitest mehr als 100 Stunden pro Woche, unbezahlte Überstunden. Jetzt bist du drei Tage zu spät.
Inzwischen schätzt Joe 5 Monate. Du denkst, das ist lächerlich, du denkst, du kannst das in einer Woche schaffen. Wie viel arbeitet Joe? 10 Stunden pro Woche? ... außer dass er pünktlich in genau 5 Monaten fertig ist.
Ratet mal, wer als der Esel wahrgenommen wird? Das stimmt, du. Joe scheint ein großartiger Arbeiter zu sein, Sie scheinen jetzt unzuverlässig zu sein. Es ist nicht so wichtig, dass Sie in ~ 7% der von Joe in Anspruch genommenen Zeit ein noch besseres Ergebnis erzielt haben. Was zählt ist, dass Sie 3 Tage von einer Woche Schätzung entfernt waren.
Nie auf der Seite der engeren Schätzung irren. Err auf der Seite der lockereren Schätzung. In Ihrem Unternehmen muss ein guter Ruf aufgebaut werden, der nicht so sehr auf der Länge Ihrer Schätzungen basiert wie auf der Genauigkeit Ihrer Schätzungen. Bei einer zu langen Schätzung ist es einfach, genau zu sein. Sie haben einfach mehr Zeit, um an dem Problem zu arbeiten und es besser zu lösen. Eine Schätzung, die zu kurz ist, lässt überhaupt keinen Raum zum Atmen. Entweder treffen Sie sie verzweifelt oder Sie sind durchgedreht.
quelle
"Zwei Wochen!"
Ernsthaft. Meine erste Schätzung ist immer zwei Wochen. Weil ich irgendeine bizarre mentale Blockade habe, die mich denken lässt, dass alles so klingt, als ob es zwei Wochen dauern würde.
Ich versuche, es zu umgehen, wirklich darüber nachzudenken, wie lange ich denke, dass etwas dauern wird, und versuche, alle potenziellen Krisenherde und Teile zu identifizieren, die zu unsinnig erscheinen, als dass ich sie genau einschätzen könnte. Und versuchen Sie zu erkennen, dass ich das wahrscheinlich versäumt habe, wenn meine Antwort "Zwei Wochen!" Ist.
So ziemlich jeder gute Manager, den ich hatte, hat gelernt, "Zwei Wochen!" als Antwort, die eine leichte verbale Zuhälter-Ohrfeige erfordert.
quelle
Es gibt einen Blogeintrag , in dem beschrieben wird, wie Sie aufzeichnen, wie genau Ihre vorherigen Schätzungen waren. Wenn Sie dann das nächste Mal jemandem sagen, dass es zwei Wochen dauern werden, können Sie sich Ihren vorherigen Verlauf ansehen und sehen, wie lange er dauert Das letzte Mal, als Sie sagten, es sind zwei Wochen.
Ich habe es selbst nicht ausprobiert, möchte aber gerne sehen, wie genau meine Schätzungen sind.
quelle
Dies hängt von der Organisation und der Verwendung der Schätzungen ab.
Wenn die Schätzung nur eine allgemeine Vorstellung davon geben soll, wann sie fertig sein wird, kann ich im Allgemeinen eine schnelle Schätzung auf der Grundlage meiner Erfahrungen vornehmen. Oft schließe ich Unsicherheiten oder mögliche Abweichungen in die Schätzung ein, ebenso wie die Auswirkungen der Änderungen auf andere Bereiche des Systems und den Umfang der erforderlichen Regressionstests.
Wenn die Schätzung für irgendetwas Vertragliches oder in einem Szenario verwendet wird, in dem ein genaueres Timing erforderlich ist, führe ich eine vollständige Arbeitsunterbrechung durch. Dies ist aufwändiger und erfordert eingehendere Überlegungen zum Design und zu Änderungen am System, ist jedoch viel genauer, insbesondere bei größeren Arbeiten.
In jedem Fall ist eine kontinuierliche Kommunikation der Schlüssel. Wenn Sie auf etwas Unerwartetes stoßen, machen Sie es zu diesem Zeitpunkt bekannt, anstatt auf die Frist zu warten. Wenn die Anforderungen nicht klar sind, stellen Sie sicher, dass Sie Ihr Verständnis der Anforderungen und der Funktionen dokumentieren, die Sie bereitstellen möchten. Dies ist auch hilfreich, wenn Sie Vermutungen anstellen. In Bezug auf konkurrierende Prioritäten sollten Sie sich darüber im Klaren sein, wie sich dies auf den Zeitplan auswirkt, wenn eine Arbeit auf eine andere stößt.
quelle
Schätzungen für was? Kleine Aufgaben oder Komplettlösungen.
Letzteres mache ich selten, aber dann rate ich einfach, füge ein bisschen hinzu, lasse den Manager ein bisschen hinzufügen und mache es in einen Bereich, mit einer kleinen Notiz daneben, die besagt, dass das Obige eine Vermutung ist.
Kleine Aufgaben - Planung von Poker Ich fand, dass es sehr gut funktioniert (nicht perfekt, einige 1-Punkte-Aufgaben haben viel länger gedauert und einige 5-Punkte-Aufgaben haben Minuten gedauert, aber am Ende ist alles ausgeglichen).
quelle
Präsentieren Sie ein Sortiment, das auf dem basiert, was Sie heute wissen. Verwenden Sie den Konus der Unsicherheit , um den Bereich um Ihre anfänglichen Schätzungen herum anzugeben.
Berechnen Sie jede Woche, wie viel noch zu tun ist, und schätzen Sie nach Ihren Kenntnissen neu. Wenn Sie genug Stichprobengröße haben, um zu bestimmen, wie viel Arbeit Sie pro Woche erledigen, geben Sie ein 90% iges Konfidenzintervall für die verbleibenden Daten an, um einen (normalerweise) immer enger werdenden Zeitraum im Verlauf des Projekts und den verbleibenden Arbeitsaufwand anzugeben (hoffentlich) ) schrumpft.
quelle
Zuversichtlich. Ich kann Ihnen nicht sagen, wie oft ich ein erstes Treffen mit einem Kunden verpfuscht habe, weil ich bei der Angebotsabgabe nicht auf Professionalität gesetzt habe. Auch wenn Sie Zahlen aus der Luft blasen - stellen Sie sicher, dass Sie immer eine Schätzung haben. Achten Sie jedoch darauf, sich nicht in ein Loch einzuschätzen. Unterschiedliche Dinge erfordern unterschiedlich viel Zeit, Mühe und Ressourcen, um sie zusammenzustellen. Hier ist ein guter Weg, um es zu tun:
quelle
Manchmal wird das Schätzen zu einer enormen Herausforderung für Sie und Ihr Team, insbesondere wenn es um das Schätzen von Softwareprojekten geht.
Nachdem wir uns entschieden hatten, unsere Erfahrungen und unser Wissen über den Software-Schätzprozess zu teilen, definierten wir vier verschiedene Arten von Schätzungen :
Natürlich sind diese Typen verschieden. Baseballstadion ist das, was oft als "Guesstimate" bezeichnet wird. Es handelt sich also um eine ungefähre Zahl oder einen ungefähren Bereich, der eine allgemeine Vorstellung von den Kosten vermittelt und einem potenziellen Kunden bei der Entscheidung helfen kann, ob er die Diskussion fortsetzen möchte.
Kunden benötigen zu Beginn des Projekts in der Regel eine Baseballfigur. Und unser Ratschlag lautet: Die Diskussion des Projekts und die Bereitstellung von Kennzahlen für das Baseballstadion sollten nur Schritte sein, um eine Bauteilschätzung zu erhalten (die flexibel ist und für den gesamten Entwicklungsprozess verwendet werden kann. Es ist nicht erforderlich, von Grund auf neu zu schätzen, wann Sie möchten Funktionen, Dienste usw. hinzufügen, entfernen oder ersetzen.
Jeder sollte die Risiken berücksichtigen, die mit der Schätzung der Softwareentwicklung einhergehen: Unterschätzen, Überschätzen, Total-Epic-Fail-Szenario usw.
Sie können mehr auf unserem Blog lesen!
http://blog.lemberg.co.uk/project-management/software-estimation-process/
Hoffe, diese Informationen werden Ihnen helfen!
quelle
Es hört sich so an, als würden Sie um eine Verpflichtung gebeten, nicht um eine Schätzung. Dies sind verschiedene Dinge, aber wenn Sie Ihre Verpflichtungen zuverlässig verwalten können, wird dies Ihrer Glaubwürdigkeit und Karriere wirklich zugute kommen.
Einige Ratschläge basierend auf meiner ~ 10-jährigen Erfahrung:
quelle
Wenn mir eine Aufgabe zugewiesen worden wäre, würde ich sie zunächst in Unteraufgaben aufteilen. Ich würde die Zeit für jede Unteraufgabe schätzen und wahrscheinlich würde ich mit Unteraufgaben den problematischen Bereich finden und somit prognostizieren können, wie lange er dauern würde nehmen bis zu einem gewissen Grad.
Trotzdem würde die gesamte Planung nur bis zu einem gewissen Grad helfen. Erst wenn Sie mit dem Codieren beginnen, finden Sie die genauen Probleme
quelle
Wenn Sie viele Projekte für denselben Chef oder Kunden durchführen, können Sie versuchen, die Komplexität in großen Schritten anstatt in Wochen oder Monaten zu schätzen, möglicherweise in T-Shirt-Größen. Identifizieren Sie einige vergangene Projekte und weisen Sie ihnen die Größen S, M, L, XL zu.
Und dann fragen Sie sich: Welches Projekt hört sich ähnlich an? Und anstatt mit "2 Monate" zu antworten, können Sie mit "klingt wie ein L für mich" antworten (oder wie auch immer sich Ihre Kalibrierung für das Projekt herausstellt).
Dies ist ziemlich einfach zu verstehen, und es ist auch klar, dass diese Vermutungen sehr ungewiss sind.
Wenn sich dann die Anforderungen ändern, können Sie sagen, dass diese Änderung eher wie ein XL klingt.
quelle
Ein bisschen spät, aber als ich beim Militär war, wurden wir angewiesen, PERT zu verwenden, um Schätzungen zu ermitteln. Es erfordert etwas Erfahrung auf Ihrem Gebiet und der anstehenden Aufgabe. Es war überraschend genau, als es die geschätzte Fertigstellungszeit bei der Wartung und Reparatur von elektronischen Geräten (komplexen Funkgeräten und Satellitenkommunikationsgeräten) ermittelte, bei denen eine beliebige Anzahl von Dingen falsch oder gefunden sein kann und während der routinemäßigen Wartung behoben werden muss. Die Schätzungen waren wichtig, da andere Einheiten möglicherweise nicht betriebsbereit sind, bis sie ihre Kommunikationsausrüstung zurückerhalten. Einer, den ich verwendet habe, ist dieser kostenlose Online-PERT-Rechner
quelle