L'altro giorno ho esaminato il codice che qualcuno del mio team ha scritto. La soluzione non era completamente funzionale e il design era troppo complicato, ovvero informazioni memorizzate non necessarie, funzioni non necessarie e, in pratica, il codice aveva una complessità non necessaria 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 avuto voglia di farlo in quel modo.
Quindi chiedo se alcune di queste funzionalità facevano parte delle specifiche del progetto, o se hanno qualche utilità per l'utente finale, o se uno qualsiasi dei dati aggiuntivi verrebbe presentato all'utente finale.
La risposta è no.
Quindi suggerisco di eliminare tutta la complessità non necessaria. La risposta che ottengo di solito è "beh, è già fatta".
Il mio punto di vista è che non è fatto, è bug, non fa quello che vogliono gli utenti, e il costo di manutenzione sarà più alto di quello che avrebbe se fosse fatto nel modo più semplice che ho suggerito.
Uno scenario equivalente è:
Il collega dedica 8 ore al codice di refactoring a mano che potrebbe essere stato fatto automaticamente in Resharper in 10 secondi. Naturalmente non mi fido del refactoring a mano dato che è di dubbia qualità e non completamente testato.
Ancora una volta la risposta che ricevo è "beh, è già fatta."
Qual è una risposta appropriata a questo atteggiamento?