Wie mache ich eine effiziente Codeüberprüfung während des Release-Fiebers?


17

Der Abgabetermin für eine Veröffentlichung ist morgen. Ihr Kollege hat seine für diese Veröffentlichung entscheidende Aufgabe endlich erledigt. Der Projektmanager steht Ihnen über die Schulter und drängt Sie, endlich einen Build zu erstellen. Während der Überprüfung bemerken Sie einen Fehler im Code Ihres Kollegen. Kein kritischer, aber etwas, das Sie nicht loslassen würden, wenn es morgen nicht die Veröffentlichung gäbe. Und um es noch schlimmer zu machen, haben Sie Ihre eigene Arbeit, die Sie so schnell wie möglich beenden müssen. Also, was machst du? Erheben Sie Ihren Einwand trotz des Drucks oder lassen Sie diesen einfach ausrutschen?

Eine Möglichkeit, die ich gefunden habe, besteht darin, dieses Commit vorübergehend in einem anderen Zweig zusammenzuführen und für einen späteren Zeitpunkt zu überprüfen. Es funktioniert, wenn es sich nur um ein kosmetisches Problem handelt und wenn es das einzige Problem ist, das noch auf eine Codeüberprüfung wartet. Gibt es jedoch eine effizientere Möglichkeit, damit umzugehen? Würden Sie beispielsweise empfehlen, nur eine Person für Codeüberprüfungen und -tests zu verpflichten?


3
Warum sprechen Sie das Problem nicht an und lassen den Manager damit umgehen? Es sieht so aus, als wäre es sein Anruf, nicht Ihr Anruf: Entweder stimmt er der Freigabe einer möglicherweise fehlerhaften Anwendung zu, oder er verzögert die Freigabe (teilweise). Es scheint, als würde Sie das Verrutschen davon abhalten, eine Buggy-Version herauszubringen, und Sie werden dafür verantwortlich, da Sie wussten, dass sie einen Defekt hatte und nichts sagten.
Vincent Savard

1
Der Manager darf diesen Anruf tätigen, nicht Sie. Klar, wirf die Ausnahme auf. Dann lass ihn entscheiden. Ich vermute, er wird mit der Veröffentlichung fortfahren und Sie mit dem Problem befassen, das Sie später angesprochen haben.
Robert Harvey

Ein Strom"? Meinst du einen Fehler?
Doc Brown

3
Es wird wahrscheinlich einen Unterschied machen, wenn Ihr Team eine Veröffentlichung pro Woche, einen pro Monat oder einen pro Jahr liefert.
Doc Brown

Bei diesem Review-Meeting kurz vor der Veröffentlichung werden die Leute viel eher bereit sein, etwas durchzulassen, das sie unter normalen Bedingungen nicht durchstehen würden - und wenn es erst einmal durchgesehen hat, ist es soweit Überprüfung bis nach der Veröffentlichung, wenn alle wieder bei Verstand sind. Es wird sowieso mehr Bugs als diesen geben ...
Tofro

Antworten:


18

Die Antwort hier ist zu kommunizieren.

  1. Informieren Sie den Techniker / Teamleiter über das Problem
  2. Sprechen Sie mit der Qualitätssicherung über die möglichen Auswirkungen
  3. Teilen Sie dem Projektmanagement (der direkt hinter Ihnen steht) mit, dass möglicherweise ein Problem vorliegt, durch das die Freigabe verzögert wird, und Sie werden umgehend (innerhalb von Minuten oder Stunden) mit ihnen Kontakt aufnehmen.
  4. Bewerten Sie, ob dieses Problem ein Show Stopper für die Veröffentlichung ist

Wenn das Problem kein Show Stopper ist, fahren Sie mit der Veröffentlichung fort. Informieren Sie die Qualitätssicherung und Ihre Benutzer über das Problem und legen Sie ein Follow-up-Datum fest, an dem das Problem behoben wird. Dies wird nur ein weiteres Risiko für die Produktion.

Wenn dies ist ein Show - Stopper (was bedeutet es einen negativen Einfluss auf die untere Zeile oder jemand die Gesundheit haben wird) kommunizieren diese oben in der Kette , dass Ihre Empfehlung ist es, die Abgabe zu verzögern, und sagen , warum. Setzen Sie sich dann mit dem Entwickler in Verbindung und errechnen Sie, wie lange es dauern wird, bis das Problem behoben ist. Teilen Sie dem Management mit, dass Sie X Minuten / Stunden / Tage benötigen.

Wahrscheinlich wird sich das Management nicht über einen Show-Stopper so spät im Spiel freuen, aber nicht wollen, dass dieser für die Produktion freigegeben wird.

Kommunizieren Sie und lassen Sie das Management den Anruf tätigen.


8

Teilen Sie das Problem nicht nur mit, sondern dokumentieren Sie es

Meine große Sorge um die anderen Antworten bisher: Alles, was Sie in dieser Richtung dem typischen Projektmanager sagen, der sich einer bevorstehenden Frist gegenübersieht, wird wahrscheinlich ignoriert oder vergessen. Dann können Sie immer noch auf der Hut sein, weil Sie das Risiko nicht ausreichend kommuniziert haben, wenn etwas schief geht.

Informieren Sie den Projektmanager über das Problem, das Sie gefunden haben, und lassen Sie ihn wissen, dass Sie es dokumentieren werden . Sie müssen in der Lage sein, auf Ihre Sorgfaltspflicht hinzuweisen.

Wo zu dokumentieren und wem zu berichten ist, hängt von Ihrer Arbeitsumgebung ab, aber auf jeden Fall auch von Ihrem Chef.

Identifizieren Sie Risiken und Auswirkungen

Sie erwähnen, dass das Problem nicht kritisch ist , definieren aber nicht wirklich, was das bedeutet. Das zu konkretisieren ist Ihr nächster Schritt.

Führen Sie eine schnelle Risiko- und Wirkungsanalyse durch, um das Problem zu identifizieren, wie wahrscheinlich es ist, ein Problem zu verursachen (Risiko) und wie schwerwiegend die Folgen sind, wenn das Risiko zum Tragen kommt (Auswirkung). Verwenden Sie genau definierte Begriffe (die Ihr Projektmanager kennen sollte) wie die im obigen Link angegebenen, geben Sie jedoch auch eine Beschreibung für Ihre Analyse an.

Ihre Dokumentation sollte auch Ihre empfohlene Vorgehensweise enthalten. Ja , es ist in Ordnung, Bedenken zu äußern und dennoch zu empfehlen, mit der Veröffentlichung fortzufahren. Es ist richtig , das Risiko zu identifizieren .

Wann ist deine nächste Veröffentlichung?

Wenn Sie nach Abschluss Ihrer Risiko- / Auswirkungsanalyse immer noch nicht wissen, was Sie empfehlen sollen, berücksichtigen Sie Ihren Release-Zeitplan. Einige unvollständige Codes können nur freigegeben werden, wenn Sie damit rechnen können, dass die Korrektur in zwei Wochen erfolgt.

Wenn die Möglichkeit besteht, dass die Behebung Ihres Problems „depriorisiert“ wird (dh zugunsten der nächsten Glanzverbesserung vernachlässigt wird), ist dies ein weiterer Grund, das Problem so bald wie möglich zu dokumentieren, nachdem Sie es entdeckt haben: Wenn es tatsächlich „beginnt“ die Uhr “zum Thema.


7

In diesem Fall informieren Sie einfach alle und lassen Sie sie entscheiden. Es ist wahrscheinlich nicht der erste Fehler, den Sie veröffentlicht haben.

Die Frist ist morgen, aber Sie befinden sich in dieser Situation:

Der Projektmanager steht über Ihrer Schulter und drängt Sie, endlich einen Build zu machen

Dies kann die Ausnahme sein. Nehmen Sie also keine drastischen Änderungen an Ihrem Prozess vor, nur weil ein Fehler aufgetreten ist. Sie sollten lediglich einige Maßnahmen ergreifen, damit Sie nicht in letzter Minute Builds erstellen. Hoffentlich machst du Builds regelmäßig genug, um dir das Vertrauen zu geben, dass es gelingen wird. Das ist immer noch kein guter Grund, sie in letzter Minute laufen zu lassen. Gut getestete Dinge sind ein weiteres Mittel, um das Vertrauen zu stärken.

Präsentieren Sie dieses Szenario jedem, der dieses Ding leitet.

  • Bestimmen Sie, welche Arten von Problemen dargestellt werden sollen.
  • Identifizieren Sie die Optionen.
  • Wer trifft die Entscheidung
  • Wann soll das alles entschieden werden? Es wird wahrscheinlich relativ zum Erscheinungsdatum sein.

Dies beantwortet zwar nicht die Frage, was mit diesem Last-Minute-Problem zu tun ist, bietet jedoch eine Möglichkeit, um sicherzustellen, dass Sie in Zukunft in der Lage sind, mit diesen Problemen umzugehen. Besonders wenn Druck besteht, sich zu lösen, möchten Sie einen Weg finden, mit Dingen auf eine Weise umzugehen, die durchdacht und nicht von Emotionen getrieben ist.


1

Wenn es eine Frist gibt und Ihr Manager direkt hinter Ihnen steht und Ihnen über die Schulter schaut, sagen Sie ihm, er soll gehen. Er geht weg oder du gehst weg. Erklären Sie ihm, dass Sie, wenn Sie gezwungen sind, unter Druck zu prüfen, den Code genauso gut nicht prüfen können.

In einer solchen Situation können Sie ziemlich sicher sein, dass ein kritischer Fehler auftritt.

Sie können sich in einer glücklichen Situation befinden, zum Beispiel beim App Store von Apple, wo Sie ein paar Tage Zeit haben, um eine neue Version zurückzuziehen. Aber wenn Ihr Code an Kunden verschickt wird, ist das ein Rezept für eine Katastrophe. Nächstes Mal hoffe ich, dass Ihr Manager besser plant.


Ich kann verstehen, dass man diese Antwort ablehnen könnte. Ich stimme Ihnen jedoch zu, dass es ein Planungsproblem ist und eine Überprüfung unter Druck keine Besserung bringt
Clijsters

Ich denke, es ist ziemlich klar, dass OP nicht wörtlich "über die Schulter schauen" bedeutete, er hat nur ein wenig übertrieben, um seinen Standpunkt klarer zu machen. Also meiner Meinung nach verfehlt diese Antwort den Punkt der Frage völlig.
Doc Brown

2
@ DocBrown, ich bin mit Ihnen nicht einverstanden, dass diese Antwort den Punkt verfehlt. Allerdings ist PM buchstäblich über die Schulter schauen, dort am Stichtag lauern Realität viele Orte.
Tim Grant

1

Andere Antworten konzentrieren sich auf das Problem Ihres Managers, der versucht, Ihren Qualitätsprozess zu verbessern.

Ich denke jedoch, Sie fragen sich, wie Sie mit der Tatsache umgehen sollen, dass die Codeüberprüfung mindestens zwei Personen erfordert und daher erhebliche Verzögerungen mit sich bringt. Wenn zum Beispiel die Implementierung einer Aufgabe 2 Stunden und die Überprüfung 2 Stunden dauert, gibt es häufig eine lange Pause zwischen den beiden Aktivitäten. In Echtzeit kann die Ausführung der Aufgabe 2 oder 3 Tage dauern.

Dies ist ein klassisches Problem zwischen Durchsatz und Latenz. In Software-produzierenden Maschinen (Menschen) sind Kontextwechsel teuer, daher sollte es keine alltägliche Praxis sein, die Arbeit von jemandem zur sofortigen Durchführung einer Überprüfung zu verweigern.

Hier sind einige Tipps, um das Problem zu beheben:

  • Senden Sie während der Arbeit an einer Aufgabe Code in kleinen Teilen, damit der Prüfer keine langen, ununterbrochenen Zeitabschnitte reservieren muss.
  • Förderung einer Kultur mit hoher Priorität für Code-Überprüfungen. Beenden Sie nicht Ihre aktuelle Arbeitseinheit, wenn Sie eine Anfrage erhalten, sondern wählen Sie immer eine Überprüfung aus Ihrer Warteschlange aus, wenn Sie sich fragen, was als Nächstes zu tun ist.
  • Nutzen Sie den Zeitzonenunterschied in Ihren Teams, wenn es einen gibt.
  • Verpflichten Sie nicht eine einzige Person zur Codeüberprüfung. Das ist kontraproduktiv. Er wird die Last nicht bewältigen können, wenn er seine Aufgabe ernst nimmt. Ihr Vorgesetzter akzeptiert nicht die Vorstellung, dass jemand untätig ist, nur um möglicherweise einen Tag zu sparen.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.