Schätzung der Kosten für die Änderung eines anderen Codes [geschlossen]

8

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.

nmford
quelle

Antworten:

4

Ich denke, Sie sollten nicht von Anfang an einen Preis nennen. Wenn jemand mit Ihnen über ein Projekt spricht, sollten Sie kostenlos genug arbeiten, um herauszufinden, was der Kunde möchte und wie viel es kosten könnte. Nicht mehr oder weniger.

Geben Sie ihnen einen Vorschlag, der äußerst kurz sein kann, aber geben Sie ihnen etwas, das beschreibt, was sie wollen und was Sie liefern werden. Sie können einen Bereich festlegen, wenn Sie möchten, und Sie können sogar sagen, dass dies eine „Schätzung nach Treu und Glauben“ ist, der endgültige Betrag jedoch auf der aufgewendeten Zeit basiert.

Aus meiner Erfahrung als Freiberufler gibt es dabei drei Hauptschritte:

  1. Bitten Sie um 50% Anzahlung, um mit der Arbeit zu beginnen

  2. Fragen Sie nach der endgültigen Zahlung, bevor Sie die Dateien übergeben

  3. Fragen Sie nach einem Stundenblock für laufende Arbeiten oder Arbeiten, die wahrscheinlich im Laufe der Zeit auftauchen werden

Viel Glück!

appoll
quelle
3
4. Halten Sie sich an Ihre Waffen, wenn der Kunde versucht, zurückzudrücken. 5. Seien Sie bereit, wegzugehen.
Tzerb
ask for 50% downpayment to begin work... hm, ist das nicht ein bisschen hoch? Ich würde eher 20% sagen
šljaker
Ich denke, dass 50% der Restzahlung der beste Betrag wäre, um den Kunden zu bitten. Auf diese Weise wird er nicht versucht sein, einen anderen Programmierer zu bitten, seine Arbeit zu erledigen (die Hälfte des Geldes ist ziemlich viel zu verschwenden, nicht wahr? Während ein kleiner Prozentsatz leichter aufzugeben ist), und er wird stecken bleiben mit dir bis zum Ende.
Appoll
1

Fragen Sie nach einem Stundensatz. Lassen Sie sich nicht viele Stunden Zeit, bevor Sie die Rechnung stellen.

ddyer
quelle
Ja. "Lassen Sie nicht viele Stunden aufbauen ..."
Dynamic
1

Gehen Sie agil! Schätzen Sie nicht einen ganzen Haufen, besonders wenn Sie nicht viel Erfahrung haben.

  • Sprechen Sie mit Ihrem Kunden und sehen Sie, was implementiert / geliefert werden muss.
  • Erstellen Sie für jede Funktionalität / Arbeitseinheit eine User Story (nicht technischer Teil, schreiben Sie die richtige Beschreibung) und teilen Sie sie in eine oder mehrere Unteraufgaben auf (technischer Teil).
  • Schätzen Sie jede User Story

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!

šljaker
quelle
1

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.

Programmierer im Paradies
quelle
0

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.

Robin
quelle
0

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.

pdr
quelle