Ao analisar suas respostas em vários comentários, não sei se você percebe que o que está experimentando é bastante comum, principalmente quando trabalha em áreas especializadas onde são necessários especialistas em domínio (vamos chamá-los de cientista) para descobrir como incorporar e adaptar algoritmos para problemas em questão.
Em vez de reclamar do cientista e esperar que ele mude, apenas perceba que você não deve esperar que o cientista se importe muito com a "qualidade do código". Freqüentemente é difícil fazer com que outros desenvolvedores de software se preocupem com a "qualidade do código" e muito menos com alguém cujos principais interesses estejam no domínio e não na programação.
Para onde você vai daqui depende em grande parte o grau de confiança que o "cientista" tem em sua capacidade de entender o trabalho deles. Se eles confiam que você pode entender o código deles e não o estragar quando você modifica as coisas, geralmente não há problema. Eles contarão com sua experiência.
No entanto, se o cientista não quiser que você altere o código deles, é muito provável que você ainda não "tenha conquistado" a confiança deles. Se for esse o caso, em vez de se concentrar em consertar o cientista, você deve se concentrar em "consertar" a si mesmo. O que quero dizer com isso é tomar medidas para ganhar sua confiança. Provavelmente, a maneira mais fácil de fazer isso é a seguinte:
Como parte do seu processo de teste:
- Comece a transformar os algoritmos em algo mais fácil de entender (por exemplo, diagramas, PDL, notação matemática)
- Aprenda a entender os algoritmos.
- Certifique-se de identificar os casos extremos.
- Pergunte ao cientista se sua representação "alternativa" simplificada está correta
- E, MAIS IMPORTANTE, identifique os problemas que você encontrou; E, sem soar "acusatório", diga algo como "Eu estava olhando para o algoritmo e notei que XYZ deveria fazer isso ou deveria fazer isso?". Nada ganhará sua confiança melhor do que esta bala.
Quando você começa a encontrar bugs E demonstra interesse na área de interesse, as chances se tornam muito maiores que pelo menos elas permitem que você comece a modificar o código para torná-lo mais "profissional". Freqüentemente, eles nem sentem mais a necessidade de codificar um protótipo. Eles escreverão algo em uma dessas anotações "alternativas" que você ensinou (sem que eles percebam) e terão confiança de que você saberá o que eles significam.
De qualquer maneira, minha primeira tentativa seria oferecer algumas sugestões sobre como o cientista poderia ajudar a "se comunicar" melhor para ajudá-lo; mas parece que você já tentou isso. Portanto, o único passo que você tem controle é o que você faz. Ganhe sua confiança e quase sempre o especialista em domínio ficará aliviado em passar a codificação para outra pessoa e não precisará se preocupar com todos os pequenos detalhes necessários para escrever o código. Eles preferem se concentrar em melhorar os algoritmos.
Às vezes, tudo o que você pode fazer é oferecer uma sugestão e deixar para lá depois. Você não impressionará seu chefe ou um veterano se continuar insistindo em algo que ele já rejeitou ou decidiu que não quer fazer, mesmo se você estiver 100% correto. De fato, isso prejudicará um relacionamento, seja você o sugerente ou o sugerido. Apenas se concentre no que você pode fazer para facilitar seu trabalho.