El otro día revisé el código que alguien de mi equipo escribió. La solución no era completamente funcional y el diseño era demasiado complicado, es decir, almacenaba información innecesaria, creaba características innecesarias y, básicamente, el código tenía mucha complejidad innecesaria, como el chapado en oro, y trataba de resolver problemas que no existían.
En esta situación, pregunto "¿por qué se hizo de esta manera?"
La respuesta es que la otra persona tenía ganas de hacerlo de esa manera.
Luego pregunto si alguna de estas características era parte de la especificación del proyecto, o si tienen alguna utilidad para el usuario final, o si alguno de los datos adicionales se presentaría al usuario final.
La respuesta es no.
Entonces le sugiero que elimine toda la complejidad innecesaria. La respuesta que generalmente obtengo es "bueno, ya está hecho".
Mi opinión es que no está hecho, tiene errores, no hace lo que los usuarios quieren y el costo de mantenimiento será más alto que si se hiciera de la manera más simple que sugerí.
Un escenario equivalente es: el
colega pasa 8 horas refactorizando el código a mano, lo que podría haberse hecho automáticamente en Resharper en 10 segundos. Naturalmente, no confío en la refactorización a mano, ya que es de dudosa calidad y no está completamente probada.
Nuevamente, la respuesta que obtengo es "bueno, ya está hecho".
¿Cuál es una respuesta apropiada a esta actitud?