Eu tenho uma sólida formação em OO e recentemente comecei a trabalhar em uma organização que, embora o código seja escrito em Java, tem muito menos ênfase no bom design de OO do que estou acostumado. Foi-me dito que eu introduzo "muita abstração" e, em vez disso, deveria codificar da maneira que sempre foi feita, que é um estilo de procedimento em Java.
O TDD também não é muito praticado aqui, mas quero ter um código testável. Enterrar a lógica de negócios em métodos privados estáticos em grandes "classes de Deus" (que parece ser a norma para essa equipe) não é muito testável.
Eu luto para comunicar claramente minha motivação aos meus colegas de trabalho. Alguém tem algum conselho sobre como convencer meus colegas de trabalho de que o uso de OO e TDD leva a códigos de manutenção mais fácil?
Esta pergunta sobre dívida técnica está relacionada à minha pergunta. No entanto, estou tentando evitar a dívida em primeiro lugar, em vez de pagá-la após o fato, que é o que a outra questão aborda.