Дивлячись на ваші відповіді в кількох коментарях, я не знаю, чи розумієте ви, що те, що ви переживаєте, є досить поширеним явищем, особливо коли працюєте у спеціальних галузях, де потрібні фахівці з домену (назвемо їх ученим), щоб зрозуміти, як це зробити включити та адаптувати алгоритми для проблем.
Замість того, щоб скаржитися на вченого і очікувати, що вони зміниться, просто зрозумійте, що ви не повинні сподіватися, що вченого буде багато піклуватися про "якість коду". Іншим розробникам програмного забезпечення часто важко піклуватися про "якість коду", а не про когось, чиї основні інтереси полягають у домені, а не в програмуванні.
Куди ви підете звідси, багато в чому залежить ступінь впевненості, яку має "вчений" у вашій здатності розуміти їхню роботу. Якщо вони впевнені, що ви можете зрозуміти їхній код, і ви не зможете його виправити, коли ви змінюєте речі, зазвичай це не проблема. Вони покладаються на вашу експертизу.
Однак якщо вчений не хоче, щоб ви змінювали їх код, то велика ймовірність, що ви ще не "заслужили" їх довіру. Якщо це так, то замість того, щоб зосереджуватись на фіксації вченого, слід зосередитись на «фіксації» себе. Що я маю на увазі під цим, - це зробити кроки до здобуття їхньої впевненості. Напевно, найпростіший спосіб зробити це наступним чином:
У рамках вашого тестового процесу:
- Почніть перетворювати алгоритми на щось легше зрозуміти (наприклад, діаграми, PDL, математичні позначення)
- Навчіться розуміти алгоритми.
- Обов’язково визначте крайові випадки.
- Запитайте вченого, чи правильне ваше «спрощене» подання
- І НАЙБІЛЬШЕ визначте проблеми, які ви виявили; І не звучачи "обвинувально", скажіть щось на кшталт "Я дивився на алгоритм і помітив XYZ, чи це потрібно робити чи це робити?". Ніщо не здобуде їх впевненості краще, ніж ця куля.
Після того, як ви почнете знаходити помилки ТА виявляти інтерес до своєї області інтересів, шанси стають набагато вищими, що принаймні дозволять вам почати змінювати код, щоб зробити його більш "професійним". Часто вони навіть більше не відчують необхідності кодувати прототип. Вони просто напишуть щось в одне з тих "почергових" позначень, яких ви навчили їх (без того, щоб вони навіть усвідомлювали це), і вони будуть впевнені, що ви знатимете, що вони означають.
У першу чергу, моя перша спроба полягала б у тому, щоб запропонувати кілька пропозицій щодо того, як учений міг би найкращим чином допомогти «спілкуватися», щоб допомогти вам; але це здається, що ви це пробували. Тож єдиним кроком, над яким ви маєте контроль, є те, що ви робите. Заробляйте їхню впевненість, і майже завжди експерт з домену буде полегшений передавати кодування комусь іншому, і не доведеться турбуватися про всі дрібні деталі, що входять до написання коду. Вони швидше зосереджуватимуться на вдосконаленні алгоритмів.
Іноді, все, що ти можеш зробити, - це запропонувати пропозицію і залишити її після цього. Ви не будете справляти враження на свого начальника чи старшого, якщо ви продовжуватимете робити щось, що вони вже відхилили або вирішили, що не хочуть робити, навіть якщо ви на 100% правильні. Насправді це може зашкодити відносинам, будь то висувачка чи пропозиція. Просто зосередьтеся на тому, що ВИ можете зробити, щоб полегшити роботу.