Наша команда недавно начала проводить проверки кода на предмет каждой регистрации.
Как руководитель группы, я пытаюсь найти баланс между предоставлением слишком большого количества предложений, раздражением разработчиков и уменьшением результатов работы команды и отказом от кода, который я написал бы по-другому.
Есть ли какие-либо доказательства, исследования или рекомендации из хорошо известных источников, которые предлагают полезный подход?
Ответы:
Имейте в виду общие цели: в конце концов, только рабочее программное обеспечение имеет значение
Рецензирование и проверка кода проверки имеют целью улучшить качество . Но нет ничего хуже по качеству, чем демотивированный разработчик. Как руководитель группы, ваша роль состоит не в том, чтобы одобрить код как нечто, что вы могли бы написать самостоятельно, а в том, чтобы продвигать командную работу и обеспечивать общий результат.
Установите четкую область для вашего обзора
Имейте в виду: это не ваш код, а код команды. Итак, сосредоточьтесь на вещах, которые могут привести к неправильным результатам.
Не оспаривайте способ, которым ваш разработчик решил удовлетворить требования, если вы не уверены, что он не будет работать (но он уже должен был провалить тесты, нет?)
Не бросайте вызов плохой производительности, если нет меры, которая показывает, где проблема. Преждевременная оптимизация - корень всего зла ;-)
Если вы находите дизайн или структуру программного обеспечения для оспаривания, спросите себя, почему это не было поймано заранее! Уже написанный код переписывает дорого. Если это произойдет, самое время пересмотреть ваши практики разработки программного обеспечения и командной работы, по крайней мере, столько же, сколько и код.
рассмотреть соответствие установленным стандартам кодирования. Это самая раздражающая тема для обсуждения как рецензентом, так и рецензируемым. Когда все согласились использовать заглавные имена классов в вашей команде, и у одного парня есть класс без него, это вопрос вкуса? Или о командной работе и риске?
Кстати, если вы считаете, что стандарт кодирования не стоит обсуждать, удалите его из своих стандартов и не тратьте на него время и силы.
Развитие лидерства: человеческая сторона обзора
Как руководитель группы, вы можете найти здесь возможность развивать себя и свою команду, помимо формальности контроля качества:
Воспользуйтесь преимуществами других практик
Есть несколько вещей, которые вы можете избежать в обзоре кода:
источник
Как разработчики, мы должны всегда оставаться открытым и скептически настроенным.
Открыт, потому что мы не знаем, когда разработчик может нас удивить, и скептически относимся к нашим собственным идеям, потому что мы часто забываем, что в программной инженерии нет единственно правильного способа реализации решения. Логическое обоснование наших решений может иметь смысл для нас, а для других - ничего. За запахом кода может быть отличная идея. Возможно, разработчик не нашел способа выразить это должным образом.
Из-за того, что мы (люди) ужасно общаемся, не делайте ложных предположений, будьте готовы спросить владельца кода о коде, который вы просматриваете. Если он / она потерпел неудачу в кодировании идеи в соответствии со стандартами компании, как ведущий разработчик будет готов направить его / ее тоже.
Здесь субъективный подход. Объективный подход, ИМО, очень хорошо объяснен в этом вопросе .
В дополнение к ссылке выше, набор целей, которые должны быть достигнуты (ремонтопригодность, удобочитаемость, портативность, высокая степень сцепления, слабая связь и т. Д.), Не обязательно являются Десятью заповедями. Вы (команда) должны быть в состоянии адаптировать эти цели к точке, где баланс между качеством и производительностью делает работу удобной и «пригодной для разработчиков».
Я бы предложил использовать инструменты статического анализа кода для измерения прогресса качества в соответствии с этими целями. Такие инструменты, как SonarQube, предоставляют нам качественные ворота и профили качества, которые можно настраивать в соответствии с нашими приоритетами. Он также предоставляет нам средство отслеживания проблем, где разработчики могут быть нацелены на проблемы, связанные с запахом кода, ошибками, сомнительными методами и т. Д.
Такие инструменты могут быть хорошей отправной точкой, но, как я уже сказал, держите себя скептически. Вы можете найти некоторые правила в Sonar бессмысленными для вас, так что не стесняйтесь игнорировать их или удалить из своего профиля качества.
источник
Вмешательство кода разработчика в косметические изменения демотивирует разработчика, но в абсолютных обстоятельствах это необходимо сделать. Ведущий должен найти баланс между предоставлением полезного обзора кода и обучением, чтобы избавиться от незначительных недостатков. https://blog.smartbear.com/sqc/for-the-new-team-lead-the-first-six-things-you-should-know/
источник
Некоторые вещи, которые нужно иметь в виду:
источник
Есть только две вещи, которые имеют значение.
Все остальное является косметическим и должно обсуждаться из-за пива, а не в качестве ворот.
Если вы придерживаетесь этого взгляда, то он ограничивает вас узкой областью фокуса.
Требования хороши? Что в идеале вы должны знать перед началом задачи, т.е. производительность, безопасность и т. Д.
Являются ли тесты хорошими тестами? Любые пропущенные крайние случаи, хорошо ли они тестируют требование и т. Д. В конечном счете: Можете ли вы написать тест, который соответствует существующему требованию, но не даст результатов?
источник