Me uní a un equipo que tiene un enfoque de diseño diferente al mío. Creo en el enfoque de diseño de YAGNI. Por ejemplo, si un método (interfaz, clase) no se utiliza, debe eliminarse. Eso es.
La gente de mi equipo está creando una aplicación modular, y uno de los módulos se percibe como "marco". La aplicación es el único usuario de este marco, y en este momento no hay planes para que tenga más clientes. Sin embargo, algunas partes del código en este marco se escriben y se mantienen como si pudieran usarse más tarde , y la coherencia y la integridad prevalecen sobre YAGNI. Hay abstracciones en lugares que tal vez nunca necesiten abstracciones, etc.
Traté de discutir algunas cosas, pero cada punto lleva mucho tiempo persuadir, si es que lo hace, y me temo que demasiado "empuje" resultará en que el equipo se separe en lados opuestos.
Puedo "seguir la corriente" y escribir código extra sin ningún problema personal. Ahora me llevará más tiempo codificar y, lo más probable, más tiempo para mantener, sin embargo , cada discusión para no hacer algo extra también lleva tiempo y agrega presión.
La pregunta es, en el caso de diferentes opiniones, ¿qué hará un mal servicio más grande, un código innecesario pero "adecuado", o argumentos constantes y dinámicas de equipo rotas?