Mi sono unito a un team che ha un approccio diverso al design dal mio. Credo nell'approccio alla progettazione di YAGNI. Ad esempio, se un metodo (interfaccia, classe) non è utilizzato, deve essere rimosso. Questo è tutto.
Le persone del mio team stanno costruendo un'app modulare e uno dei moduli è percepito come "framework". L'app è l'unico utente di questo framework e al momento non ci sono piani per avere più client. Tuttavia, parti del codice in questo framework sono scritte e mantenute come se potessero essere usate successivamente , e coerenza e completezza vince su YAGNI. Ci sono astrazioni in luoghi che potrebbero non aver mai bisogno di astrazioni, ecc.
Ho provato a discutere un po 'di cose, ma ogni punto richiede molto tempo per persuadere, se non del tutto, e temo che troppe "spinte" si traducano in una squadra che si divide in parti opposte.
Posso "andare con il flusso" e scrivere codice extra senza problemi personali. Mi ci vorrà più tempo per codificare, e molto probabilmente, più tempo dopo per mantenere, tuttavia , ogni discussione per non fare qualcosa in più richiede tempo e aggiunge pressione.
La domanda è, nel caso di opinioni diverse, che cosa farà un disservizio più grande, codice non necessario, "corretto", o argomenti costanti e dinamiche di squadra rotte?