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

Это исследование было проведено на основе двух данных:
Цели: данные были собраны из запросов на слияние и проверок кода, а также рабочего процесса программного обеспечения с участием 201 участника из разных команд.
Нецели: 51 разработчик разного уровня и опыта были представлены анкеты с некоторыми вопросами, связанными с объективными данными.

Фон

«Примитивные» формы код-ревью применяются и изучаются с 1986 года. Исходя из этого, мы знаем несколько важных моментов:

Изучаемые технические факторы:

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

Исследование, проведенное в Microsoft в 2015 году Amiangshu Bosu пришло к выводу, что размер Diff PR напрямую влияет на время, необходимое для проверки кода, тогда как расстановка приоритетов, сделанная при планировании программного обеспечения, лишь иногда влияет на время проверки.

Уже изученные нетехнические факторы:

В 2016 году исследование Ольги Байсал доказало, что: старшие разработчики и те, кто находится на более высоких позициях, имеют приоритет и получают более быструю и качественную обратную связь по своему PR.

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

«В ходе исследования проектов с открытым исходным кодом Синь Ян показал нам, что некоторые пункты неизменны:
● Файлы, на проверку которых в прошлом требовалось время, также получат подробные отзывы в будущем.
● Файлы с более авторам уделяется больше внимания.
● Количество измененных файлов или каталогов и размер сообщения о коммите могут как положительно, так и отрицательно повлиять на восприятие кода рецензентом.

Вопросы, на которые нужно ответить

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

1. Влияет ли количество проверяемых строк на эффективность проверки кода? Если да, то как?
2– Как количество задействованных команд влияет на процесс?
3– Имеют ли последствия присутствие разработчиков и рецензентов в разных странах?
4– Влияет ли количество активных рецензенты влияют на эффективность проверки кода?

Параметры:

Чтобы ответить на эти вопросы, мы приняли во внимание некоторые данные:

Продолжительность: сколько времени занял процесс проверки кода в днях.
Активные рецензенты: приглашенные рецензенты, которые не обязаны участвовать и которые оставили комментарии или голоса.
Участие: количество рецензентов, которые были приглашены и участвовали. Пример: 0% было бы, если бы не участвовали приглашенные рецензенты и участвовали 100% всех приглашенных рецензентов.
Плотность комментариев: количество комментариев, разделенное на каждые 100 строк Diff (умноженное на 100, чтобы избежать дробных чисел).< br /> Плотность комментариев рецензентов: количество комментариев, деленное на количество активных рецензентов.

Полученные результаты

Diff/LoC: как и ожидалось, чем выше разница, тем дольше длится проверка кода, однако зависимость не является линейной. Например, среднее время проверки различий между 601 и 800 в два раза больше, чем время проверки различий между 61 и 80, то есть в 10 раз больше.

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

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

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

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

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

Активные рецензенты. Принимая во внимание продолжительность, мы можем интерпретировать, что чем больше активных рецензентов, тем меньше их эффективность. Участие немного ниже, когда активных рецензентов больше, но при наличии до 2 активных рецензентов отрицательного влияния не отмечается.

Опрос

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

Diff/LoC. Как мы видим, первые три строки соответствуют нашим объективным данным, 96 % считают, что более высокая разница негативно влияет на проверку кода. То же самое и с участием, 80% считают, что становится хуже. Однако только 29% знают, что количество комментариев уменьшается, а 49% придерживаются противоположного мнения.

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

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

Интерпретации

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

Команды и места. Говоря о разных командах и рецензентах из разных мест, среднее восприятие (без влияния) влияния количества комментариев отличается от того, которое было получено в ходе объективного исследования, которое показало, что более обратная связь предоставляется, когда задействовано больше команд.
Влияние количества разных мест с учетом обеих частей исследования на продолжительность и участие также отрицательно. Тем не менее, согласно исследованию, основанному на объективных данных о количестве комментариев, ожидается большее число комментариев, когда задействовано больше мест, в отличие от отсутствия влияния, о котором сообщили участники опроса.

Активные рецензенты: результаты, полученные в ходе исследования, согласуются с этим выводом, учитывая продолжительность и участие. Однако результаты опроса показали, что разработчики часто переоценивают положительные побочные эффекты активных рецензентов для общего количества комментариев, когда есть более активные рецензенты, и для общего количества комментариев, когда более активные рецензенты, поскольку 68% респондентов сообщили, что количество комментариев (намного) выше, когда активно больше рецензентов, в то время как исследование, основанное на объективных данных, показало, что наличие более двух рецензентов не улучшит обсуждение. Это еще раз говорит о важности выбора правильных рецензентов и требовании опытного рецензента кода.

Ссылка на статью: https://jsard.springeropen.com/articles/10.1186/s40411-018-0058-0

Если статья была для вас чем-то полезна, попробуйте похлопать и поделиться ею ❤