Ich programmiere derzeit eine neue Anwendung für mein Unternehmen, die eher involviert ist. Um die Frist einzuhalten, wurde die Funktionalität erheblich reduziert, damit wir etwas für den Start bereithalten können.
Ich habe die Aufgabe, Version 1 bis Ende des Monats zum Laufen zu bringen. Ich bin ungefähr zur Hälfte in der Entwicklung und jetzt an dem Punkt angelangt, an dem ein Ende in Sicht ist.
Gestern habe ich einige Zeit damit verbracht, eine sehr schöne und einfache Lösung für eine der Anforderungen zu finden, und bin ziemlich stolz darauf, wie es ausgegangen ist. Heute Morgen wurde das Dokument der Version 2 verschickt, und es gibt eine Anforderung, die erfordert, dass der Code, den ich gestern geschrieben habe, entweder ausgeweidet oder stark geändert wird. Es würde in Zukunft viel Arbeit erfordern, wenn ich es so lasse, wie es ist. Ich kann jetzt einen zusätzlichen Tag in Anspruch nehmen, um meine aktuelle Lösung robuster zu machen, damit die v2-Funktion mit viel weniger Aufwand hinzugefügt werden kann, aber das wird mich ein bisschen in Verzug bringen, was die zusätzliche Codierung angeht, die erforderlich wäre.
Ich weiß nicht, ob ich v2 machen werde. Es könnte ich sein oder es könnte ein Mitarbeiter oder sogar ein Praktikant sein.
Wenn Sie in meinen Schuhen wären, würden Sie jetzt die Zeit verbringen, um es in Zukunft einfacher zu machen, oder würden Sie Ihre Lösung verlassen und sich zu gegebener Zeit damit befassen?
quelle
Antworten:
Wenn die Frist In Stein gemeißelt ist, beenden Sie einfach, was Sie müssen, um es zu erfüllen. Stellen Sie sicher, dass Sie die Schätzungen für Version 2 aufblasen, um den Codeänderungen für die neue Anforderung Rechnung zu tragen. Stellen Sie außerdem sicher, dass Sie kurz dokumentieren, was Ihrer Meinung nach für die neuen v2-Funktionen geändert werden muss, damit ein Mitarbeiter es abholen kann, wenn Sie einer anderen Aufgabe zugewiesen sind.
Wenn die Frist flexibel genug ist (1 Tag, nach dem Klang der Zeit, also eine Verlängerung um 2,5 Tage anstreben), können Sie sicher sein, dass Sie für die bekannte Zukunft programmieren!
quelle
Vermeiden Sie es, dem zweiten Systemeffekt (früh) zum Opfer zu fallen . Hier sind einige gute Techniken zum Anwenden:
Die meisten Softwareprojekte, die wie Städte wachsen, sind langfristig erfolgreich. Durch die evolutionäre Planung nur für die begrenzte Zukunft kann Ihre Software pünktlich und mit den bei der Veröffentlichung erforderlichen Funktionen veröffentlicht werden - und nicht mehr. Sehen Sie diesen Auszug aus Carl Sagan:
quelle
Fügen Sie heute keinen Code für die Anforderungen des nächsten Monats hinzu. Heute sollten Sie den saubersten Code für Ihre Anforderungen schreiben. Ich bin skeptisch, dass ein Tag Arbeit mehrere Tage später sparen wird. Ich habe solche Behauptungen gehört und kann mich an keinen einzigen Fall erinnern, in dem dies der Fall war. Sie können mich vielleicht überzeugen, indem Sie Code anzeigen, aber meiner Erfahrung nach ist dies unwahrscheinlich.
quelle
Lass es so wie es ist.
Entwickler schätzen tatsächlich ein Legacy-Projekt, das tut, was es tun soll und nicht mehr.
Was heute als eine gute Idee für die "Inszenierung" der Codebasis zur Erfüllung einer "zukünftigen" Anforderung erscheinen mag, wird höchstwahrscheinlich ein Hindernis für das Verständnis des Codes in der Zukunft sein. Niemand befasst sich gerne mit teilweise implementierten Funktionen und Spuren vergessener Phantomanforderungen. Ich sage nicht, dass das der Fall sein wird, aber die Dinge laufen trotz der besten Absichten oft so.
quelle
Gute Antworten. Ich würde nur hinzufügen - was ich in einem Fall wie diesem tue, ist, ein gutes Diff zu nehmen, damit ich erfassen kann, was ich getan habe, und es an einem sicheren Ort wegschneiden kann. Wenn sich die Gelegenheit bietet, es in der nächsten Version erneut zu tun, wird es einfach.
Im Allgemeinen nimmt ein guter Entwickler zukünftige Anforderungen vorweg, aber wenn sich eine Frist abzeichnet, ist es an der Zeit, auf Fehler in dem zu reagieren, was Sie bereits haben, und das Boot nicht zu "rocken".
quelle
Es hängt davon ab, ob. Es gibt eine gute altmodische Regel: Behandle andere Menschen so, wie du selbst behandelt werden möchtest. Was würden Sie tun, wenn es Ihr eigenes Projekt wäre und Sie alle Prioritäten kennen würden?
Wenn v2 definitiv benötigt wird und die Frist nur ein Wunsch und keine Notwendigkeit ist, dann schulden Sie sich keine technischen Schulden und flicken Sie Ihre Segel, wenn das Wetter gut ist. Selbst wenn jemand anderes v2 macht, wird er die Weitsicht zu schätzen wissen.
Wenn Zweifel an der Notwendigkeit von v2 bestehen, bleiben Sie bei YAGNI. Auch wenn Sie sich auf der anderen Seite des Spektrums befinden und einen dieser Kunden haben, der Sie ständig mit seinen Ideen spamt, bevor sie sich formieren, dann überprüfen Sie Ihre E-Mails nur zwei- oder dreimal täglich und stürzen sich nicht in Eile. Sie werden überrascht sein Wie viele "Probleme" und Anfragen werden irrelevant, bevor Sie sie überhaupt lesen.
quelle