Wie kann man ein erweitertes Projekt begrenzen? [geschlossen]

Alle meine vorherigen Projekte wurden um 300 % oder 400 % über den ursprünglichen Anforderungen erweitert. Irgendwie verliebe ich mich in das Projekt und versuche es immer besser zu machen, indem ich neue Funktionen und hübsches Design hinzufüge. Dann stelle ich plötzlich fest, dass ich hinter der Deadline her bin und einige Anforderungen noch nicht erfüllt sind. Dadurch erwartet der Arbeitgeber die gleiche Qualität im Rest des Projekts mit der gleichen Frist, was unmöglich ist.

Ich habe das Gefühl, dass ich weniger produktiv werde, wenn ich 75 % der Anforderungen mit übererwarteter Qualität erledigt und 25 % vollständig rückgängig gemacht habe. Das Ergebnis ist lange Überarbeitung, viele Entschuldigungen, verspätete Lieferung bei gleichem Gehalt.

Was tun, wenn ich etwas Gutes finde, das dem Programm hinzugefügt werden kann? Sollte ich es ignorieren, um meine Frist einzuhalten oder um Fristverlängerung bitten, oder ist es in Ordnung, um zusätzliches Geld und Zeit zu bitten?

Ich glaube, Ihre Frage gehört zu einer anderen Site ( programmers.stackexchange.com ). Aber wie auch immer, so wie es aussieht, ist unklar, was Sie fragen. Sie möchten sich auf Anforderungen konzentrieren können? Sie möchten Fristen verlängern? Oder möchten Sie ein höheres Gehalt für die bessere Arbeit?
Ich stimme @superM zu, eine andere Seite könnte besser geeignet sein. Obwohl ich denke, dass Projektmanagement genau das ist, wonach Sie suchen. Aber die Frage ist wirklich ziemlich unklar.
@superM Das könnte auch passen. Weiß nicht was da Thema ist
Die Antwort ist einfach, wirklich ... lernen Sie, Prioritäten zu setzen.
Ich denke, das ist teilweise eine Arbeitsplatzfrage. Der OP versteht eindeutig nicht, wie die Arbeitswelt funktioniert und warum das, was er tut, am Arbeitsplatz inakzeptabel ist und wie er sein schlechtes Benehmen korrigieren kann.
Ich bin bei HLGEM. Einerseits SOLLTEN Sie sich in Ihr Entwicklungsprojekt verlieben. Andererseits haben Sie kein Recht, die Extras zu machen. Leisten Sie gute Arbeit, aber halten Sie sich an die Vorgaben. Machen Sie sich währenddessen Notizen, und wenn Sie danach Zeit haben, können Sie zurückgehen und Anpassungen vornehmen, wenn sie genehmigt wurden.

Antworten (5)

Was Ihnen anscheinend fehlt, ist die ständige Kommunikation mit Ihrem Arbeitgeber.

Nehmen Sie einen agilen Ansatz für die Entwicklung an und iterieren Sie häufig. Konzentrieren Sie sich bei jeder Iteration nur auf das, was der Arbeitgeber benötigt. Sprechen Sie jedes Mal mit Ihrem Arbeitgeber, wenn Sie eine Iteration abgeschlossen haben.

Dadurch wird sichergestellt, dass der Arbeitgeber bei jedem wichtigen Schritt nach vorne wissen kann, wie es um das Projekt steht. Wenn Sie nicht in der Lage sind, sich selbst zu sagen, was gut genug ist, lassen Sie sich von Ihrem Arbeitgeber sagen, was gut genug ist. Versuchen Sie nicht, ihn dazu zu bringen, Ihre perfektionistische Sichtweise zu teilen. Wenn er denkt, was du ihm zeigst, ist es gut genug, dann ist es gut genug, und kein Maß an Perfektionismus wird sich dort lohnen.

Ihr Projektmanagementprozess leidet unter Feature Creep und (wahrscheinlich) dem Planungsfehler .

Dinge, die Sie tun könnten:

  • TDD verwenden; Das heißt, definieren Sie Ihr Feature, schreiben Sie einen positiven Test dafür und schreiben Sie dann Code, bis der Test bestanden ist (und nicht mehr).

  • Führen Sie bei Ihrer Planung zwei Listen: „Features“ und „Out-of-Scope Features“. Wenn Sie eine Idee haben ("es wäre schön, wenn der Quux auch mit einem Blox funktionieren würde"), platzieren Sie sie in den "Out-of-Scope-Funktionen". Wenn Sie Zeit haben (erste Priorität) und der Kunde zustimmt, dass Ihre Idee ein cooles Feature wäre, können Sie Ideen einzeln aus dem Out-of-Scope in die Feature-Liste verschieben (mit zusätzlichem Zeitbudget, vereinbart mit dem Kunden). .

  • formulieren Sie Ihre Ziele; Wenn Sie eine Aufgabenliste erstellen, erstellen Sie eine Stichpunktliste mit Kriterien, die der zu erledigenden Aufgabe entsprechen ("Definition of DONE"). Kriterien Beispiel:

    • Aufgabe ist erledigt, wenn:
    • Code ist sauber
    • Es gibt einen positiven Unit-Test und er besteht
    • Es gibt negative Unit-Tests für ungültige Eingaben und sie bestehen
    • API ist dokumentiert
    • Code eingecheckt.

    Nachdem Sie Ihre Aufgabe formalisiert haben, arbeiten Sie an einer einzelnen Aufgabe, bis sie fertig ist, und fahren Sie dann mit der nächsten fort.

Ich mag die Antwort, außer dass der TDD-Kommentar nicht zu passen scheint. Bei der Arbeit an Projekten kommen mir ständig Ideen und neue Features. Früher habe ich einige hinzugefügt, weil sie relativ einfach und schnell waren. Als ich jedoch "geschäftliche" Erfahrungen gesammelt habe, habe ich gelernt, dass dies mein Unternehmen nicht nur Geld für die Zeit kostete, die ich für die Implementierung der nicht erforderlichen Funktion aufwendete, sondern auch zukünftiges Geld verlor, das ein Kunde bereit wäre zu zahlen um uns zum Projekt hinzuzufügen. Schreiben Sie Ihre Ideen auf, stellen Sie dem Kunden Produktverbesserungen gegen eine zusätzliche Gebühr vor.
Ich habe TDD hier hinzugefügt, weil es den Funktionseinbruch im geschriebenen Code einschränkt: Wenn Sie eine klare Geschäftsanforderung haben, beginnen Sie mit dem Schreiben eines Tests; Wenn Sie keine klare Anforderung haben und denken, dass Ihre "Schnellzusatzfunktion" eine gute Idee ist, wird die Tatsache, dass Sie mit dem Schreiben beginnen sollten, Sie wahrscheinlich davon abhalten, es zu versuchen (weil die Schnellfunktion nicht mehr so ​​schnell ist in diesem Fall schreiben).

Irgendwie verliebe ich mich in das Projekt und versuche es immer besser zu machen, indem ich neue Funktionen und hübsches Design hinzufüge. Dann stelle ich plötzlich fest, dass ich hinter der Deadline her bin und einige Anforderungen noch nicht erfüllt sind.

Die offensichtliche Lösung ist also: Hör auf damit!

Konzentrieren Sie sich stattdessen auf die Anforderungen. Berücksichtigen Sie die Deadline und führen Sie das Projekt so durch, dass es alle Anforderungen erfüllt und das erwartete Qualitätsniveau erreicht.

Fragen Sie dann, und nur dann, Ihren Arbeitgeber, ob es in Ordnung ist, neue Funktionen hinzuzufügen, das Design zu verschönern usw. (Denken Sie daran, dass Sie möglicherweise nicht die einzige Person an dem Projekt sind. Wenn Sie sich entscheiden, nicht erforderliche Funktionen hinzuzufügen, jemand andere müssen sie möglicherweise testen, die Dokumentation muss möglicherweise geändert werden, das Marketing muss möglicherweise Screenshots wiederholen usw. Und jedem dieser Leute ist möglicherweise die Projektzeit ausgegangen.)

Wenn Ihr Arbeitgeber jetzt sagt, Sie können mehr – dann viel Spaß. Aber oft besteht der Trick darin, ein System auf „gut genug“ zu bringen und dann mit dem nächsten gewinnbringenden Projekt fortzufahren, anstatt ein bereits vollständiges System ständig zu optimieren.

Ich persönlich würde einen Entwickler feuern, der neue Funktionen hinzufügt, die nicht in den Anforderungen enthalten sind. Das ist eine ernsthaft falsche Sache. Vorschläge für Dinge zu machen, die gut hinzugefügt werden könnten, großartig. Sie ohne geschäftliche Genehmigung hinzuzufügen, ist schlecht. Sie ohne Genehmigung des Unternehmens hinzuzufügen, wenn die Anforderungen nicht erfüllt werden, extrem schlecht. Es ist nicht Ihre Aufgabe zu bestimmen, was die Anwendung tut.
Ich denke, die Entlassung ist angemessen, wenn man bedenkt, wie sehr er sagt, dass er die geplanten Stunden für das Projekt verlängert hat. Er hat sein Unternehmen viel Geld gekostet.
Ich schätze diesen Standpunkt sehr, aber in meinem Fall bin ich Freiberufler und arbeite zu einem Festpreis, also bin ich der einzige Betroffene

Aus Sicht des Arbeitsplatzes ist das, was Sie tun, völlig inakzeptabel. Ihnen wurden Aufgaben übertragen, Sie verwenden sie ohne Genehmigung, um mehr zu tun, als verlangt wurde, Sie erhöhen die Kosten des Projekts um das 3- bis 4-fache und liefern dann nicht alles, was verlangt wurde, rechtzeitig.

Dies ist ein klares Leistungsproblem, und ich wäre nicht überrascht, wenn ich gefeuert oder eine schlechte Bewertung erhalten würde, was Sie beide verdienen.

Sie müssen verstehen, dass sie aus geschäftlicher Sicht das Produkt erwarten, nach dem sie gefragt haben, und nicht das, für dessen Änderung Sie sich selbst entschieden haben. Sie zahlen für das Produkt, sie haben das Recht zu entscheiden, was sie brauchen. Diese Anforderungen, die Sie aufgeben, um Dinge schöner zu machen oder ein paar coole Dinge zu tun, sind wahrscheinlich wichtig für das Geschäft, viel wichtiger als das, womit Sie Ihre Zeit verbringen. Es ist eine Frage der Prioritäten.

Was Sie aus Sicht des Arbeitsplatzes tun müssen, ist, keine Änderungen mehr vorzunehmen, ohne einen Genehmigungsprozess zu durchlaufen, aufzuhören, die langweiligen Teile zu sprengen, um lustige Sachen zu machen, und anfangen, darauf zu achten, was die Benutzer tatsächlich brauchen. Sie müssen lernen, Ihre Ideen dem Unternehmen zu präsentieren und erst dann daran zu arbeiten (außer an der Präsentation), bis Sie die Genehmigung haben, und dann müssen Sie lernen, Prioritäten täglich mit Ihrem Vorgesetzten zu besprechen. Es sollte Ihnen nicht erlaubt sein, ein Projekt um 3-4 hundert Prozent zu erweitern (offensichtlich macht Ihr Chef seinen Job auch nicht, sonst hätte er Sie gezügelt.) Die Leute, die für das Projekt bezahlen, verdienen es, dass Sie sich professionell verhalten und ihr Geld nicht verschwenden in eine nicht genehmigte Richtung abgeht.

Wenn Ihnen das oft passiert (und es hört sich so an, als wäre das kein Einzelfall), ist es das Beste, wenn Sie Ihren eigenen Plan erstellen, um Ihren Fortschritt dabei zu verfolgen.

Wenn Ihr Plan besagt, dass das X-Feature bis Woche 1 fertig sein sollte und Sie sich dem Ende von Woche 1 nähern, wissen Sie, dass Sie sich beeilen müssen. Das sollte dafür sorgen, dass Sie durchweg die erwarteten Fortschritte machen, anstatt gegen Ende die böse Überraschung zu erleben, wenn Sie feststellen, dass es nur zur Hälfte fertig ist.