L'altro giorno ho esaminato il codice scritto da qualcuno nel mio team. La soluzione non era completamente funzionale e il design era molto complicato, il che significava immagazzinare informazioni non necessarie, creare funzionalità non necessarie e fondamentalmente il codice presentava molte complessità non necessarie come la doratura e ha cercato di risolvere problemi che non esistono.
In questa situazione chiedo "perché è stato fatto in questo modo?"
La risposta è che l'altra persona ha voglia di farlo in quel modo.
Quindi chiedo se una qualsiasi di queste funzionalità faceva parte delle specifiche del progetto, o se hanno qualche utilità per l'utente finale o se uno qualsiasi dei dati extra fosse presentato all'utente finale.
La risposta è no.
Quindi suggerisco di eliminare tutta la complessità non necessaria. La risposta che di solito ricevo è "beh, è già fatto".
La mia opinione è che non è fatto, è difettoso, non fa ciò che gli utenti vogliono e i costi di manutenzione saranno più alti che se fossero fatti nel modo più semplice che ho suggerito.
Uno scenario equivalente è: il
collega spende manualmente 8 ore di codice di refactoring che avrebbe potuto essere eseguito automaticamente in Resharper in 10 secondi. Naturalmente non mi fido del refactoring a mano poiché è di dubbia qualità e non completamente testato.
Ancora una volta la risposta che ottengo è "beh, è già stata fatta".
Qual è la risposta appropriata a questo atteggiamento?