Hace unos tres meses me asignaron a un proyecto que hasta ese momento estaba en desarrollo por un único desarrollador recién contratado porque se estaba quedando atrás. Para ser justos, el proyecto es una interfaz para un dispositivo médico que tiene muchas sutilezas y es relativamente complejo, por lo que colocar a una persona en el proyecto que no tenía experiencia en la empresa probablemente fue una mala decisión desde una perspectiva gerencial.
De todos modos, una vez que comencé a trabajar en ello, me di cuenta de que ... bueno, simplemente no funcionó en absoluto. La interfaz de usuario se veía bien, pero en realidad no hizo mucho de nada, y lo que hizo fue hacer incorrectamente. Nuevamente, para ser justos, gran parte de esto se debió al hecho de que este desarrollador no estaba preparado adecuadamente para escribir una interfaz en nuestro dispositivo. Sin embargo, también me di cuenta rápidamente de que el código que estaba en su lugar era frágil y extremadamente difícil de mantener.
Ahora no pretendo ser el mejor programador del mundo. Trabajo con muchas personas muy inteligentes que son mejores desarrolladores que yo. Sin embargo, me esfuerzo mucho para escribir código que sea lo más simple y robusto posible. Pruebo mis registros. Si veo que mi código se está volviendo desordenado y difícil de trabajar desde el principio, lo cambio. He tenido algunas conversaciones con mi compañero de trabajo en un intento de ayudarlo a escribir un mejor código. Esto es un poco complicado porque a) tiene más de 20 años de experiencia en el campo y yo solo tengo 5, yb) fue contratado como un llamado "experto en UX" y otros lo ven como un individuo experimentado.
Dicho eso, simplemente no lo veo. Es un tipo muy agradable y es razonable, sin embargo, una y otra vez revisa un código que es frágil, funciona solo en los casos más optimistas y 9 de cada 10 veces termino arreglando errores en su trabajo. Su código solo parece aficionado y obviamente no tiene el nivel de experiencia que afirmó tener cuando fue contratado. Ha llegado el momento en que las horas extra que paso refactorizando su código y reparando sus errores me han afectado. A mi modo de ver, tengo dos opciones:
- No haga nada, rompa mi trasero para asegurarse de que este producto salga a tiempo y sea robusto y espere a que falle en el futuro (no trabajaré con él en este proyecto después del lanzamiento inicial).
- Cuéntale a mi jefe sobre su actuación. Mi jefe es un hombre razonable, pero me siento incómodo con este enfoque. No me gusta 'golpear' (por falta de un término mejor) a mis compañeros de trabajo y no sé cómo lo tomará.
Entonces, eso es todo. He intentado resolver esto con mi compañero de trabajo explicando por qué su implementación no funcionará o cómo se podría hacer que su código sea más fácil de mantener, pero continúa cometiendo los mismos errores. Estoy muy interesado en escuchar cómo otros han manejado situaciones similares, especialmente las personas en la gerencia actualmente. Gracias de antemano por cualquier consejo que me puedan ofrecer.