Ich bin relativ neu in der Webentwicklung und musste noch keine Schätzungen für viele große Projekte vorlegen (mein letztes großes Projekt wurde nur stundenweise ohne strenge Frist oder Budget bezahlt).
Ein Kunde bittet mich, einen Kosten- und Zeitvoranschlag für die Bereitstellung einer Vielzahl von Änderungen an einem anderen Entwicklercode für eine Website (PHP / MySQL-Backend) vorzulegen.
Kann jemand Ratschläge oder Links geben, wie man dies analysiert und schätzt? Der Code ist schrecklich (die Website wurde ursprünglich vor Jahren nach Indien ausgelagert) und es ist schwer zu wissen, ob ich plötzlich Hürden nehmen und meine Schätzungen aus dem Wasser sprengen werde.
quelle
ask for 50% downpayment to begin work
... hm, ist das nicht ein bisschen hoch? Ich würde eher 20% sagenFragen Sie nach einem Stundensatz. Lassen Sie sich nicht viele Stunden Zeit, bevor Sie die Rechnung stellen.
quelle
Gehen Sie agil! Schätzen Sie nicht einen ganzen Haufen, besonders wenn Sie nicht viel Erfahrung haben.
Denken Sie daran, dass die Schätzung nach ihrer Definition immer falsch ist, sonst würde man sie als Zahl bezeichnen! Es ist sehr wichtig, dass Ihr Kunde dies auch versteht!
Sie sollten eine inkrementelle Lieferung durchführen. Bitten Sie den Kunden, User Stories zu priorisieren und diejenigen auszuwählen, die in der ersten Iteration geliefert werden sollen. Jede Iteration sollte 2 Wochen oder weniger dauern, jedoch nicht länger als 3 Wochen! Wenn Sie eine User Story beendet haben (alle Unteraufgaben sind geschlossen), benachrichtigen Sie den Client und bitten Sie ihn, diese zu überprüfen, während Sie an der nächsten User Story arbeiten.
Sie müssen nicht im Voraus aufladen, sondern können dies nach jeder Iteration tun.
Viel Spaß beim Codieren!
quelle
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.
quelle
Sie können eine Gesamtsumme basierend auf den geschätzten Arbeitsstunden angeben, um Ihre Annahmen zu klären und die Tatsache, dass jede zusätzliche erforderliche Zeit hinzugefügt wird. Auf diese Weise kommen Sie voran, wenn Sie untergehen (unwahrscheinlich).
Stellen Sie sicher, dass die Qualität des vorhandenen Codes für den Client klar ist. Wenn sie vernünftig sind, sollten sie der Flexibilität gerecht werden, andernfalls sollten Sie bereit sein, wegzugehen.
Ich war in dieser Situation, als ich anfing und leider gab es Stack Exchange zu diesem Zeitpunkt nicht. Ich habe einen Festpreis angegeben und musste zwei Monate später auf Kaution verzichten. Ich habe das Geld verloren und eine Brücke niedergebrannt, da ich nicht liefern konnte.
quelle
Schauen Sie sich an, wie ähnliche Branchen dies tun. Ein Architekt würde keine genaue Schätzung einer Garagenerweiterung abgeben, ohne die Immobilie zuerst gesehen zu haben.
Erheben Sie für Ihre erste Zeit eine Ermittlungsgebühr. Erklären Sie, dass sich der Code in einem Zustand befindet, in dem Sie ihnen möglicherweise keine genaue Schätzung geben können, ohne die aktuelle Situation genauer zu betrachten. Stellen Sie sicher, dass sie am Ende etwas erhalten, als Zeichen des Glaubens, eine Dokumentation, die sie einem anderen Entwickler geben könnten, wenn sie dies wünschen, damit sie nicht die gleiche Arbeit erledigen müssen.
Und wenn es Ihnen wichtig ist, dass Sie die eigentliche Entwicklungsarbeit erhalten, sagen Sie ihnen, dass Sie 50% oder sogar 100% dieser Gebühr von der endgültigen Rechnung streichen, wenn sie für die eigentliche Entwicklungsarbeit zu Ihnen kommen. Sie können nicht verlieren und die Leute möchten so etwas kostenlos bekommen.
quelle