Al mirar sus respuestas en varios de los comentarios, no sé si se da cuenta de que lo que está experimentando es bastante común, especialmente cuando trabaja en campos especializados donde se necesitan expertos en dominios (llamémoslos científicos) para descubrir cómo incorporar y adaptar algoritmos para los problemas en cuestión.
En lugar de quejarse del científico y esperar que cambien, solo tenga en cuenta que no debe esperar que al científico le importe mucho la "calidad del código". Con frecuencia es difícil lograr que otros desarrolladores de software se preocupen por la "calidad del código" y mucho menos por alguien cuyos intereses principales se encuentran en el dominio y no en la programación.
Adónde va desde aquí depende en gran medida del grado de confianza que el "científico" tenga en su capacidad para comprender su trabajo. Si tienen confianza en que puedes entender su código y no lo arruinarán cuando modifiques las cosas, entonces generalmente no hay problema. Confiarán en su experiencia.
Sin embargo, si el científico no quiere que cambie su código, es muy probable que aún no se haya "ganado" su confianza. Si ese es el caso, en lugar de enfocarse en arreglar al científico, debe enfocarse en "arreglarlo" usted mismo. Lo que quiero decir con eso es tomar medidas para ganar su confianza. Probablemente la forma más fácil de hacer esto es la siguiente:
Como parte de su proceso de prueba:
- Comience a convertir los algoritmos en algo más fácil de entender (por ejemplo, diagramas, PDL, notación matemática)
- Aprende a entender los algoritmos.
- Asegúrese de identificar los casos extremos.
- Pregúntele al científico si su representación "alternativa" simplificada es correcta
- Y MÁS IMPORTANTE, identifique los problemas que encontró; Y sin sonar "acusatorio" decir algo como "Estaba mirando el algoritmo y noté que XYZ se supone que debe hacer esto o se supone que debe hacer eso". Nada ganará su confianza mejor que esta bala.
Una vez que comience a encontrar errores Y haya demostrado interés en su área de interés, las probabilidades serán mucho más altas que, al menos, le permitirán comenzar a modificar el código para hacerlo más "profesional". Con frecuencia, ni siquiera sentirán la necesidad de codificar un prototipo por más tiempo. Simplemente escribirán algo en una de esas anotaciones "alternativas" que les ha enseñado (sin que ellos se den cuenta) y tendrán la confianza de que sabrá lo que significan.
Por supuesto, mi primer intento sería ofrecer algunas sugerencias sobre cómo el científico podría ayudar mejor a "comunicarse" mejor para ayudarlo; Pero parece que lo has intentado. Entonces, el único paso sobre el que tienes control es lo que haces. Gana su confianza y casi siempre el experto en dominios se sentirá aliviado de pasar la codificación a otra persona y no tener que preocuparse por todos los pequeños detalles que se incluyen en la escritura del código. Prefieren centrarse en mejorar los algoritmos.
A veces, todo lo que puede hacer es ofrecer una sugerencia y dejarla después de eso. No impresionará a su jefe ni a un superior si sigue insistiendo en algo que ya rechazó o decidió que no quiere hacer, incluso si es 100% correcto. De hecho, esto dañará una relación, ya sea que usted sea el sugestor o el sugerido. Solo concéntrese en lo que USTED puede hacer para facilitar su trabajo.