Guardando le tue risposte in molti dei commenti non so se ti rendi conto che ciò che stai vivendo è abbastanza comune, in particolare quando lavori in campi speciali dove ci vogliono esperti del dominio (chiamiamoli lo scienziato) per capire fuori come incorporare e adattare algoritmi per problemi a portata di mano.
Piuttosto che lamentarsi dello scienziato e aspettarsi che cambino, basta rendersi conto che non ci si dovrebbe aspettare che lo scienziato si preoccupi molto della "qualità del codice". Spesso è difficile convincere altri sviluppatori di software a preoccuparsi della "qualità del codice", figuriamoci di qualcuno i cui interessi principali si trovano nel dominio e non nella programmazione.
Dove vai da qui dipende in gran parte dal grado di fiducia che lo "scienziato" ha nella tua capacità di comprendere il loro lavoro. Se hanno fiducia nel fatto che tu possa capire il loro codice e non lo maccano quando modifichi le cose, di solito non c'è un problema. Faranno affidamento sulla tua esperienza.
Tuttavia, se lo scienziato non vuole che tu cambi il loro codice, è altamente probabile che tu non abbia ancora "guadagnato" la loro fiducia. Se questo è il caso, allora piuttosto che concentrarti sulla riparazione dello scienziato, dovresti concentrarti sul "riparare" te stesso. Ciò che intendo è di prendere provvedimenti per ottenere la loro fiducia. Probabilmente il modo più semplice per farlo è il seguente:
Come parte del tuo processo di test:
- Inizia a trasformare gli algoritmi in qualcosa di più semplice da capire (ad esempio diagrammi, PDL, notazione matematica)
- Impara a comprendere gli algoritmi.
- Assicurati di identificare i casi limite.
- Chiedi allo scienziato se la tua rappresentazione "alternativa" semplificata è corretta
- E PIÙ IMPORTANTI identifica i problemi che hai trovato; E senza sembrare "accusatorio" dire qualcosa come "Stavo osservando l'algoritmo e ho notato che XYZ doveva fare questo o è supposto farlo?". Nulla guadagnerà la loro sicurezza meglio di questo proiettile.
Quando inizi a trovare bug e hai dimostrato interesse per la loro area di interesse, le probabilità diventano molto più alte che almeno ti permetteranno di iniziare a modificare il codice per renderlo più "professionale". Spesso, non sentono nemmeno la necessità di codificare un prototipo più a lungo. Scriveranno semplicemente qualcosa in una di quelle "alternate" notazioni che hai insegnato loro (senza che loro se ne rendano conto) e avranno fiducia che capirai cosa significano.
Con ogni mezzo, il mio primo tentativo sarebbe di offrire alcuni suggerimenti su come lo scienziato potrebbe meglio aiutare a "comunicare" meglio per aiutarti; ma sembra che tu ci abbia provato. Quindi l'unico passo su cui hai il controllo è quello che fai. Guadagna la loro fiducia e quasi sempre l'esperto di dominio sarà sollevato per passare la codifica a qualcun altro e non dovrà preoccuparsi di tutti i piccoli dettagli che riguardano la scrittura del codice. Preferirebbero piuttosto concentrarsi sul miglioramento degli algoritmi.
A volte, tutto ciò che puoi fare è offrire un suggerimento e lasciarlo dopo. Non impressionerai il tuo capo o un anziano se continui a insistere su qualcosa che hanno già rifiutato o hai deciso che non vogliono farlo, anche se sei corretto al 100%. In realtà, ciò danneggerà una relazione, sia che tu sia il suggeritore o il suggerente. Concentrati solo su ciò che puoi fare per semplificare il tuo lavoro.