Рассматривая ваши ответы в нескольких комментариях, я не знаю, понимаете ли вы, что то, что вы испытываете, встречается довольно часто, особенно когда вы работаете в специализированных областях, где требуются эксперты по предметной области (давайте назовем их ученым), чтобы выяснить, как включить и адаптировать алгоритмы для решения проблем.
Вместо того, чтобы жаловаться на ученого и ожидать, что он изменится, просто осознайте, что ученому не следует сильно заботиться о «качестве кода». Часто бывает трудно заставить других разработчиков программного обеспечения заботиться о «качестве кода», не говоря уже о ком-то, чьи основные интересы лежат в области, а не в программировании.
Откуда вы идете отсюда, во многом зависит от степени уверенности «ученого» в вашей способности понять их работу. Если они уверены, что вы можете понять их код и не испортите его, когда вы что-то измените, то обычно это не проблема. Они будут полагаться на ваш опыт.
Однако, если ученый не хочет, чтобы вы меняли их код, тогда весьма вероятно, что вы еще не «заслужили» их доверие. Если это так, то вместо того, чтобы сосредоточиться на исправлении ученого, вы должны сосредоточиться на «исправлении» себя. Под этим я подразумеваю шаги по завоеванию их доверия. Вероятно, самый простой способ сделать это заключается в следующем:
Как часть вашего процесса тестирования:
- Начните превращать алгоритмы во что-то более простое для понимания (например, диаграммы, PDL, математические обозначения)
- Научитесь понимать алгоритмы.
- Обязательно определите крайние случаи.
- Спросите ученого, правильно ли ваше упрощенное «альтернативное» представление
- И НАИБОЛЕЕ ВАЖНО определить проблемы, которые вы обнаружили; И, не произнося «обвинительный», произнесите что-то вроде: «Я смотрел на алгоритм и заметил, что XYZ должен это делать или он должен это делать?». Ничто не получит их уверенность лучше, чем эта пуля.
Как только вы начинаете находить ошибки и проявляете интерес к их интересующей области, шансы становятся намного выше, чем, по крайней мере, они позволят вам изменить код, чтобы сделать его более «профессиональным». Зачастую они даже не чувствуют необходимости кодировать прототип больше. Они просто напишут что-то в одной из тех «альтернативных» нотаций, которым вы их научили (даже не осознавая этого), и они будут уверены, что вы поймете, что они имеют в виду.
Безусловно, моей первой попыткой было бы предложить несколько советов о том, как ученый может лучше всего помочь «лучше общаться», чтобы помочь вам; но звучит так, будто ты это пробовал. Таким образом, единственный шаг, который вы контролируете - это то, что вы делаете. Заработайте их доверие, и почти всегда эксперт по предметной области будет рад передать кодирование кому-то другому и не будет беспокоиться обо всех мелких деталях, которые входят в написание кода. Они бы предпочли сосредоточиться на улучшении алгоритмов.
Иногда все, что вы можете сделать, это предложить предложение и оставить его после этого. Вы не произведете впечатление на своего босса или старшего, если продолжите говорить о том, что они уже отвергли или решили, что не хотят этого делать, даже если вы на 100% правы. На самом деле, это повредит отношениям, будь вы предложителем или предложителем. Просто сосредоточьтесь на том, что ВЫ можете сделать, чтобы облегчить свою работу.