È opportuno avere commenti positivi nelle revisioni del codice o è esclusivamente per critiche costruttive?


36

Ultimamente ho fatto molte revisioni del codice e non sono sicuro degli effetti positivi e negativi e della professionalità di inserire commenti positivi e / o divertenti nelle recensioni di codici.

Utilizziamo Github come piattaforma di revisione del codice nel mio team, quindi i commenti sono visualizzabili da chiunque. In genere cerco di utilizzare questa piattaforma in modo che l'intero processo dall'inizio alla fine sia visibile e storico.


Sì, mi rendo conto che ciò ha in gran parte a che fare con la cultura, ma sto cercando una risposta generale.
Codeman,

22
È importante rafforzare ciò che si desidera vedere con commenti positivi.

2
Non so se sia appropriato, ma a volte inserisco codici haikus nelle recensioni: programmatore junior - il tuo codice non commentato è - come schegge di dolore.
yannis,

In realtà sono il programmatore junior che sta esaminando il codice dell'anziano - abbiamo un processo piuttosto rigoroso qui, tutto il codice deve essere rivisto :)
Codeman,

Risposte:


53

È importante evidenziare sia gli aspetti positivi che quelli negativi. So che se stavo rivedendo il refattore di un particolare sottosistema infernale in qualcosa di pulito e ordinato, probabilmente comprerei al programmatore una pizza per i suoi sforzi.

Se stai usando le recensioni come formazione, è doppiamente importante: evidenziare un buon pezzo di codice sarà utile per i programmatori junior che rivedranno anche quel codice. Avranno la possibilità di porre domande sul perché un approccio o una tecnica particolare sia migliore di un altro.


Puoi aggiungere una nota sul "perché è importante"? Contrassegno come accettato quando lo fai :)
Codeman,

3
Fa sapere alle persone che ciò che stanno facendo (scrivendo un buon codice) è apprezzato e mantiene l'attenzione sulla crescita, che è ciò su cui si basano le recensioni dei codici.
Jonathan Rich,

1
Puoi aggiungere questo alla tua risposta?
Codeman,

2
+1 ti meriti il ​​bel badge di risposta per questo. Il numero di posti che non danno abbastanza valore alle critiche costruttive mi sorprende sempre. Dire alle persone che stanno facendo un buon lavoro quando stanno facendo un buon lavoro può essere un motivatore sorprendentemente efficace.
Benjamin Gruenbaum,

@Benjamin: troppe organizzazioni trattano la revisione del codice come un processo di timbratura "trova i difetti nel codice di ogni altro" e non come un "lascia costruire un team ad alte prestazioni". Nella mia esperienza, le revisioni del codice sono il modo migliore e più veloce per abbattere le barriere che impediscono alle squadre di software di esibirsi davvero. Abbiamo uno standard di notazione in cui prefissiamo i commenti con -2 (deve essere corretto) sebbene a +2 (ottimo lavoro).
mattnz,

8

Divertente: salvalo per il dispositivo di raffreddamento dell'acqua, tranne in dosi minime - avere una faccia di prugna non è un requisito per rivedere il codice.

Positivo: sicuramente. La recensione include sia positivi che negativi / costruttivi, per definizione.

Il feedback positivo aiuta tutti:

Per chi riceve i pollici in su, rafforzi la loro fiducia e li ispiri a fare di più con il tuo feedback positivo.

Per il resto, come altri hanno già detto, impareranno cosa fare e cosa non fare . Saranno anche incoraggiati a eccellere, così anche un giorno potranno essere al centro dell'attenzione.

Una volta ho lavorato per un capo che era stato liberale nel suo feedback positivo - di conseguenza il team ha avuto molto successo e produttività. Andò avanti e altri presero il posto che non aveva la sua capacità di elogiare un lavoro ben fatto. Produttività e morale hanno preso il sopravvento e molti dei migliori membri del team hanno lasciato l'azienda.


3

Direi che mantenere i commenti puliti e pertinenti, proprio per la cultura.

Non puoi evitare che alcune persone prendano le cose nel modo sbagliato.
Al fine di mitigarlo, un colloquio personale risolverà le cose, se non è possibile faccia a faccia, chat o e-mail o skype.


1
Buon punto. Essere "divertenti" nel commentare può facilmente ritorcersi contro, specialmente in ambienti multilingue e multiculturali.
David Navarre,

2

Il commento in una revisione del codice sta gestendo

Tratta i commenti come uno strumento di gestione

L'inserimento di commenti in una revisione del codice è una forma di gestione. Come tale, dovrebbe essere affrontato come uno strumento di gestione.

Usa le pratiche manageriali per commentare

Esiste una struttura per la gestione delle persone in cui l'obiettivo è raggiungere il risultato desiderato. Alcuni dei principali approcci alla gestione non si applicheranno nei commenti, ma la maggior parte lo farà. Gli argomenti applicabili includono ambiente, leadership, organizzazione e controllo.

Ambiente

Cultura

L'ambiente determina lo stile di gestione. La cultura e l'ambiente del luogo di lavoro dovrebbero essere tenuti presenti quando si utilizzano strumenti di gestione. Di solito questo è influenzato dal settore e dalle dimensioni dell'azienda o entità gestita.

Stile

Se esiste una cultura spensierata, ciò può manifestarsi nello stile di gestione utilizzato. Se ci sono linee guida, politiche e conseguenze molto rigide, ciò dovrebbe riflettersi nello stile utilizzato. Quindi, se tutti sono a bordo per una battuta di guerre stellari che fa riferimento a droidi e uno stormtrooper di mentalità debole, allora potrebbe essere applicabile un'interiezione comica. Tuttavia, se ci sono conseguenze disastrose nel non prendere sul serio il risultato finale, potrebbe essere necessario evitarlo.

Comando

fondamenti

Ci sono tre pilastri principali della leadership da considerare quando si commenta. Vale a dire che sono visione, comunicazione e giudizio.

Vision

È importante quando tenere a mente la grande visione quando si spiega o si danno istruzioni. Nei commenti, ciò potrebbe significare sottolineare come piccoli cambiamenti influenzano il progetto nel suo insieme, quali sono le implicazioni di adottare approcci diversi o un suggerimento per la separazione delle preoccupazioni.

Communication

Essere un buon comunicatore è importante in molti aspetti della vita. Non è diverso nei commenti. Impiegare un saggio livello di brevità è importante, soprattutto perché i commenti non dovrebbero occupare molto spazio. Arrivare al punto in anticipo, quindi eseguirne il backup con un esempio, se necessario. In un'organizzazione più grande, ciò può includere anche la necessità di inviare un comunicato o un promemoria se il problema non è localizzato in una sessione di revisione.

Judgement

È importante che la strategia venga utilizzata per valutare se è necessario formulare commenti e quali modifiche devono essere apportate. Il tuo giudizio non deve sempre essere corretto, ma deve essere costantemente corretto, specialmente quando vengono fatte grandi richieste di giudizio.

organizzazione

Da un punto di vista gestionale, l'organizzazione farà riferimento a tenere presente l'obiettivo finale e garantire che i processi siano allineati per seguire un insieme di regole. I commenti dovrebbero anche tenere presente ciò in quanto i commenti dovrebbero, quando possibile, basarsi l'uno sull'altro per assicurarsi che il flusso del design sia seguito. Sarà inoltre importante tenere presente l'ambito del codice in esame al fine di ridurre l'accoppiamento e seguire il progetto generale.

Controllo

Il controllo delle azioni di coloro che sono gestiti è un processo delicato. Pur essendo fermi, va anche tenuto presente che le persone sono importanti. Esistono diverse abilità manageriali da utilizzare mentre si controllano gli altri. Queste abilità sono politiche, concettuali, interpersonali, diagnostiche e tecniche.

Politico

La politica può essere trovata ogni volta che c'è interazione tra le persone. È un argomento enorme, ma in senso generale la politica ruota attorno all'influenza. È importante tenere presente la politica personale e professionale al lavoro quando si fa un commento. Ciò potrebbe essere correlato a un'istruzione, a uno scherzo o persino a una domanda.

Concettuale

La gestione attraverso la concettualizzazione è uno strumento importante. Richiede un'analisi complessa della situazione attuale. Nel commentare può essere utile includere alcune delle analisi utilizzate per giungere alla conclusione o alla modifica indicate nella recensione.

interpersonale

Le abilità interpersonali sono molto importanti nella gestione. Anche questo è un argomento di grandi dimensioni. Alcune delle cose importanti da considerare con le capacità interpersonali sono il tutoraggio, le critiche costruttive e la "arpionatura".

Mentoring

È importante che il management sia visto più come un mentore che come un antagonista. In una revisione del codice, ciò significa che a volte sarà utile includere un cenno a un modello o approccio di progettazione che potrebbe essere utilizzato per migliorare una situazione.

Constructive Criticism

La critica è importante perché invoca la riflessione. Tuttavia, le critiche dovrebbero essere mantenute il più positive possibile quando possibile. Ciò significa offrire prove valide a sostegno delle critiche e anche garantire che il tono usato non sia negativo. Quando si rivede il codice, ciò potrebbe includere la visualizzazione di un'eccezione o uno scenario possibile che genererebbe un errore, implicando una soluzione invece di mostrare ogni luogo che era errato quando l'intero pezzo di codice avrebbe dovuto essere comunque sostituito.

"Harpooning"

"Arpionamento" è quando arpionicamente figurato qualcuno a terra. Questo viene fatto abbattendoli passo dopo passo senza alcun recupero fino al punto in cui si sentono incapaci di alzarsi. Se arponi una persona in una revisione del codice o altrove perderai la loro collaborazione. È importante evitare di abbattere eccessivamente qualcuno.


Sintesi

Tratta i commenti in una revisione del codice come uno strumento gestionale. Tieni presente che i commenti dovrebbero essere brevi, pertinenti e costruttivi. Assicurarsi inoltre che durante il commento la persona sottoposta a revisione sia presa in considerazione.


La revisione del codice non dovrebbe essere gestionale. L'altro nome è "recensione PEER" per una buona ragione. L'altro problema che ho con la risposta è che dovrebbe essere il codice in esame, non la persona. Se la revisione del codice viene considerata come una revisione della persona, è (o presto diventerà) uno strumento di gestione per "picchiare le persone". Guardalo diventare un input nei KPI e guarda i giochi dei Peer: "Quel codice potrebbe essere migliore, lo lascerò scorrere se prometti di andare piano con il mio prossimo drop di codice"
mattnz

@mattnz: i peer si gestiscono reciprocamente frequentemente. Inoltre, non tutte le organizzazioni operano secondo una gerarchia strettamente dall'alto verso il basso, nel qual caso i peer sono un fattore chiave di gestione. Tuttavia, metto in discussione la tua affermazione secondo cui una revisione del codice non riguarda l'individuo. Correggere le cattive abitudini di codifica richiede una guida reale e rilasciare tale guida in modo grazioso e rispettoso è molto importante per il suo successo.
Travis J,

@mattnz - Inoltre, non ho mai implicato che una volta la revisione del codice sia una revisione della persona. Ho notato che hai supportato la risposta accettata qui, che sono anche d'accordo. Tuttavia, la cosa strana è che la risposta si concentra esplicitamente sull'individuo, acquistando loro la pizza e offrendo loro personalmente elogi. Non ho alcun problema, ma come puoi dire che non gioca anche a essere una "recensione della persona". Ad essere onesti, sembra più che tu abbia letto solo la prima e l'ultima frase di questa risposta.
Travis J,

0

Le revisioni del codice sono uno strumento per migliorare la qualità del codice, in parte scoprendo i difetti. Ancora più importante, si desidera instillare buone pratiche di codifica.

Da questo punto di vista, è importante commentare le cose fatte bene. In un contesto di formazione, anche i miglioramenti dovrebbero essere commentati. Se la tua cultura è in costante miglioramento, allora dovresti sempre commentare i miglioramenti.

Accadranno errori, bug e codici errati. Segnalali in modo non personale e trattali come previsto.

Dal punto di vista della modifica comportamentale, la ricompensa è molto più efficace nel produrre cambiamenti che nella punizione. Vorrei prendere in considerazione la possibilità di notare un buon lavoro come ricompensa.

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.