Wie kann ich einen Chef (oder Kollegen) bei der Einschätzung der Komplexität einer Aufgabe / eines Projekts vorsichtiger machen?

8

Ich bin Softwareentwickler und arbeite in einer kleinen Webentwicklungsfirma. Es scheint ein wiederkehrendes Thema zu sein, dass ein mittlerer Manager mich fragt, wie lange etwas dauern wird, und wenn ich ihnen meine Schätzung gebe, denken sie, dass es zu hoch ist. Wenn es sich um einen eher technischen Manager oder einen anderen Entwickler handelt, denken sie normalerweise bereits an eine eigene Schätzung und versuchen, diese auf ihre eigene Weise zu implementieren, da sie glauben, dass sie dies schneller tun können.

Es gibt jedoch einen Trend, bei dem die anderen Entwickler deutlich mehr Zeit verbrauchen als angegeben. Sie werden die Hälfte ihres Budgets erreichen und dann feststellen, dass es einige geschäftliche Anforderungen gibt, die in ihrem Implementierungsplan nicht richtig berücksichtigt werden können. Mehr als einmal hätte mein Plan dieses Bedürfnis angesprochen, aber es wurde als " Du wirst es nicht brauchen " -Funktion abgetan .

Schlimmer noch, wenn sie gegen diese Wand stoßen, kommen sie normalerweise zu mir, um ihnen zu helfen, aus der Ecke herauszukommen, in die sie sich gemalt haben, aber es gibt nur so viele Stunden an meinem Tag.

Bester Fall : Diese Unterbrechungen verkürzen die Zeit, die ich für meine eigene Entwicklungsarbeit aufgewendet habe, was dazu führt, dass andere Projekte verzögert werden oder ich Überstunden machen muss, weil ich "der einzige bin, der X kann".

Schlimmster Fall : Am Ende muss ich die Aufgabe / das Projekt als meine eigene übernehmen, und zu diesem Zeitpunkt bleibt mir im Budget keine Zeit mehr, es "auf meine" Weise zu tun. Ich muss versuchen, das, was sie begonnen haben, so zu beenden, wie sie es begonnen haben, damit "das Unternehmen kein Geld mehr verliert". Das kommt immer wieder zurück, um mich zu beißen, weil es dann "mein" Hacky-Code wird, und wenn es kaputt geht, fragen mich die Leute, warum es so erstellt wurde, wie es war (schließlich haben sie keine Ahnung, wer es tatsächlich erstellt hat).

Meine Frage lautet also : Wie kann ich diesen Kollegen helfen, zu verstehen, wenn die Dinge nicht so einfach sind, wie sie sich vorstellen, und sie müssen ihr Verständnis für die Bedürfnisse des Kunden neu bewerten?

Im Gegensatz zu dieser ähnlichen Frage, wie man das Management davon überzeugen kann, mit [bestehenden] technischen Schulden umzugehen , sucht meine Frage nach Strategien, um dem Team zu helfen, [proaktiv] zu realisieren, bevor technische Schulden entstehen, um zu verhindern, dass diese anfangen. Diese beiden Dinge gehen Hand in Hand, aber sie unterscheiden sich in meinem Kopf deutlich. In den Antworten der anderen Frage wird vorgeschlagen, die Refactoring-Zeit in die Schätzungen für zukünftige Funktionen aufzunehmen. Dies kann niemals funktionieren, wenn andere Entwickler (und damit auch Manager) immer der Meinung sind, dass diese zukünftige Funktion weniger Zeit in Anspruch nimmt als sie tatsächlich wird, und ich kann sie nicht davon überzeugen, dass meine Schätzung realistischer ist.

Eric Seastrand
quelle
1
Es sieht für mich so aus, als würde Ihr Team in den Kategorien "Jetzt ist es sein Code, später ist es mein Code" viel zu viel denken. Denken Sie eher wie "Es ist das Projekt und der Code des Teams. Wie können wir das gemeinsam lösen?"
Doc Brown
Welche Rechenschaftspflicht wird also gegen die Menschen mit den ungenauen Schätzungen erhoben?
Telastyn
Wie können "sie" das gesamte Budget ausgeben und Sie müssen sich in Ihrer Freizeit damit befassen? Wenn Sie mit "Budgets" arbeiten, sollten Sie ihnen ein Angebot unterbreiten und das neue Budget von Ihrem Manager genehmigen lassen.
Pieter B

Antworten:

6

Ich liebe diese Frage, weil ich mich jeden Tag entweder mit einer neuen Schätzung beschäftige oder unter einer früheren Schätzung leide.

Die Antwort hängt davon ab, wie groß ein Projekt / eine Aufgabe ist, über die Sie sprechen. Es gibt Bücher und Methoden für den Umgang mit Schätzungen. Die Schätzung des Projekts für ein 50-köpfiges Entwicklungsteam mit einem Budget von 1 Million verfolgt einen anderen Ansatz als die Arbeit an kleinen 80-Stunden-Projekten. Hier sind einige Punkte aus dem wirklichen Leben für später:

  • "Bottom-Up" -Schätzung - Je kleiner Sie die Aufgaben aufteilen können, desto besser ist Ihre Schätzung. Sie können die kleineren Teile unabhängig voneinander schätzen, was den zusätzlichen Vorteil hat, fehlende Funktionen zu identifizieren. Angenommen, Sie erhalten Modelle einer Website und werden gebeten, einen Kostenvoranschlag anzufordern. Gehen Sie nicht nach der Anzahl der Seiten, sondern nach der Anzahl der Funktionen. Ein Warenkorb kann beispielsweise "1 Seite" sein, kann jedoch aus 10 verschiedenen Funktionen bestehen.

  • "Drei-Punkte" -Schätzungen bedeuten, drei Schätzungen als Bereich vorzunehmen. Sie können dann mit "40-80 Stunden, je nachdem, wie kompliziert die xxx-Funktionen sein müssen" antworten. Dies ist ein guter Weg, um das Risiko in Ihre Schätzung aufzunehmen. Es ist auch eine gute Idee, Schätzungen von anderen in Ihrem Team zu erhalten. Wenn also jemand 50 Stunden und jemand anderes 100 Stunden sagt, können Sie den Unterschied besprechen.

  • Erfüllen Sie das Budget / auch bekannt als Erwartungen festlegen - Wenn Sie wissen, dass das Budget 100 Stunden beträgt und Sie glauben, dass es sich um ein 200-Stunden-Projekt handelt, können Sie helfen, Erwartungen festzulegen, bevor Sie sich verpflichten. "Alles, was Sie angefordert haben, ist ein 200-Stunden-Projekt. Wenn wir Feature-x einschränken, können wir es in 100 Stunden erledigen."

  • Entwicklungszeit vs. Testzeit vs. Projektzeit vs. Kalenderzeit - Diese sind alle unterschiedlich und wenn Sie ein Team von einem sind, ist es einfach, alles miteinander zu vermischen. Wenn Sie 8 Stunden damit verbringen müssen, die Anforderungen herauszufinden, und dann 72 Stunden Entwicklungszeit, werden Sie viel länger als 2 Kalenderwochen brauchen, um das Projekt abzuschließen. Insbesondere, wenn Sie andere Aufgaben ausbalancieren, mit einem Team interagieren, auf Kunden warten oder stundenlang per E-Mail schreiben müssen. In diesem Fall teilen Sie Ihrem Chef mit: "100 Stunden, dh x Stunden Entwicklungszeit, y Stunden für den Kunden und z Stunden für den ersten Support." Dies hilft zu zeigen, dass Sie andere Zeit als nur Ihren Code einbeziehen.

WICHTIG - Ich denke nicht, dass das Schätzen Ihr Hauptproblem ist, ich denke, dass es die externe und interne Kommunikation ist. Wenn Feature X so wichtig war, sollte der Kunde es zu Beginn mitgeteilt haben. Als die Anfrage für Feature X einging, hätte Ihr Projektmanager sagen müssen: "Es liegt außerhalb des Geltungsbereichs, aber wir können die aktuellen Stunden neu zuweisen oder das Budget erweitern."

Intern müssen Sie kommunizieren, damit Ihre Vorgesetzten wissen, dass Sie das Budget / den Zeitplan überschritten haben, lange bevor es "zu spät" ist. Wenn Ihnen eine Aufgabe übergeben wird, sollten Sie die Zeit (wie in Stunden) und die Zeit (wie in einem Kalender) kennen, an der Sie an dieser Aufgabe arbeiten müssen. Wenn die Aufgabe nicht in diese Einschränkungen passt, müssen Sie sie darauf aufmerksam machen - "Für Feature A & B muss ich C ausführen. Dadurch bleibt weder für X noch für Y Zeit".

Keine Überraschungen - Sie müssen auch sicherstellen, dass Sie während des Projekts wieder kommunizieren. Stellen Sie sicher, dass Sie die guten Sachen melden, aber wenn etwas länger dauert als erwartet, sagen Sie es sofort. Fünfzig Prozent des Projektverlaufs sind dafür verantwortlich zu sagen:

"Feature X dauert länger als erwartet, ich komme möglicherweise nicht zu Feature Y".

Am Fälligkeitstag ist es nicht verantwortlich zu sagen:

"Ich habe Y nicht gezeigt, weil mir die Zeit ausgegangen ist."

PERSÖNLICHE MOMEMNT - Dies kann alles sehr schwierig sein, wenn Manager immer noch daran festhalten möchten, Programmierer zu sein, und wenn jeder dem Kunden gefallen möchte.

Robert Paulsen
quelle
1

Tu Gutes und mach es bekannt.

Wenn Sie die Probleme anderer Leute beheben müssen, weil sie nicht auf das gehört haben, was Sie zuvor gesagt haben, oder weil sie zu unerfahren sind, um zu verstehen, was Sie ihnen gesagt haben, stellen Sie sicher, dass diese Leute und Ihre Chefs wissen, was der Grund war, als das erwartet wurde Der Zeitrahmen wurde verfehlt und welche Art von Planungsfehler wurde gemacht. Und seien Sie geduldig, wenn Ihre Kollegen nicht vollständig gegen das Lernen aus Fehlern resistent sind, wird sich die Situation mit der Zeit wahrscheinlich verbessern.

Doc Brown
quelle