Prima consentimi di coniare un termine:
code goal-tending: Checking out code in the morning, then silently reviewing all of the changes made by the other developers the previous day file by file, (especially code files you originally developed), and fixing formatting, logic, renaming variables, refactoring long methods, etc., and then committing the changes to the VCS.
Questa pratica tende ad avere alcuni pro e contro che ho identificato:
- Pro : la qualità / leggibilità / coerenza del codice viene spesso mantenuta
- Pro : alcuni bug sono stati corretti a causa della mancanza di familiarità con il codice originale da parte di un altro sviluppatore.
- Con : spesso è uno spreco di tempo per lo sviluppatore che tende all'obiettivo.
- Con : Occasionalmente introduce bug che causano rabbia ai capelli da parte degli sviluppatori che pensavano di aver scritto un codice privo di errori il giorno precedente.
- Con : altri sviluppatori vengono aggravati dall'eccesso di nitpicking e iniziano a non gradire il contributo al codice dell'obiettivo-gara.
Dichiarazione di non responsabilità: per essere onesti, in realtà non sono un responsabile dello sviluppo, sono lo sviluppatore che sta effettivamente facendo "l'ottimizzazione degli obiettivi".
In mia difesa, penso Lo sto facendo per una buona ragione (per mantenere la nostra base di codice estremamente ampia una macchina ben oliata), ma sono molto preoccupato che stia creando anche un negativo atmosfera. Sono anche seriamente preoccupato che il mio manager dovrà affrontare il problema.
Quindi, se tu fossi il gestore, come affronteresti questo problema?
AGGIORNAMENTO: non intendo per questo essere troppo localizzato, ma alcuni hanno chiesto, quindi forse qualche sfondo sarà illuminante. Mi è stato assegnato un progetto gigante (200K LoC) tre anni fa, e solo recentemente (1 anno fa) altri sviluppatori sono stati aggiunti al progetto, alcuni dei quali non hanno familiarità con l'architettura, altri che stanno ancora imparando la lingua (C #). Generalmente devo rispondere della stabilità complessiva del prodotto, e sono particolarmente nervoso quando i cambiamenti sono sorprendentemente apportati alle parti architettoniche principali del codice base. Questa abitudine è nata perché inizialmente ero ottimista sui contributi di altri sviluppatori, ma hanno commesso troppi errori che hanno causato seri problemi che non sarebbero stati scoperti fino a qualche settimana più tardi, dove il dito sarebbe stato puntato su di me per scrivere codice instabile. Spesso queste "sorprese" sono commesse da un manager entusiasta o da un collega che è ancora in fase di apprendimento. E probabilmente questo probabilmente porterà alla risposta: non abbiamo nessuna politica di revisione del codice in atto,