Entrei para uma equipe que tem uma abordagem diferente para projetar a minha. Eu acredito na abordagem YAGNI ao design. Por exemplo, se um método (interface, classe) não for utilizado, ele deverá ser removido. É isso aí.
As pessoas da minha equipe estão criando um aplicativo modular e um dos módulos é percebido como "estrutura". O aplicativo é o único usuário dessa estrutura, e não há planos no momento para ter mais clientes. No entanto, partes do código nesta estrutura são gravadas e mantidas como se pudessem ser usadas posteriormente , e a consistência e a integridade vencem o YAGNI. Existem abstrações em lugares que talvez nunca precisem de abstrações etc.
Tentei argumentar algumas coisas, mas cada ponto leva muito tempo para persuadir, se é que existe, e tenho medo de que "empurrar" demais resultará na divisão da equipe em lados opostos.
Eu posso "acompanhar o fluxo" e escrever código extra sem problemas pessoais. Agora levarei mais tempo para codificar e, provavelmente, mais tempo para manter, no entanto , cada discussão para não fazer algo extra também leva tempo e aumenta a pressão.
A questão é, no caso de opiniões diferentes, o que fará um desserviço maior, código desnecessário, mas "adequado", ou argumentos constantes e dinâmica de equipe interrompida?