Da Sie mit der relevanten Technologie noch nicht vertraut sind und mit der vorhandenen Codebasis von schlechter Qualität nicht vertraut sind, an der Sie arbeiten müssen, ist es wahrscheinlich, dass die Schätzung in beiden Richtungen in gewissem Maße variiert. Aber lassen Sie den Kunden über den letzteren Grund wissen :-P
Listen Sie zunächst die unzähligen Änderungen / Funktionen auf, die Ihr Kunde angefordert hat. Führen Sie für jede Anforderung eine kleine Codeüberprüfung durch und recherchieren Sie, wie sie implementiert und getestet werden kann. Sie sollten diese Zeit ohne Rendite investieren, bevor Sie einen Kostenvoranschlag abgeben.
Zweitens machen Sie 3 Spalten für die Schätzung - bester Fall (25% Wahrscheinlichkeit), durchschnittlicher Fall (50%), schlechtester Fall (75%). Aus den beiden im ersten Absatz genannten Gründen können Sie die Worst-Case-Schätzung auswählen. Sie können dann sogar 20% Pufferzeit hinzufügen. Für eine bestimmte Anforderung beträgt Ihre Best-Case-Schätzung beispielsweise 2 Tage, der durchschnittliche Fall 4 Tage und der Worst-Case 5 Tage. Wenn Sie 20% Pufferzeit hinzufügen, beträgt Ihre Schätzung 6 Tage.
Drittens geben Sie keinen festen Schätzpunkt an, sondern einen Bereich. Für das obige Beispiel können Sie dem Kunden mitteilen, dass die Schätzung 4 bis 6 Tage beträgt. Ihr Kunde besteht möglicherweise auf einer Schätzung der gesamten Liste der Änderungen. In diesem Fall können Sie die Mindest- und Höchstbereiche für alle Anforderungen addieren. Geben Sie dann eine endgültige Schätzung im Bereich von 5 bis 6,5 Monaten an. Dies hat den folgenden Vorteil: Sie können die Schätzung für eine Anforderung überschreiten, eine andere Anforderung jedoch früher abschließen. Insgesamt heben sie sich gegenseitig auf und die endgültige Schätzung hält.
Viertens: Wenn Sie jede Benutzeranforderung abgeschlossen und schrittweise geliefert haben, überprüfen Sie Ihre vorherigen Schätzungen für jede Anforderung. Dies ist ein kontinuierlicher Prozess, und Sie sollten die Schätzung anpassen / verfeinern, während Sie mit dem Projekt fortfahren und Ihre Erfahrung wächst. Wenn Sie feststellen, dass der Unterschied zwischen Ihrer verfeinerten Schätzung und Ihrer anfänglichen Schätzung außer Kontrolle geraten ist, setzen Sie sich sofort mit Ihrem Kunden in Verbindung und besprechen Sie die Angelegenheit.
Ich habe diese Dinge aus dem Buch "Software Estimation: Demystifying the Black Art" von Steve McConnell gelernt. Ich bin ihm dankbar.