Я разработчик программного обеспечения в команде разработчиков 7-8. Мы уже давно занимаемся обзорами кода, и качество кода со временем улучшилось.
Однако недавно я заметил, что некоторых разработчиков просят больше обзоров кода, чем других. Боюсь, это из-за их гибкого отношения.
На мой взгляд, это не то, как должны проводиться проверки кода: вся команда должна нести за это ответственность, и не следует выбирать рецензентов кода за их готовность легко принимать изменения.
Как вы решаете эту проблему в своей команде?
Вы установили правила выбора рецензентов кода?
Как вы думаете, рецензенты кода должны быть вознаграждены за время, потраченное на выполнение (хороших) рецензий кода? И как они должны быть вознаграждены?
Спасибо за ваши ответы / идеи.
code-quality
code-reviews
software-craftsmanship
guillaumegallois
источник
источник
Ответы:
Мы не выбираем рецензентов.
В нашей команде:
Обзоры кода не назначаются, люди выбирают их, когда это работает для них. Понимание состоит в том, что мы не можем протолкнуть истории через конвейер. Иногда кто-то упоминает, что он ожидает КР в режиме ожидания, но это все.
Мне нравится эта модель, она дает людям возможность выбрать то, что они могут, и избегает "давать людям работу".
источник
Введите правило, что ошибка может быть назначена для исправления не только тем, кто совершил изменение, но и только тем, кто его рассмотрел. Это должно создать правильную перспективу для обзора кода.
Что касается,
Ну, я не уверен, как вообще разработчики получают вознаграждение за свою работу, кроме как просто получать зарплату и гордиться тем, что они сделали. Но так как проверка кода является частью их работы, рецензент должен получить время для обзора и как-то поделиться кредитом.
источник
Основная проблема, которая у вас есть, не техническая, но некоторые инструменты могут снизить количество усилий, затрачиваемых на проверку кода. Есть несколько проблем, которые нужно преодолеть:
Это не означает, что вы не можете использовать SubVersion или другие инструменты (например, Fisheye), чтобы помочь, но интеграция, встроенная в конвейер Git с ветвями функций, действительно делает работу менее трудоемкой.
Помимо инструментов, вам нужно взглянуть на более социальные проблемы:
Возможно, стоит проверить, какие типы заданий проверяются более заинтересованными людьми. Они могут захватывать все простые обзоры, что делает вещи более болезненными для всех остальных.
источник
Хорошая идея - сделать это на основе циклического перебора - вы выбираете кого-то, кто выполнил наименьшее количество проверок вашего кода. Со временем все в команде должны были сделать примерно равное количество обзоров. Это тоже распространяет знания.
Очевидно, что будут случайные исключения, такие как праздники, где будут пики и впадины.
Не должно быть никакого различия между юниорами и старшими / ведущими. Обзоры кода должны проводиться для каждого кода - независимо от того, насколько они старше. Это уменьшает трение и помогает разделять разные подходы.
Если после всего этого вы по-прежнему обеспокоены качеством проверок, рассмотрите возможность введения набора минимальных стандартов для прохождения проверки кода. То, что вы включаете, полностью зависит от вас, но некоторые вещи, которые вы можете рассмотреть, это: покрытие кода, модульные тесты, удаление закомментированного кода, метрики, достаточное количество комментариев, качество сборки, принципы SOLID, DRY, KISS и т. Д.
Что касается стимулирующих обзоров кода, качество кода является наградой. Я уверен, что мы все работали над неоптимальными основами кода, где боль могла бы быть значительно уменьшена, если бы другой разработчик просто с самого начала дал ему код и предложил конструктивные изменения.
источник
Похоже, команде не хватает формального процесса проверки кода.
Я не говорю о создании документа Word на 350 страниц, а просто о нескольких простых пунктах о том, что влечет за собой этот процесс.
Важные биты:
Определите основной набор рецензентов. Нет общих заявлений. Назовите людей.
Это должны быть ваши старшие разработчики.
Требовать более одного основного рецензента, чтобы подписать рецензию.
Определите по крайней мере 1 другого не основного рецензента на каждый спринт или релиз, который является временным основным рецензентом. Требуйте их подписи на всех кодах отзывов за это время.
Пункт № 3 позволяет другим разработчикам переходить в основную группу рецензентов. Несколько недель они будут тратить больше времени на обзоры, чем другие. Это балансирование.
Что касается вознаграждения людей? Много раз признание того, что усилия, предпринимаемые человеком во время проверки кода перед всей командой, могут работать, но не напрягайте себя из-за этого.
Если вы сомневаетесь, определите процесс и скажите команде, что он должен придерживаться его.
И есть одна последняя вещь, которую вы можете попробовать - спорным, так как это может быть: пусть @ # $% ударил вентилятор, если я могу использовать идиомы.
Пусть команда потерпит неудачу, потому что процесс проверки кода не выполняется. Управление будет вовлечено, и тогда люди изменятся. Это действительно хорошая идея только в самых крайних случаях, когда вы уже определили процесс, а команда отказалась его выполнять. Если у вас нет полномочий увольнять людей или наказывать их (как это делают большинство ведущих разработчиков ), вам нужно привлечь кого-то, кто может сделать это.
И нет ничего лучше, чем неспособность заставить вещи измениться. Несмотря на то, что люди могут сказать, вы можете управлять «Титаником», но не раньше, чем он обрушится на ледяной бург.
Иногда вам просто нужно, чтобы Титаник ударил ледяной бург.
источник