Sto lavorando in una piccola azienda: quattro sviluppatori, che lavorano su una varietà di progetti. Abbiamo esaminato cosa possiamo fare come metodi efficaci per il miglioramento dei processi e ne è venuta un'idea.Utilizzo di monitoraggi commit come modulo di revisione del codice
Dato ciò che facciamo, spesso abbiamo sviluppatori singoli che lavorano su parti di un sistema, indipendentemente dagli altri sviluppatori. Questo può avere un certo numero di effetti negativi:
- Uno sviluppatore potrebbe non essere pienamente consapevole del contesto in cui è stato attuato un cambiamento, e fare il cambiamento in modo tale da soddisfare le esigenze del cliente in corso, ma la volontà rompere le funzionalità che dipendono da altri clienti.
- Uno sviluppatore potrebbe apportare una modifica che interrompe la progettazione architettonica attuale, introducendo una dipendenza che causerà problemi nello sviluppo futuro.
- Altri sviluppatori potrebbero non essere a conoscenza di come il sistema è stato modificato, in aree su cui non hanno lavorato.
Abbiamo parlato di fare le revisioni del codice, come un modo di trattare questi temi. Ma non abbiamo avuto molto successo quando ci abbiamo provato. Ci vuole un sacco di tempo per preparare una modifica per una revisione del codice, e ci vogliono tutti fuori produzione mentre la revisione viene eseguita. E i benefici di qualsiasi recensione che abbiamo provato sono stati minimi.
Stiamo utilizzando Subversion (con TortioseSVN) come VCS. Ho esaminato lo strumento CommitMonitor di SubVersion e mi sono chiesto se potesse funzionare come una sorta di revisione del codice di un uomo povero. Elenca ogni commit effettuato sul repository, consentendo a qualcuno di vedere le modifiche che sono state apportate, i messaggi di log creati per quella modifica, i file che sono stati inclusi nella modifica e le linee specifiche in ogni file che sono stati modificati.
Piuttosto che pianificare una riunione, cercando di riunire tutti per esaminare ogni cambiamento, potremmo semplicemente fare in modo che ogni sviluppatore riveda i commit di ogni altro sviluppatore, in qualunque momento fosse conveniente. Ciò manterrebbe tutti gli sviluppatori al passo con le modifiche apportate altrove nel sistema e sottoporrà a revisione ogni cambiamento per i conflitti dei clienti e l'uniformità del progetto, a un costo relativamente basso.
Se qualcuno ha riscontrato un problema con il codice che è stato archiviato, potrebbe discuterlo con lo sviluppatore che ha eseguito il commit o, più probabilmente, pianificare una riunione per discutere come la nuova funzionalità potrebbe essere implementata in un modo che non avrebbe alcun impatto sugli altri utenti o rovinare l'architettura.
Chiunque altro fa qualcosa del genere, utilizza monitor di commit per tale scopo?
Un'ora per ogni modifica è troppo costosa, se facciamo 20 cambi a settimana. –
Totalmente d'accordo. Non sto dicendo un'ora per cambio. Quello che sto dicendo è che nessun revisore dovrebbe dedicare più di un'ora a una revisione: l'attenzione è persa. – Timothy