Рубрики
Uncategorized

Обзоры кода и цель компании

Обзоры кода являются важной частью того, как мы пишем код сегодня. Довольно редко найти компанию, да … Помечено качеством кода, обзором кода, производительностью, DevOps.

Справочник по рассмотрению кода (3 серии деталей)

Обзоры кода являются важной частью того, как мы пишем код сегодня. Довольно редко можно найти компанию, которая не практикует обзоры кода в некоторой форме или форме. Если драйверы для проведения обзоров кода в компании не являются инженерами, его регулирование. Обзоры кода стали требованием соответствия для некоторых стандартов безопасности (например, PCI DSS 3.0)!

Популярность обзоров кода связана с тем, что они приносят несколько преимуществ в инженерный процесс:

  1. Возможность поймать дефекты кода до того, как код будет отправлен в QA или Prod.
  2. Делиться знаниями с командой.
  3. Увеличить чувство взаимной ответственности.
  4. Улучшить качество кода.

Из -за всех этих преимуществ мы, вероятно, согласны с тем, что обзоры кода необходимы для доставки стабильного кода в производство. Но, как инженеры, мы также должны помнить, как наши процессы влияют на наши компании. Важно, чтобы мы спросили себя, как процесс проверки кода помогает нашим компаниям достичь своей цели.

Цель

По словам Элияху М. Голдратта и его романа Цель , цель большинства компаний — заработать деньги:

Внезапно его поражает, что цель его компании — заработать деньги! Все, что приближает его к цели, продуктивно. Следовательно, все остальные действия непродуктивны!

Несмотря на то, что цель рассказывает о производстве и эксплуатации производственной установки, большинство идей применяются и к другим типам процессов. Читать Проект Феникса Чтобы увидеть, как Цель может быть применен к этому.

Являются ли обзоры кода действительно продуктивной деятельностью для компании? Как упоминалось выше, у них есть много преимуществ, но они также увлекают драгоценное инженерное время от написания кода и увеличивают время выполнения новых функций. Было бы более продуктивным использовать это время, чтобы написать больше кода? Ответ на это — нет, но только если обзоры кода проводятся эффективно. Когда все сделано неправильно, хотя намерения были хорошими, у них на самом деле могут быть отрицательные результаты.

Плохой пример

Компания ACME Inc одержим качеством кода и обменом знаниями между инженерной командой. Настолько, что технический директор предлагает процесс, который требует каждого изменения кода, который был рассмотрен всем разработчиком в инженерном отделе (более 10 человек!).

Каковы последствия этого нового процесса на компанию?

  • Этот новый процесс повысит качество кода, так как все эти рецензенты найдут больше проблем с кодом, чем когда -либо могли бы один или два рецензента. 👍
  • Этот новый процесс также увеличит обмен знаниями. Каждый инженер в команде увидит все изменения. 👍
  • Но этот процесс останет остановку. Все инженеры будут слишком заняты просмотром всего кода! 👎

Компания будет бороться, если выпустить новые функции для клиентов потребуют столько обзоров, поэтому, хотя намерение было благородным, это действительно повредит цели компании.

Дорога в ад вымощена добрыми намерениями.

Я видел гораздо более мягкую версию этого из первых рук, и совсем не было очевидно, что мы делали что -то контрпродуктивное. Мы просто сосредотачивались на неправильных вещах при рассмотрении кода, делая обзоры кода слишком жесткими и заставляя процесс слишком много инженерного времени, не принося достаточной ценности.

Поэтому, чтобы правильно понять, как структурировать наш процесс проверки кода, давайте посмотрим на все основные преимущества из приведенного выше списка и посмотрим, какую ценность они приносят для цели компании. Это поможет нам выяснить, на чем нам нужно сосредоточиться на манейшем поездкам при рассмотрении кода.

1. Поймайте дефекты кода до того, как код будет отправлен в QA или Prod

За свою карьеру я слышал следующую фразу:

Обзоры кода нет, чтобы поймать ошибки, у нас есть команда QA для этого.

Но если вы смотрите на обзоры кода с точки зрения значения, которую они приносят компании, выявление проблем на раннем этапе, вероятно, является наибольшим влиянием, которое может оказать обзор кода. Это определенно единственное, что пользователи заметят!

Даже если у вас есть удивительная команда QA, которая гарантирует, что ошибки не развернуты для производства, все еще существует ценность поиска ошибок в процессе проверки кода. Исправление ошибки, найденной во время обзора кода, будет намного проще и быстрее, так как потребуется меньше людей, чтобы принять участие. Возможно, вам даже не понадобится билет на джира! Это увеличит ваше время работы и убедитесь, что пользователи будут получены вашей новой функцией раньше. Быстрое время поворота повышает ценность вашей компании.

Поиск ошибок чрезвычайно важен, но, как рецензент, вы также не должны часами просмотреть код и попробовать каждый случай края вручную. Вместо этого вы должны сосредоточиться на поиске ошибок при чтении кода, а не к вопросам стиля.

Позаботьтесь о особой осторожности, когда вы видите филиалы в пути кода, спросите себя, покрыты ли обе ветви тестами. Также обратите внимание, если автор забыл обратиться к случаю ошибки. Когда вы видите что -то, что вы думаете может вызвать ошибку, попросите автора написать тест, чтобы покрыть этот случай края.

Согласно цели компании, поиск ошибок, по крайней мере, позволяет нам быстрее исправлять дефекты, что позволяет нам быстрее развернуть новую функцию для клиентов. Это также помогает убедиться, что вы не пропустили ошибку через трещины и не подталкиваете ее к производству, где это может раздражать ваших пользователей. С этой точки зрения, поиск ошибки в процессе проверки кода, вероятно, является наиболее продуктивной, что вы можете сделать для своей компании.

2. Поделиться знаниями с командой

Каждый обзор кода — это шанс узнать что -то новое. Как для автора Кодекса, так и для рецензентов. Как рецензент, вы можете узнать, как другие люди в вашей команде решают проблемы. Как автор, вы получаете отзывы о вашей работе, которая имеет решающее значение для самосовершенствования.

Как обмен знаниями помогает цели вашей компании? Это очень мало влияет на пользователей напрямую, поэтому этот аспект обзоров кода, на мой взгляд, не так важен, как описанный в предыдущей главе.

Но совместное использование знаний по -прежнему помогает вашей компании, поскольку она уменьшает фактор автобуса — измерение риска, вызванного информацией и возможностями, не разделенными среди членов команды. Он также объединяет обучение и самосовершенствование в ваш инженерный процесс, который имеет решающее значение для вашей компании.

Поэтому убедитесь, что вы ищете способы поделиться знаниями при проведении обзоров кода, но только после того, как вы уверены, что вы не можете найти никаких дефектов с кодом.

3. Увеличить чувство взаимной ответственности

Вся ваша команда должна владеть своей коллективной коллективом. Если один человек несет ответственность за часть системы, это риск для вашего бизнеса, поскольку этот человек станет узким местом для каждой новой функции, которая затрагивает эту часть системы. Такие узкие места могут привести к тому, что ваша функция станет остановкой, поэтому всегда полезно посмотреть, сможете ли вы их уменьшить.

Это напрямую не влияет на цель компании, но это все еще может иметь огромное влияние косвенно. Убедитесь, что вы разделяете как можно больше знаний в процессе проверки кода, чтобы избежать узких мест, таких как описанное выше.

4. Улучшить качество кода

Обзоры кода — это хороший способ привлечь мало улучшений в коде. Чувствут, когда вы указываете, что несколько строк кода можно удалить, потому что уже существует существующая функция, которая делает то же самое.

Но будьте осторожны, быть чрезмерно педантичным по поводу каждой небольшой проблемы стиля может оказать негативное влияние на производительность вашей команды!

Я видел, как просил пробег задержать новую функцию от доставки на несколько недель, потому что запрос на изменение заставило его пропустить окно выпуска. Будьте внимательны к тому, сколько ценности компании получена, сделав комментарии в стиле кода и, возможно, скорее инвестируйте некоторое время, чтобы автоматизировать это в свой набор для тестирования или использование автонорочного препарата.

Постарайтесь убедиться, что проблемы в стиле кода обнаруживаются автоматически, без взаимодействия человека. После того, как в этом упоминается только проблемы с стилем, только тогда, когда нет ошибок, чтобы указать, или нет способа поделиться знаниями. И если рецензент не согласен с изменением, не упорствуйте.

Вывод

Будьте внимательны к цели компании при проведении обзоров кода. Спросите себя, какую ценность приносит ваш комментарий обзора кода. Если вы просите изменить какое -то пробел, значение будет очень маленьким. Если вы просите изменить код, который может неправильно вести себя при определенных условиях, разоблачающих конфиденциальные данные клиента, значение будет огромным.

При проведении обзоров кода постарайтесь написать больше комментариев с более высоким значением, чем более низкое значение.

Узнал что -то новое? Обязательно поделитесь тем, что вы узнали со своей командой. Обмен знаниями — одна из самых важных частей вашей работы 😉

В следующем сообщении в блоге я расскажу о том, как убедиться, что обзоры кода оказывают как можно меньше, чтобы показать скорость функции. Зарегистрируйтесь ниже, чтобы получить статью в своем почтовом ящике, как только она будет готова.

Справочник по рассмотрению кода (3 серии деталей)

Оригинал: «https://dev.to/smotko/code-reviews-and-the-company-goal-1j98»