Heim  >  Artikel  >  Wie schätzen Programmierer ihre Projektentwicklungszeit ein?

Wie schätzen Programmierer ihre Projektentwicklungszeit ein?

藏色散人
藏色散人nach vorne
2019-02-20 14:47:263828Durchsuche

Die Schätzung der Projektzeit ist entscheidend für den Erfolg oder Misserfolg des Projekts. Das Projektzeitmanagement umfasst die verschiedenen Prozesse, die erforderlich sind, um das Projekt termingerecht abzuschließen. Bei tatsächlichen Projekten kommt es jedoch häufig zu Projektverzögerungen und Schätzungen sind erheblich ungenau.

Die Schätzung der Zeit ist von Natur aus schwierig. Die Schätzung jedes Programmierers weicht geringfügig von der tatsächlich benötigten Zeit ab. Die geschätzte Zeit ist kurz, was darauf hinweist, dass einige Dinge ignoriert wurden (Kompilieren, Testen, Senden von Code). Es wird geschätzt, dass die Zeitüberschreitung darauf hinweist, dass die Aufgabe zu groß und schwer zu verstehen ist.

Für junge Programmierer ist dieser Schätzfehler verwirrend. Sie unterschätzen oft einige Aufgaben und überschätzen einige etwas schwierigere Aufgaben. Ich denke, dass für einen erfahrenen Programmierer die Zeit einer Aufgabe zwischen einer halben Stunde und 24 Stunden liegen sollte. Aufgaben, die 24 Stunden überschreiten, müssen aufgeteilt werden. Wenn Programmierer darüber nachdenken, denken sie vielleicht, dass es 60 Stunden dauern wird, aber tatsächlich müssen selbst sehr erfahrene Programmierer Aufgaben in steuerbare Module unterteilen und sie dann analysieren und Entscheidungen treffen.

Ein weiterer wichtiger Punkt ist, dass Erfahrung in der Programmierung nicht dasselbe ist wie Erfahrung in der Zeitschätzung. Ein Programmierer, der noch nie eine Zeitschätzung durchgeführt hat, wird nicht gut darin sein, die Zeit zu schätzen. Ohne den Vergleich der tatsächlich benötigten Zeit mit der geschätzten Zeit können Sie nicht die Erfahrung machen, die Zeit anhand anderer Feedback-Informationen korrekt einzuschätzen.

Bewertungstechniken werden von jedem Programmierer verwendet. Um diese Fähigkeit zu verbessern, können Sie jede Aufgabe, die Sie übernehmen, üben. Schätzen Sie ab, wie lange die Entwicklung zu Beginn der Aufgabe dauern wird, und vergleichen Sie diese mit der tatsächlichen Zeit, die Sie am Ende benötigen. Auf diese Weise verbessern Sie nicht nur Ihr Verständnis für die Details der Aufgabe, sondern verbessern auch Ihre Fähigkeiten zur Zeiteinschätzung.

Wie schätzen Programmierer ihre Projektentwicklungszeit ein?

Hofstadter-Gesetz: Es dauert immer länger als erwartet, auch wenn man das Hofstadter-Gesetz berücksichtigt.

PMs beschweren sich oft darüber, warum die Entwickler des Unternehmens nie ihre eigene Projektzeit einschätzen können? ! Allerdings sind kluge Programmierer schon lange daran gewöhnt. Ich habe sogar gesehen, dass ein Projekt, von dem erwartet wurde, dass es in zwei Tagen abgeschlossen wäre, am Ende 4 Monate in Anspruch nahm, was selbst nach der Faustregel „doppelte Zeit“ ziemlich übertrieben ist. Auf hoher Ebene besteht das Problem darin, dass Ingenieure und PMs oder andere Personen unterschiedliche Ansätze und Denkweisen zur Zeitschätzung haben.

Die erste Reaktion der meisten Ingenieure ist, dass das Schreiben eines Prototyps mindestens so viel Zeit in Anspruch nehmen würde, wenn alles nach Plan verläuft. Was der PM oder andere nachgelagerte Mitarbeiter wissen möchten, ist, wann das Projekt fertig sein wird und wie lange es von diesem Zeitpunkt bis zur Veröffentlichung dauern wird. Das sind also zwei völlig unterschiedliche Geschichten.

Für Ingenieure ist die Beherrschung der Zeitschätzung daher eine wesentliche Fähigkeit, was bedeutet, dass Sie ein professioneller, stabiler und effizienter Entwickler sind.

Warum ist eine Zeitschätzung erforderlich?

Externe Abhängigkeiten

Nichts Gültiges geschieht im luftleeren Raum. Projekte weisen in der Regel externe Abhängigkeiten auf, beispielsweise die Kommunikation mit Funktionsteams (Finanzen, PR, Kundensupport) und die Kommunikation mit Kunden. Die Koordinierung dieser externen Abhängigkeiten ist oft die Aufgabe des PM oder CEO, was bedeutet, dass die Personen, die am besten für die Erstellung von Zeitschätzungen qualifiziert sind (Ingenieure), nicht die Personen sind, die diese Berechnungen am häufigsten durchführen müssen. Diese Asymmetrie erzeugt grundlegende Spannungen.

Priorität

Die Zeitmessung ist auch entscheidend für die Festlegung von Prioritäten. Kosteneffizienz ist ein wichtiger Indikator im technischen Bereich. Selbst wenn die Funktion, an der Sie arbeiten, die leistungsstärkste der Welt ist, gilt die Priorität dieser Funktion nicht, wenn die Zeitberechnung zeigt, dass die Implementierung lange dauern wird zu hoch sein.

Angenommen, Sie arbeiten an einem Projekt, das die Website nach Fertigstellung um 50 % schneller machen soll, Sie hätten aber gleichzeitig zwei Projekte abschließen können, und jedes Projekt könnte die Website um 40 % schneller machen. Wenn Sie sich nicht die Zeit nehmen, vorläufige Berechnungen anzustellen, werden Sie nie wissen, wo Sie eine schnellere Website erstellen können!

Grundlegende Zeitschätzung

Angenommen, wir sind uns einig, dass die Zeitschätzung sehr wichtig ist, dann schauen wir uns weiter an, wie man schätzt. Oft unterschätzen wir, wie lange es dauern wird, weil wir uns fragen: „Wie lange dauert es, einen Prototyp zu schreiben?“

Allerdings sind die gelieferten Dinge oft größer als der Prototyp, und Sie müssen auch den Zeitaufwand für Tests, Debugging und Optimierung berücksichtigen. Es gibt auch Besprechungen, Interviews, Codeüberprüfungen und sogar das Versenden von E-Mails, die Zeit in Anspruch nehmen.

Ein weiterer Grund für die Unterschätzung des Zeitaufwands sind unerwartete Probleme, die oft nicht vollständig berücksichtigt werden, wie z. B. IDE-Updates, die Sie einen zusätzlichen Tag für die Konfiguration der Umgebung kosten usw.

Auf dieser Grundlage ist es am besten, nicht zu sehr an sogenannte Erfahrung und Intuition zu glauben.

Schritt 1: Entwickeln Sie einen technischen Plan

Bevor Sie mit einem wichtigen Projekt beginnen, sollten Sie einen technischen Plan oder ein Designdokument haben. Der Zweck dieses Dokuments besteht darin, andere darüber zu informieren, was Sie tun, und Feedback zu erhalten. Wenn Sie sich die technischen Details ansehen, erhalten Sie eine klarere Vorstellung davon, wie viel Zeit dafür aufgewendet wird. Beispielsweise kann die Aktualisierung einer bestimmten Bibliothek auf eine neue Version einen zusätzlichen Tag in Anspruch nehmen. Sie müssen sogar selbst eine Bibliothek schreiben.

Granularität ist hier wichtig. Wenn sich etwas unklar anfühlt, sollten Sie entweder mehr darüber wissen oder es in detailliertere Schritte aufschlüsseln. Wenn gleichzeitig ein Schritt zu detailliert ist, kann er zu fragil sein und der gesamte Plan wird unwirksam sein, daher müssen Sie diesen Grad begreifen.

Wenn Sie wissen möchten, was Sie in Ihrem Dokument beachten sollten, können Sie diesen Artikel von AliciaChen lesen. Der Schlüssel besteht darin, klar mit dem Premierminister zu kommunizieren und alle Unklarheiten zu beseitigen, um nicht am Ende noch einmal von vorne beginnen zu müssen.

Schritt 2: Fügen Sie Zeitschätzungen für jeden Schritt von

Wie lange dauert es, jeden Schritt im Dokument umzusetzen? Dazu gehört oft das Studium der Details (gibt es dafür bereits eine Bibliothek?). Abhängig von der Art des Projekts kann die Erstellung eines einfachen Prototyps also dazu beitragen, viele potenzielle Schwachstellen aufzudecken.

Schritt 3: Zusätzliche Fehlertoleranzzeit

Jetzt haben Sie eine vorläufige Zeitschätzung , aber es gibt noch viele andere Faktoren, die berücksichtigt werden müssen.

Debuggen unterwegs: Fehler sind unvermeidlich und hängen von der Erfahrung des Entwicklers mit einer bestimmten Codebasis und der Reife der Codebasis ab. Besprechungen und Feiertage: Im Allgemeinen programmieren Sie nicht während Besprechungen oder Feiertagen. Wie lange dauert es also, tatsächlich zu programmieren? Schauen Sie sich daher bei der Zeiteinschätzung den Zeitplan genau an. Abschließende Tests: Normalerweise sollten Sie beim Codieren testen, aber viele Teams müssen vor der Veröffentlichung auch Integrationstests durchführen. Berücksichtigen Sie daher diesen Teil der Zeit in Ihrer Schätzung. Codeüberprüfung: Wie viele Runden führen Sie normalerweise in dieser Codebasis durch? Wie lange dauert jede Runde? Wie viele Gutachter muss es durchlaufen? Achten Sie auf den Zeitplan des Prüfers, um sicherzustellen, dass Zeit für Codeüberprüfungen bleibt.

Wenn Sie die Kosten für die Lieferzeit berücksichtigen, können Sie sehen, dass Ihre Zeitschätzung viel besser mit der tatsächlichen Veröffentlichungszeit des Projekts übereinstimmt. Obwohl es tatsächlich länger dauern kann, fühlen Sie sich möglicherweise unter Druck gesetzt, den Zeitplan zu verkürzen. Aber wenn die Leute verstehen, dass Ihre Schätzungen genauer sind, werden sie Ihnen mehr vertrauen.

Schritt 4: Schätzung der Review-Zeit nach der Veröffentlichung

Die Rezension ist recht schmerzhaft Ja, aber die Überprüfung ermöglicht es Ihnen, es beim nächsten Mal besser zu machen. Was passiert bei jedem Projekt, bei dem die tatsächliche Zeit nicht mit der erwarteten Zeit übereinstimmt? Finden Sie den Grund und verbessern Sie ihn.

Kurz gesagt, es geht um Kommunikation. Kommunizieren Sie im Voraus und häufig, um die Zeitpläne und veränderten Bedürfnisse des anderen zu verstehen.

Durch die Kommunikation mit relevanten Teilnehmern wie dem PM können diese auch wichtige Informationen bereitstellen, die sich auf Ihre Schätzung auswirken können. Ein Designer könnte sagen, dass die Fertigstellung der Animation eine Woche dauern wird und gekürzt werden sollte. Ein anderer PM fügt möglicherweise auch hinzu, dass dieser Prototyp nur der Benutzerforschung dient und dass diese Iteration nicht mit allzu vielen Fehlern zu kämpfen hat.

Für Ingenieure gilt: Gehen Sie keine unrealistischen Kompromisse bei kürzeren Bauzeiten ein. Offen und ehrlich zu sein ist professioneller. Es kann für den PM und andere ein Prozess sein, den Kostenvoranschlag zu respektieren, aber seien Sie sich bewusst, dass Sie den Zeitplan nicht durch Nörgeln verkürzen werden.

Die Schätzung der Projektzeit ist nicht einfach, sie erfordert lediglich gute Kommunikation, Einfühlungsvermögen und Priorisierung der Funktionen.

Stellungnahme:
Dieser Artikel ist reproduziert unter:PHP开源社区. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen