Um Schätzungen auf Aufgabenebene und Zeitberichte zu verarbeiten, habe ich (ungefähr) die Technik verwendet, die Steve McConnell in Kapitel 10 der Softwareschätzung beschreibt. Insbesondere wenn es an der Zeit ist, Schätzungen auf Aufgabenebene zu erstellen (kurz bevor die Codierung für ein Projekt beginnt), bestimme ich die Aufgaben auf einer ziemlich detaillierten Ebene, sodass ich, wann immer möglich, keine Aufgaben mit einem einzelnen Punkt habe, 50 % -Konfidenzschätzung größer als vier Stunden. Auf diese Weise hilft der Aufgabenschätzungsprozess beim Erstellen der Software und hilft mir, Aufgaben während der Schätzung nicht zu vergessen. Ich habe auch für jede Aufgabe eine Reihe von Stunden festgelegt. Mithilfe der statistischen Berechnungen, die McConnell zusammen mit meinen historischen Genauigkeitsdaten beschreibt, kann ich auf Wunsch Schätzungen mit anderen Konfidenzniveaus erstellen. Ich habe das Gefühl, dass diese Methode für mich ziemlich gut funktioniert hat. Wir müssen Aufgaben und ihre Schätzungen zur Nachverfolgung in TFS einfügen, daher verwende ich die Schätzungen mit dem Prozentsatz des Vertrauens, den ich verwenden soll.
Ich bin mir jedoch nicht sicher, was ich tun soll, wenn ich eine Aufgabe vergesse oder am Ende Arbeiten ausführen muss, die nicht genau zu einer der von mir geschätzten Aufgaben gehören. Natürlich ist es am besten, diese Situation zu vermeiden, aber wie kann ich vergessene / geänderte Aufgaben berücksichtigen? Ich möchte die besten historischen Daten haben, die ich kann, um mir bei zukünftigen Schätzungen zu helfen, aber im Moment berechne ich im Grunde nur, ob ich die 50% -Konfidenzschätzung gemacht habe und ob ich sie innerhalb der Bereichsschätzung gemacht habe.
Gerne kläre ich bei Bedarf, was ich frage - lassen Sie mich wissen, was unklar ist.
quelle
Antworten:
Das Buch Waltzing With Bears: Risikomanagement bei Softwareprojekten (von DeMarco und Lister, den Peopleware-Autoren) hat einen hervorragenden Ansatz. Hier ist meine Neuinterpretation:
Machen Sie eine Schätzung "Alles läuft perfekt". Natürlich läuft selten alles perfekt, so dass die Wahrscheinlichkeit, dass etwas passiert, gering ist, sagen wir 0,1 Prozent. Mit anderen Worten, nur ein Projekt von tausend wird perfekt nach Plan verlaufen. Dies ist, was die meisten Menschen als ihre "Schätzung" verwenden, was offensichtlich verrückt ist.
Stattdessen sollten wir uns Schätzungen als Wahrscheinlichkeitsverteilungen vorstellen. Diese Schätzung der "perfekten Welt" ist der am weitesten links stehende Punkt in der Schätzwahrscheinlichkeitsverteilung.
Machen Sie als nächstes eine Schätzung "Wenn die Dinge so laufen, sind ähnliche Projekte wie dieses verlaufen". Diese Schätzung hilft Ihnen bei der "Außenansicht" ( http://wiki.lesswrong.com/wiki/Outside_view ), um dem Planungsfehler ( http://wiki.lesswrong.com/wiki/Planning_fallacy ) zu entkommen .
Machen Sie als nächstes eine Schätzung "Ich bin zu 90% sicher, dass wir mit X fertig sind". Seien Sie sehr, sehr sicher, Sie meinen 90% sicher. Mit anderen Worten, Sie erwarten, dass Sie nur einmal pro zehn Projekte länger als diese Schätzung dauern.
Wir können jetzt Ihre erste Schätzung als 0,1% Wahrscheinlichkeitsschätzung und Ihre zweite als 50% Wahrscheinlichkeitsschätzung (Jahreszeit nach Geschmack) und die dritte als 90% Schätzung verwenden, wodurch Sie eine schöne Kurve erhalten.
Angenommen, Ihre Schätzungen für 0%, 50% und 90% waren der 1. Mai, der 1. Juni und der 1. August. Dann würde Ihre Schätzkurve ungefähr so aussehen:
Beachten Sie, wie sich das Wachstum der Wahrscheinlichkeit mit der Zeit verlangsamt. Wenn Sie in diesem Szenario von jemandem um eine Schätzung von 99,9% gebeten wurden, ist dies möglicherweise der 1. Januar des nächsten Jahres.
quelle
Mit einem Wort - Kontingenz.
Kontingenz ist der Betrag, den Sie für "andere Dinge" hinzufügen - die Dinge, die Sie an keiner anderen Stelle in Ihrer Schätzung berücksichtigen können. Deckt SMc dies in Software Estimating ab? Ich kann mich nicht erinnern und mein Exemplar ist bei der Arbeit (ich bin im Urlaub und beantworte dies - wie traurig bin ich) ...
Im Allgemeinen gibt es drei Arten von Eventualitäten, die ich empfehlen würde:
1) Risikospezifische Eventualverbindlichkeit - Hier identifizieren Sie ein bestimmtes Risiko und fügen eine bestimmte Zeit hinzu, um die damit verbundene potenzielle Überschreitung abzudecken. Das erste, was hier klar ist, ist, was ein Risiko ist - es kann passieren, was sich negativ auf das Projekt auswirkt, das außerhalb Ihrer Kontrolle liegt .
Dieser letzte Teil ist von entscheidender Bedeutung - es geht nicht nur um "Dinge, die etwas länger dauern als ich dachte", sondern um "das Planungsmodul von Drittanbietern, von dem uns gesagt wurde, dass wir es verwenden müssen, da es ein Unternehmensstandard ist, der möglicherweise nicht der Aufgabe entspricht". Die Art und Weise, wie Sie berechnen, wie viel Risikokontingenz hinzugefügt werden muss, ist die prozentuale Wahrscheinlichkeit, dass das Risiko eintritt, ausgedrückt als Dezimalzahl (also 50% = 0,5), multipliziert mit der Auswirkung dieses Risikos (im Beispiel heißt es, Sie müssen CRON manuell schreiben Jobs anstelle der Verwendung des Schedulers und dies dauert 10 Tage, diese Zahl ist 10 Tage).
Wenn also eine 50% ige Chance besteht, dass Ihr Risiko eintritt, und es 10 Tage dauert, um es zu umgehen, fügen Sie 5 Tage hinzu. Addieren Sie alle Werte für alle identifizierten Risiken im Projekt und addieren Sie sie zur Gesamtsumme.
2) Scheiße passiert Kontingenz - Die beste Beschreibung, die ich je dafür gehört habe, auch wenn sie nicht elegant ist. Es ist ein IT-Projekt, Scheiße passiert. Es geht nie so, wie du denkst, die Dinge dauern länger, werden verpasst und so weiter. Im Allgemeinen liegt die SH-Kontingenz zwischen 10% (absolutes Minimum) und 25% (kann jedoch höher sein), wobei 15% ungefähr typisch sind, wobei das genaue Niveau von der Unsicherheit und dem allgemeinen Risiko abhängt (Verschieben von Torpfosten, unsichere Anforderungen usw.) ).
Wenn Ihr PM SH Contingency nicht akzeptiert (und es ist möglich, dass er keine Erfahrung mit IT-Projekten hat oder ein blinder Optimist ist), addieren Sie es einfach zu allen einzelnen Beträgen. Wenn er weiß, was er tut, hat er ein eigenes Risikoprotokoll und liebt dich, wenn du über dieses Zeug nachdenkst. Wenn er irgendeine PM-Qualifikation hat (wie PRINCE2), wird er es sicherlich wissen.
3) Änderungskontingenz - Hier sind Sie ziemlich sicher, dass der Client Änderungen vornehmen wird, möchten aber nicht, dass dies ein Streitpunkt ist. Addiere entweder X Tage oder X% und es geht in einen Topf für Änderungen, die der Kunde erhöht. Es gibt zwei Möglichkeiten, damit umzugehen: Entweder erzählst du ihnen davon und es liegt an ihnen, es auszugeben, oder du erzählst ihnen nichts davon.
Der erste Weg ist der beste, braucht aber einen ziemlich gebildeten und fair gesinnten Kunden - Dinge werden als Veränderungen eingestuft und er kann seinen Topf ausgeben, wie er es für richtig hält (basierend darauf, dass Sie die Dinge schätzen, sobald sie auftauchen).
Die zweite Möglichkeit, wie Sie erwähnen, ist, dass es sich um eine Änderung handelt, aber Sie müssen ihn nicht extra belasten. Sie müssen alle Dinge notieren, für die Sie es ausgeben. Wenn es also so weit ist, dass es aufgebraucht ist, müssen Sie zum Kunden zurückkehren und um mehr Zeit oder Geld bitten, und er sagt: "Moment mal, ich." Ich bezahle bla bla bla "Sie können auf all die Dinge hinweisen, die sie bereits geändert haben und die Sie nicht in Rechnung gestellt haben, als Zeichen dafür, dass Sie nicht völlig unvernünftig sind. Es funktioniert nicht immer, aber es stärkt fast immer Ihre Hand in den Diskussionen.
Keiner dieser drei Punkte behandelt speziell Dinge, die Sie vergessen haben, aber ich denke, zwischen ihnen werden Sie viele der Lücken füllen, die Sie haben.
quelle
Wenn Sie nach einer Schätzung für eine Aufgabe gefragt werden, geben Sie dem Team eine High-End-Schätzung und haben Sie eine Low-End-Schätzung für sich selbst. Auf diese Weise haben Sie nach Abschluss der Aufgabe immer Zeit, an etwas zu arbeiten, das Sie möglicherweise vergessen haben, an erster Stelle zu erwähnen.
quelle
Befürchten Sie, dass Sie durch Hinzufügen der zusätzlichen Aufgaben Ihre historische Genauigkeit verzerren? Oder glauben Sie, dass die Genauigkeit beeinträchtigt wird, wenn die zusätzlichen Aufgaben nicht berücksichtigt werden?
Ich denke, für das Beste des Projekts sollten die Aufgaben in das Tracking-System eingegeben werden. Ich bin sicher, dass der Projektleiter dem Management eine geeignete Erklärung für Unstimmigkeiten anbieten kann ...
quelle