In einer idealen Welt ist es vorzuziehen, die Frist mit weniger Fehlern einzuhalten. Aber aus Ihrer Erfahrung, die bevorzugter / akzeptabler ist:
- Die Frist einhalten, hat aber eine Reihe von Fehlern, weil Entwickler in die Dinge stürzen
- Weniger Bugs, aber die Deadline nicht ganz eingehalten, da der Entwickler den Code sehr genau schreibt
project-management
Joshua Partogi
quelle
quelle
Antworten:
Die Antwort auf diese Frage hängt stark von den Geschäftszielen sowie vom Kunden ab.
Unternehmen :
Wenn Sie mit einem auf dem Markt etablierten Kunden auf Unternehmensebene Geschäfte tätigen, sind diese weniger flexibel und können sich nicht so schnell an Änderungen anpassen. Stabilität ist daher in den meisten Fällen unabdingbar. Es gibt Ausnahmen für Forschung und Entwicklung sowie für den Eintritt in neue Branchen. In einigen Fällen wird der Schnellere zuerst beendet.
Diese Arten von Kunden wissen im Allgemeinen, dass die Entwicklung einer guten Software einige Zeit in Anspruch nimmt und arbeiten mit Ihnen zusammen, um zu versuchen, die Ziele zu erreichen.
Startups :
Bei einem neuen Start sind die Regeln drastisch unterschiedlich. Als Startup müssen Sie sofort wissen, ob das Produkt, das Sie entwickeln, tatsächlich einen Bedarf erfüllt, wie von Ihrer Marktforschung prognostiziert. Wenn Sie als Startup einen Prototyp so schnell wie möglich auf den Markt bringen, erhalten Sie viele wertvolle Rückmeldungen über die Richtung, in die das Produkt gehen soll.
Es kann Sie auch als Marktführer etablieren und Ihnen helfen, wertvolle Marktanteile in einer neuen Branche zu gewinnen, bevor diese mit dem Wettbewerb gesättigt wird.
Da Startups klein und flexibel sind und sich schnell an Veränderungen anpassen können, eignet sich dieses Modell am besten für sie.
Zusammenfassend sind noch weitere Faktoren zu berücksichtigen. Die Hauptidee ist jedoch, dass jedes Projekt anders ist und unterschiedliche Qualitäts- und Time-to-Market-Ziele hat. Es ist Aufgabe der Geschäftsführung, eine effektive Geschäftsstrategie zu bestimmen, die eine gründliche Analyse der Opportunitätskosten für die Auswahl einer Methode gegenüber einer anderen umfasst.
quelle
oder ... 3. Schneiden Sie nicht benötigte Funktionen aus
Manchmal sind die Fristen aufgrund der technischen Besonderheiten oder der vom Kunden angeforderten Besonderheiten schwer einzuhalten, und es kommt inhärent zu einer größeren Anzahl von Fehlern. Es werden die Prinzipien von KISS und YAGNI angewendet.
Aus diesem Buch zitiert "Rework", das Wesentliche / Kern / Epizentrum Ihrer Software ist, was das Geschäft benötigt, um zu funktionieren, so wie ein Hot-Dog-Stand ein Hot-Dog-Stand ohne Belag sein kann, was Sie nicht ausschneiden können die Hotdogs.
Neu verhandeln
Eine der schwierigsten Aufgaben ist es, Kunden bei Laune zu halten, und meiner Erfahrung nach kann dies mit kleineren Produktiterationen einfacher erreicht werden.
Manchmal erfordern Fristen, dass die Software seit dem ersten Tag auf einem hohen Produktionsniveau arbeitet. Manager / Kunden wissen nicht immer (meistens), was sie tatsächlich für die Software benötigen. Versuchen Sie also, unwesentliche Funktionen zu reduzieren und die Qualität zu erhalten. Letztendlich hängt es davon ab, wie kritisch die Produktionsumgebung sein wird, aber versuchen Sie, zusätzliche Funktionen auszuschließen und Qualität zu liefern. Nochmals zitiert aus "Rework":
Später zu tun bedeutet auch, es besser zu machen
... und Termine mit weniger Fehlern einhalten
quelle
Nun, Sie können es so formulieren: Wollen Sie jetzt oder später für Qualität bezahlen? Entweder nehmen Sie sich die Zeit, es zuerst gut zu machen, oder nehmen Sie sich Zeit, um später alle Probleme zu beheben. Ich würde argumentieren, dass diese Bugfixing-Phase nach der Feature-Entwicklung möglicherweise teurer ist, da sie auch riskanter und anfälliger für Hacky-Lösungen sein kann, da der vorhandene Code bereits vorhanden ist und wahrscheinlich nicht hoch genug in der Qualität ist.
quelle
Halten Sie die Frist ein und legen Sie eine Liste bekannter Probleme vor.
Die Leute HASSEN es, Fehler zu finden, aber wenn man ihnen von vornherein sagt, dass sie viel nachsichtiger sind.
quelle
Das hängt ganz von der Situation ab ....
Es gibt viele Faktoren zu berücksichtigen:
Kurz gesagt, es gibt keine Schwarz-Weiß-Antwort darauf. Zum Beispiel: Bei einem eingebetteten System, dessen Implementierung auf Geräten im Feld schwierig und kostspielig ist, ist es möglicherweise am besten, zu warten (Termine neu auszuhandeln, wenn möglich) und es so fehlerfrei wie möglich zu machen. Auf der anderen Seite kann es für so etwas wie ein großes Web-Portal-System (als Web-App geschrieben), das jederzeit problemlos aktualisiert werden kann, indem Fixes bei Erscheinen veröffentlicht werden, sinnvoller sein, eine anfangs zweifelhafte Version zu veröffentlichen, und Beheben Sie dann Probleme (und die Funktionalität der Edge-Cases), sobald Sie dazu kommen.
Letztendlich war dies meiner Erfahrung nach eher eine Geschäftsentscheidung als eine technologische Entscheidung. Wenn Sie in einer Situation sind, in der das Ausbleiben der Deadline eine große Sache ist und eine fehlerhafte Erstversion nicht (oder umgekehrt), sollten Sie diese Dinge abwägen, wenn Sie eine Entscheidung treffen.
HINWEIS: Als Programmierer bevorzuge ich natürlich die Idee, ein Produkt so gut wie möglich aufzupolieren, bevor ich es loslasse (zum Teufel, ich hätte lieber überhaupt keine Fristen;)). Aber realistisch ist das im wirklichen Leben nicht möglich. Häufig ist eine reduzierte Erstveröffentlichung eine gute Lösung für den Mittelweg.
quelle
Ich habe viele PMs gesehen, die Angst hatten, dem Kunden mitzuteilen, dass wir den Zeitplan nicht einhalten können, und darauf bestanden, dass wir mit bekannten Fehlern ausgeliefert werden. Ich kann Ihnen sagen, dass er jedes Mal, wenn er es dem Kunden erzählt, weitaus mehr an weniger Fehlern und einer verschobenen Frist interessiert ist. Ich garantiere, dass sie sich die Fehler mehr als die versäumte Frist merken, es sei denn, die Frist ist absolut unbeweglich (wie zum Beispiel der Beginn der Steuererklärungssaison, wenn Sie Steuersoftware ausführen) oder sie beeinflussen einige andere Dinge, deren Verschiebung sehr kostspielig sein wird (IMHO) 98% aller Fristen erfüllen diese Kriterien nicht.
quelle
Ich denke es hängt vom Bug ab. Möchten Sie eine Veröffentlichung verzögern, um einen Fehler zu beheben, bei dem die App in dem Moment abstürzt, in dem sie auf einem Computer gestartet wird? Ja auf jeden Fall. Müssen Sie einen Fehler beheben, der nur unter Windows ME bei Vollmond auftritt? Das kann wohl warten.
Wenn es sich um einen kritischen Fehler handelt, ist es vorzuziehen, die Nummer 2 zweifach zu wiederholen. Der Grund dafür ist, dass es exponentiell mehr kostet, das Problem zu beheben, wenn Sie dieses Problem in einem Update beheben müssen.
Für weniger kritische Updates können Sie ein Update-Paket veröffentlichen, das diese Kosten bis zu einem gewissen Grad senkt.
Im Zweifelsfall sagen wir, dass Sie mit # 2 weitermachen, aber ich wäre nicht überrascht, wenn das Management mit diesem Ansatz zurückschlagen würde. Ich vermute, dass Manager eher danach beurteilt werden, wie gut sie die Fristen einhalten, als dass sie keine unnötigen kritischen Aktualisierungen verursachen.
quelle
Weder. Warum backen Sie nicht die Qualität mit Ihrem Code ein? Termine mit Quality Code einhalten können? Sie können zwar weniger Features hervorheben, aber wenn Qualität in den Prozess eingebunden wird, können Sie beides erreichen.
Was jetzt passiert, ist, dass Sie einen befugten Teamleiter oder Entwickler-Manager benötigen, der das Geschäft zurückdrängen und sich über zwei Dinge unterhalten kann:
Dann können Sie sich auf die hochwertigsten Funktionen konzentrieren und diese mit Vorzüglichkeit herausstellen.
quelle
Was das Testen angeht, ist es nie zu Ende. es ist vorbei, aber nie fertig.
Starten Sie mit Bugs, deren Schwere und Priorität beseitigt ist.
quelle
Die Einhaltung der Frist mit vielen Fehlern macht Sie arm in der Branche, und der Kunde wird nicht wieder zu Ihnen kommen. Sie können mit dem Kunden sprechen, um die Verzögerung um zwei oder drei Tage zu erhalten.
quelle
Wenn Sie sich das von einem Endbenutzer ansehen, wäre ich ziemlich fertig, wenn jemand versprochen hätte, etwas für Montag zu tun, und wenn ich versuchte, es zu verwenden, funktioniert es nicht oder es ist alles fehlerhaft.
Wenn Sie sich jedoch die "prozedurale" Seite ansehen, bedeutet dies, dass die Anwendung mehr Tests benötigt und Teil des natürlichen Lebens von Software ist.
Mein bester Ansatz ist es, die Dinge so zu machen, wie sie funktionieren sollen (wenn es ein Hauptmodul ist, achten Sie nicht auf Details, melden Sie sich in einem Formular an, aber jeder wird belohnt, wenn Sie später keine Benachrichtigungen zeigen).
quelle
Dies ist eine Frage, die nur Sie beantworten können. Es hängt von der Art des Produkts ab, wer der Kunde ist, was der Kunde verlangt usw. Es gibt keine Möglichkeit für uns, eine einfache 'a oder b'-Antwort zu geben. Es ist völlig situationsabhängig.
Ich möchte Sie jedoch daran erinnern, dass die Kosten für die Behebung eines Fehlers nach der Veröffentlichung weit höher sind als für die Behebung vor der Veröffentlichung. Berücksichtigen Sie dies also, wenn Sie entscheiden, ob Sie bis zur Veröffentlichung warten möchten, um einen Fehler zu beheben, da Sie mehr Zeit / Aufwand / Geld dafür aufwenden müssen.
quelle