Come eseguire un'efficace revisione del codice durante la febbre da rilascio?


17

La scadenza per un rilascio è domani, il tuo collega ha finalmente finito il suo compito che è cruciale per questo rilascio, il project manager è in piedi dietro di te e ti preme per fare finalmente una build e noti un difetto nel codice del tuo collega durante la revisione. Non critico, ma qualcosa che non lasceresti andare se non fosse per l'uscita domani. E a peggiorare le cose, hai il tuo lavoro che devi finire al più presto. Allora cosa fai? Sollevi la tua obiezione nonostante la pressione o lasci semplicemente sfuggire questo?

Un modo che ho scoperto è di unire temporaneamente questo commit in un altro ramo e lasciare la recensione per dopo. Funziona se il problema è solo estetico e se è l'unico in attesa di revisione del codice. Tuttavia, esiste un modo più efficiente per gestirlo? Ad esempio, consiglieresti di impegnare una persona a rivedere e testare solo il codice?


3
Perché non sollevi il problema e lasci che il gestore lo affronti? Sembra che sia la sua chiamata, non la tua: o accetta di rilasciare un'applicazione potenzialmente difettosa o ritarda (parte del) rilascio. Sembra che lasciarlo scivolare ti mette nel peggio di entrambi i mondi: rilasci una versione con errori e ne diventi responsabile poiché sapevi che aveva un difetto e non hai detto nulla.
Vincent Savard,

1
Il manager arriva a fare questa chiamata, non tu. Certo, solleva l'eccezione. Quindi lascialo decidere. Suppongo che procederà con il rilascio e ti consentirà di affrontare il problema sollevato in seguito.
Robert Harvey,

Un flusso"? Intendi un difetto?
Doc Brown,

3
Probabilmente farà la differenza se il tuo team offre una versione alla settimana, una al mese o una all'anno.
Doc Brown,

In quella riunione di revisione poco prima del rilascio, le persone saranno molto più preparate a lasciarsi sfuggire qualcosa che non sarebbero in condizioni normali - E una volta che è passata la revisione, è dentro. Non lo vuoi davvero - Vai con le proposte che rimandano rivedere fino a dopo il rilascio quando tutti sono tornati nella loro mente giusta. Ci saranno comunque più bug di quello ...
dal

Risposte:


18

La risposta qui è comunicare.

  1. Informare il responsabile tecnico / del team sul problema
  2. Parla con il QA del potenziale impatto
  3. Spiega al project management (che è proprio dietro di te) che potrebbe esserci un problema che causa il ritardo del rilascio e che tornerai con loro al più presto (nel giro di pochi minuti o ore)
  4. Valuta se questo problema è un blocco dello spettacolo per la versione

Se il problema non riguarda lo show show, continua con il rilascio. Informare il QA e i tuoi utenti del problema e impegnarsi a una data di follow-up in cui il problema verrà corretto. Questo diventa solo un altro rischio per la produzione.

Se si tratta di un blocco dello spettacolo (nel senso che avrà un impatto negativo sulla linea di fondo o sulla salute di qualcuno), comunicalo nella catena che la tua raccomandazione è di ritardare il rilascio e spiegarne il motivo. Quindi tornare con lo sviluppatore e capire quanto tempo ci vorrà per risolvere il problema e dire alla direzione che è necessario il numero X di minuti / ore / giorni.

È probabile che il management non sarà contento di un tappo da show così tardi nel gioco, ma non vorrà che venga rilasciato alla produzione.

Comunicare e consentire alla direzione di effettuare la chiamata.


8

Non limitarti a comunicare il problema, documentalo

La mia grande preoccupazione per le altre risposte finora: qualsiasi cosa tu dica in questo senso al tipico project manager che sta per affrontare una scadenza imminente è probabile che venga ignorata o dimenticata. Quindi, puoi ancora finire con l'amo per comunicare insufficientemente il rischio, se qualcosa va storto.

Fai sapere al project manager il problema che hai riscontrato e fagli sapere che lo documenterai . Devi essere in grado di indicare la tua dovuta diligenza.

Dove documentare e chi dire dipende dal tuo ambiente di lavoro, ma includi sicuramente il tuo capo.

Identificare il rischio e l' impatto

Dici che il problema non è critico ma non definisci veramente cosa significhi. Fugare questo è il tuo prossimo passo.

Effettuare una rapida analisi del rischio e dell'impatto identificando il problema, la probabilità che esso causi un problema (rischio) e la gravità delle conseguenze se il rischio si concretizza (impatto). Usa termini ben definiti (che il tuo project manager dovrebbe conoscere) come quelli trovati nel link sopra, ma fornisci anche una descrizione a supporto dell'analisi.

La documentazione dovrebbe includere anche la linea di condotta raccomandata. , è OK sollevare un problema e raccomandare comunque di procedere con il rilascio. È corretto identificare il rischio .

Quando è la tua prossima uscita?

Se, dopo aver completato l'analisi dei rischi / degli impatti, sei ancora alla ricerca di cosa raccomandare, prendi in considerazione il tuo programma di rilascio. È possibile rilasciare un codice imperfetto se si prevede di includere la correzione in due settimane.

Se esiste la possibilità che la risoluzione della tua preoccupazione venga "deprioritizzata" (ovvero trascurata a favore del prossimo miglioramento lucido), questo è un motivo in più per documentare il problema il prima possibile dopo averlo scoperto: se efficacemente "inizia l'orologio "sul problema.


7

In questo caso, basta informare tutti e lasciarli decidere. Probabilmente non è il primo bug che viene rilasciato.

La scadenza è domani, ma ti trovi in ​​questa situazione:

il project manager ti sta alle spalle e ti preme per fare finalmente una build

Questa potrebbe essere un'eccezione, quindi non apportare modifiche drastiche al processo solo perché è passato un bug. Quello che dovresti fare è mettere in atto alcune misure, quindi non stai costruendo build all'ultimo minuto. Spero che tu stia costruendo build con una frequenza abbastanza regolare da darti sicurezza che ci riuscirà. Questo non è ancora un motivo sufficiente per eseguirli all'ultimo minuto. Avere le cose ben testate è un altro pezzo per aumentare la fiducia.

Presenta questo scenario a chiunque stia conducendo questa cosa.

  • Determinare quali tipi di problemi dovrebbero essere presentati.
  • Identifica le opzioni.
  • Chi prende la decisione
  • Quando dovrebbe essere deciso tutto questo? Probabilmente sarà relativo alla data di uscita.

Anche se questo non risponde a cosa fare con questo problema dell'ultimo minuto, offre un modo per assicurarsi di essere in grado di affrontarli in futuro. Soprattutto quando c'è una pressione da rilasciare, vuoi avere un modo di gestire le cose in un modo pensato e non guidato dalle emozioni.


1

Se c'è una scadenza e il tuo manager è proprio dietro di te che ti guarda alle spalle, gli dici di andare via. Se ne va o tu vai via. Spiegagli che essere costretto a rivedere sotto pressione, potresti anche non rivedere il codice.

In una situazione come questa, puoi essere certo che passeranno alcuni bug critici.

Potresti essere in una situazione fortunata, come l'invio all'App Store di Apple, dove hai qualche giorno per ritirare una nuova versione. Ma se il tuo codice viene spedito ai clienti, questa è una ricetta per il disastro. La prossima volta spero che il tuo manager pianifichi meglio.


Posso capire che si potrebbe sottovalutare questa risposta. Tuttavia, sono d'accordo con te sul fatto che si tratta di un problema di pianificazione e la revisione sotto pressione non lo migliorerà
Clijsters

Penso che sia abbastanza chiaro che l'OP non significava letteralmente "guardare oltre la spalla", ha solo esagerato un po 'per chiarire il punto. Quindi IMHO questo anwer manca completamente il punto della domanda.
Doc Brown,

2
@DocBrown, non sono d'accordo con te sul fatto che questa risposta non risponda al punto. Tuttavia, PM che ti guarda letteralmente alle spalle, in agguato lì il giorno della scadenza è la realtà in molti posti.
Tim Grant,

1

Altre risposte si concentrano sul problema del manager che cerca di piegare il processo di qualità.

Tuttavia, ciò che penso che tu stia chiedendo è come affrontare il fatto che la revisione del codice richiede almeno 2 persone e quindi introduce ritardi significativi. Ad esempio, se un'attività richiede 2 ore per l'implementazione e 2 ore per la revisione, spesso c'è una lunga pausa tra le due attività. In tempo reale, il completamento dell'attività potrebbe richiedere 2 o 3 giorni.

Questo è un classico problema di throughput vs latenza. Nelle macchine produttrici di software (esseri umani) i cambi di contesto sono costosi, quindi prevenire il lavoro di qualcuno per fare immediatamente una revisione non dovrebbe essere una pratica comune.

Ecco alcuni suggerimenti per mitigare il problema:

  • Mentre lavori su un'attività, invia il codice in piccole parti, in modo che il revisore non debba riservare lunghi pezzi continui di tempo.
  • Promuovere una cultura di alta priorità per le revisioni del codice. Non interrompere la tua attuale unità di lavoro quando ricevi una richiesta, ma quando ti chiedi cosa fare dopo, scegli sempre una recensione dalla tua coda.
  • Approfitta della differenza di fuso orario nei tuoi team, se ce n'è uno.
  • Non impegnare una sola persona a rivedere solo il codice. È controproducente. Non sarà in grado di gestire il carico, se sarà serio sul suo compito. Il tuo manager non accetterà l'idea che qualcuno sia inattivo, solo per salvare potenzialmente un giorno.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.