2020-01-16

Q&A бестолковые вопросы на код-ревью

Как быть на Code Review, когда ревьюер очень поверхностно твой код читает и задает вопросы, которые он мог быстром сам получить (например, глянув в док как работает то или иное API / посмотреть контекст, где используется код). В итоге получаешь простыню таких вопросов, и разжевываешь ему что и как. С другой стороны, автор кода может конечно заюзать что-то не стандартное и хорошим тоном было бы сразу описать что за штука и как работает. Но я говорю именно о неспецифичных вещах, сужу по себе и другим коллегам: увидел что-то сходу не понятное: попытался сам разобраться глянув контекст, доки. Осталось непонимание? Аккуратно спросил.

Интересно, почему задают такие вопросы? Возможно, ревьюер и правда не знает где и как искать ответы. В таком случае можно не объяснять всё своими словами, а давать краткое пояснение и пассивно-агрессивно выдавать ссылку на документацию, намекая, что такая документация имеется, и в ней много полезной информации (что не всегда правда, увы).

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

Тут нужно пытаться как-то донести до команды, объяснить, что можно просто принять изменения. Можно подавать пример, можно проводить парные ревью, можно позвать ревьюера, и вместе, сидя за одним компьютером, разобрать его вопросы.

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

И предложи помощь в дальнейшем, расскажи, что готов помогать ему с поиском информации, если он сам не справляется 🙂

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

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