Итак, мы команда из двух человек, непосредственно подчиняющихся нашему директору. У меня 4-5 лет опыта, а у моего товарища по команде более 20 лет опыта. По понятным причинам он мой ведущий. Мы оба программисты, и мы напрямую взаимодействуем с нашими клиентами.
Теперь я совсем не ценю его стиль кодирования. На мой взгляд, его код «быстрый и грязный» . Теперь, это может быть чисто мое мнение и может не иметь ничего общего с фактами. Однако я стараюсь держаться подальше от проектов, над которыми он работает, чтобы мне не приходилось защищать то, с чем я не согласен.
До сих пор это работало для меня. Однако на прошлой неделе его проект сорвался, и он почему-то притворился, что занят, и мне пришлось править код.
Теперь, поскольку мой директор должен одобрить любые немедленные изменения кода в производстве. У него была возможность посмотреть на это, и он был очень недоволен тем, что есть проблемы в производстве, а также тем, что качество кода действительно было не очень хорошим.
Сейчас опять не хочу начинать тыкать пальцами, НО в то же время не хочу защищать то, с чем не согласен. Я понятия не имел, что сказать, когда код и система подверглись резкой критике.
Как передать это сообщение?
Прекратите работать в бункерах.
Чем больше у вас культуры «оставаться на своей половине кодовой базы», тем больше вероятность того, что:
Как вы только что обнаружили, это заставляет вас играть в игру с обвинением, хотите вы этого или нет: в конечном итоге ваш ответ сведется к «Я не знаю, это не мой код».
Прямо сейчас вы можете попытаться быть немного более дипломатичным:
Боюсь, я не знаком с этой частью кодовой базы.
Это не совсем мой стиль, но, возможно, (у руководителя группы) была причина для такого кодирования.
Вы правы, что не вскакиваете и не критикуете. Если у вас разные стили, вполне возможно, что в способе написания кода есть преимущества, которые вы просто не видите. Даже если нет, ваш директор, по-видимому, утвердил этот кодекс раньше и, возможно, нанял вашего лидера. Вместо этого предлагайте разные способы ведения дел: «Я бы объединил их в один метод» и т. д. В этой ситуации нет «хорошего» ответа, но сосредоточьтесь на практических аспектах исправления ошибки, тестирования и развертывания выпуска.
... но это не сработает в следующий раз.
У вас все еще есть куча «проблемного кода», который вы игнорировали до сих пор, но не можете позволить себе игнорировать его. Ваш руководитель группы может не беспокоиться о качестве кода, но когда его код в следующий раз выйдет из строя, вас спросят, почему вы не решили проблему.
Даже если вы в конечном итоге не откроете для себя все самые темные уголки кодовой базы ваших коллег, вы, по крайней мере, начнете замечать достаточное количество закономерностей в действиях вашего коллеги, что может помочь вам быстрее диагностировать ошибки в следующий раз.
Честное слово, прямое общение в порядке. Предлагайте решения, а не проблемы. Вы можете поднять следующие вопросы с вашим боссом:
Код-ревью — это волшебное место, где младшие разработчики могут внедрить новые методы и лучшие практики в производство, не раздражая перья. В центре внимания код, а не человек. Не снисходите, не переучивайте и не обобщайте за пределы текущего примера. Просто скажите, что для этого конкретного случая есть полезный шаблон, с которым вы добились успеха. Уточните конкретную проблему, которая может возникнуть при каждом изменении. «Если мы изменим это на то, произойдет утечка памяти. Если мы изменим это на то, это изящно завершится ошибкой из-за плохих входных данных, таких как это, что случалось раньше». В спорных ситуациях, подобных этой, вы «переворачиваете код» — все просматривают код, но человек слева от вас на собрании вносит изменения (или следующий по росту, или следующий день рождения и т. д.). Всем выгодно,
Simple state that for this particular case, there is a useful pattern you've had success with.
- Имя для этого обучения.Решить проблему
Вы можете либо продолжить тот же «стиль» кодирования и исправить немедленные проблемы, либо потратить время на исправление общих проблем, мешающих этому набору кодов. Ваш босс должен будет принять решение. Вот почему он получает большие деньги.
Будем надеяться, что по этой проблеме будет какое-то вскрытие, и ваша команда должна решить, собираетесь ли вы позволить другому разработчику продолжать быстрое и грязное программирование.
Опять же, вашему боссу придется решать, как двигаться дальше. Я не знаю, почему ваш босс не применяет то, что кажется более высоким стандартом кодирования для программиста sr. Технический долг в конечном итоге должен был быть оплачен всеми.
Все, что вы можете сделать, это вносить предложения и делать все возможное, учитывая ограничения решений вашего босса.
Если вы работаете в команде, вы оба несете ответственность за качество кода (даже если вы его не писали). Весь код должен быть проверен и достигнут консенсус.
Если у вас возникли проблемы с достижением консенсуса, установите автоматические инструменты для проверки и разрешите только те коммиты, которые прошли автоматическую проверку.
Как справиться с вашей текущей ситуацией.
Подробнее о совете «Начать поиск новой работы»:
Джоэл Этертон
Джоэл Этертон
Джим Г.
I have 4-5 years of experience and my teammate has 20+ years of experience. For obvious reasons he is my lead.
: Нет, это не так. Я встречал разработчиков с 4-5-летним опытом, которые могут кодировать штаны другого разработчика с 20+ годами опыта.Карсон63000
Лилиенталь
Лилиенталь
тиего1967
IDRinkandIKnowThings
Джон Р. Стром
Джон Р. Стром