Представьте себе: вы закончили большую задачу, написали много строк кода, всё проверили, даже подумали над названием каждой переменной! Но откладываете создание PR на день, два, три…из-за того, что не хочется идти в ревью и получать критику?

А мне такое и представлять не надо. Я испытываю подобное почти перед каждый своим ревью, даже спустя 6 лет в разработке.
Вообще, code review — это, конечно, чисто технический процесс: команда проверяет код, ищет ошибки, и вы вместе обсуждаете решения. Но это только половина правды. Наша работа давно перестала быть просто технической: там, где есть люди, всегда кроется ещё один слой - психологический.
С самого начала своей карьеры в IT я замечала, что для меня ТОН комментария порой важнее самого комментария. И тут ни в коем случае не веду речь про вежливость и лишние дифирамбы. Речь, как всегда, про эффективность.
Как выглядит стандартное ревью
Все мы знаем, как выглядит типичное ревью. Это комментарии типа:
Исправь этоПереименуй переменнуюДобавь проверку
Это самый быстрый тип комментария: они короткие и по делу. Но почему-то редко говорят об эффекте, который такие комментарии производят на автора кода. Когда мне приходится получать такое на ревью, моя первая реакция — это защитить своё решение и доказать, что «я не дурак».
Почти всегда обсуждение после таких комментариев идет по одному сценарию:
Человек объясняет, почему он сделал именно так —> ревьюер отвечает, что подход всё равно неправильный —> начинается длинный тред с аргументами.

Я начинаю чувствовать, что мою работу оценивают и я нахожусь на мини-экзамене, поэтому вполне естественно переключаюсь с самой задачи на необходимость объяснить и защитить свой выбор решения. Правда, мне по началу казалось, что это лишь чувства «маленькой девочки в мире серьезных инженеров».
Долгое время я держала эти мысли в себе, но, обсудив однажды эту тему со своим мужем, закоренелым mobile-developer, оказалось, что он разделяет мой взгляд (и не потому, что он мой муж и ему приходится со мной во всём соглашаться).
На мой взгляд, выбор тона для комментария может определить, в каком направлении пойдёт диалог:
Когда разработчики действительно обсуждают код: какое решение лучше, как упростить реализацию, что можно улучшить.
Или же когда разговор крутится вокруг позиции автора:
почему я сделал именно так,
почему это решение тоже нормальное,
почему комментарий не совсем справедлив.
И я думаю, не нужно объяснять, что во втором случае очень легко может возникнуть спор, который займет много времени, но по итогу ни к чему не приведёт.

Чтобы не быть голословной и дать какую-то опору своим словам, я попросила ChatGPT поискать в архивах психологии исследования на эту тему. И, как ни странно, он нашёл вполне интересные штуки.
Почему так происходит?
Защитная реакция
В психологии есть понятие defensive response — защитная реакция на оценку. Когда мы чувствуем, что наши действия оценивают, мозг переключается из режима решения задачи в режим защиты своей компетентности. Исследования показывают, что форма обратной связи сильно влияет на то, как люди её воспринимают. Например, в работе Harvard Business Review указано, что жесткая формулировка критики повышает вероятность защитной реакции и снижает готовность людей принимать новые идеи.
А если перенести это в наш мир разработки, то это выглядит примерно так:
комментарий → объяснение → спор → длинный тред.
Code review как источник микростресса
Code review происходит постоянно, это ежедневная часть работы большинства разработчиков. И если каждое ревью сопровождается небольшим напряжением, то оно постепенно накапливается. В психологии это называют micro-stressors: небольшие, но регулярные стрессовые события. Со временем именно они сильнее всего влияют не только на выгорание, но и на здоровье, потому что суммарное действие микрострессов ничем не уступает «большому стрессу».
Исследования показывают, что токсичные комментарии в code review могут демотивировать разработчиков и ухудшать сотрудничество в проектах. Например, в исследовании Automated Identification of Toxic Code Reviews Using ToxiCR отмечается, что такие комментарии могут восприниматься как личная атака и мешать дальнейшей совместной работе.
Психологическая безопасность
А еще одно из самых известных исследований на эту тему провели ребята из Google. В исследовании Project Aristotle компания пыталась понять, почему одни команды работают лучше других. Главный фактор эффективности оказался не связан напрямую со стеком технологий или опытом разработчиков. Им оказалась психологическая безопасность. Когда люди чувствуют, что могут спокойно обсуждать идеи и ошибки, команда работает заметно эффективнее.
А code review это как раз то место, где чаще всего происходит публичная оценка решений разработчиков. И именно там формируется ощущение безопасности или его отсутствие.

Маленькая разница в формулировке
И если информация выше вызвала в вас отклик, то давайте на маленьком примере разберем, что было бы приятнее прочитать к своей работе:
Исправь это
или
Давай исправим это, так будет проще читать
Согласна, что смысл одинаковый, но, как ни крути, второй комментарий звучит, как совместное действие, от него меньше стресса и защитная реакция может быть даже и не возникнет. Как считаете?
Вообще, мы с ChatGPT нашли ещё одно исследование, в котором говорится, что нейтральный и объясняющий тон уменьшает вероятность эскалации дискуссии. Да, может быть выборка не такая большая (22 разработчика), но достаточная, чтобы убедиться, что даже небольшое изменение (вроде добавления слова «Давай») может заметно снизить вероятность конфликта в обсуждениях.
Окей, я рассмотрела некоторые исследования, у меня есть теория, но что же делать на практике, чтобы ревью были не таким болезненными? А может быть, чтобы даже стать крутым ревьюером?
Инструменты для улучшения ревью
Мы давно используем инструменты, которые упрощают процесс ревью и делают его удобнее:
использование различных маркировок комментариев, например, nit,
suggestion,
линтеры,
форматтеры
Они помогают структурировать комментарии и автоматизировать часть проверок. Но, хорошее ревью — это больше, чем просто анализ кода и выявление ошибок. Это ещё и способ донести свою мысль так, чтобы её захотели услышать.
Техническая правота сама по себе не всегда приводит к согласию. Люди легче принимают идею, когда понимают её контекст и не чувствуют давления. И вот здесь я хочу вернуться к той вещи, которая почти не обсуждается как часть процесса — тон общения.
Хотя он напрямую влияет на комфорт разработчиков, скорость принятия решений, количество споров, иногда одно слово в комментарии может изменить всю динамику обсуждения.
Расскажу о своих подходах, к написанию комментариев, которые мы внедрили, когда нам захотелось повысить культуру общения в команде и повысить ее эффективность.
№1. Предлагать альтернативу
Здесь всё просто: критикуешь — предлагай.
Вместо:
Мне не нравится этот нейминг
Я пишу:
Может назвать переменную userProfile?
Пример, как я это делаю:

Этим ты, во первых, я снижаю когнитивную нагрузку для автора PR. Ему не нужно догадываться, о чём именно я думала в этот момент.
А во вторых, так я сразу превращаю ревью в обсуждение. Вполне естественно, что ревьюер может не знать всей глубины задачи, но предложенный вариант поможет начать разговор.
№2. Не использовать приказной тон
Мы не на заводе, где приказы отдает высшее начальство. У нас командная работа и во всем требуется совместное действие.
Зачем писать:
Исправь этоПереименуй этоПерепиши это
Если можно добавить буквально пару слов и написать это:
Давай исправим ХЛучше переименуй YПопробуй переписать Z
Пример, как я это делаю:

Я формулирую комментарии, как призыв к совместной работе.
№3. Искать спасения в вопросах
Часто можно увидеть категоричные комментарии, по типу:
Такой подход неверный, переделать
Но что, если попробовать понять логику автора и задать вопрос иначе?
Почему ты выбрал именно такой вариант?
Что сейчас решает твой подход к задаче?
Пример, как я это делаю:


Такая формулировка помогает сначала понять мысли автора, а потом обсудить решение. И если есть возможность, предложить свой вариант.
Это всё довольно мелкие изменения, которые не требуют лишнего времени, но они значительно повысят качество ревью, а также улучшат взаимодействие в команде.
№4. Главное — не бояться давать обратную связь на ревью
Есть ещё один момент, который редко обсуждается, но о котором я хочу сказать отдельно. В командах принято давать обратную связь на код, на задачи, на работу разработчиков.
Но почти никогда не дают обратную связь на само ревью.
Хотя это такой же рабочий инструмент. Если комментарий звучит резко или не помогает понять мысль, нормально сказать об этом.

Иногда человек просто не замечает, как звучит его стиль ревью. В большинстве случаев это не намеренная грубость, а всего лишь привычка. Но обсуждение таких вещей внутри команды может заметно улучшить атмосферу работы.
В конце концов
Разработка уже давно стала коллективной деятельностью. Мы постоянно обсуждаем архитектуру, решения, pull request и баги. Коммуникация такой же инструмент инженера, как тесты, архитектура или хороший нейминг.
И иногда для улучшения процесса достаточно изменить одну маленькую привычку. Иногда достаточно добавить в комментарий только одно слово «Давай».
А как вы проводите код ревью? Какие комментарии пишите?
Комментарии (17)

OlegZH
02.04.2026 09:39Исправь это
Не информативно. Звучит как название фильма. Хочется спросить, а почему читатель не может сам предложить исправление?
Переименуй переменную
В компании нет руководства по именованию переменных? А что мешает читателю самому предложить вариант переименования?
Добавь проверку
Проверку чего? Что мешает читателю самому предложить подходящий вариант проверки того, что нужно проверить?

Viktoria_Arturovna Автор
02.04.2026 09:39Вот Вы правильно заметили, что все эти вопросы как раз и есть тот самый сигнал, что комментарии не работают. Разработчик не должен угадывать, что хотел ревьюер. И в хорошем ревью ты сразу понимаешь что не так и что нужно исправить. Если комментарий вызывает дополниетльные вопросы, то он уже неэффективен!
Вот как раз об этом и есть моя статья:)
OlegZH
02.04.2026 09:39Пример с именами переменных, как раз, говорит о том, что программная система на этапе проектирования не должна представлять собою конечный программный код, а как код на некотором промежуточном языке программирования с элементами базы данных. Например, когда вводится какая-то переменная, то переменной должно быть дано название, развёрнуто определяющее её суть. Это мы задаём конкретное имя в коде, потому что нам же его потом читать и исправлять (по необходимости). С точки зрения компилятора, переменную можно обзывать и как
Переменная01. Здесь может быть прямая аналогия с доменными именами и IP-адресами. Задавая развёрнутое описание, мы задаём тот текст, который будет всегда отображаться в пользовательском интерфейсе среды разработки. (Код будет выглядеть практически как в 1С.))) А уже в конечном программном коде (при необходимости) может быть выбран какой-либо подходящий стиль (на)именования переменных.

ken48
02.04.2026 09:39Я тут вижу проблему доверия в команде. Ведь получатель послания так же участвует в создании смысла, как и его автор. Представьте себе любимого дедушку, такого теплого и родного, который всегда с вами себя вел максимально поддерживающе и вообще божий одуванчик. Он вам напишет сообщение «Свари картошечки, я приеду через час». Я бы с радостью кинулся ее чистить, а потом варить, предвкушая встречу. А все почему, потому что я не вкладываю в это сообщение смысла «опять этот абьюзер что-то от меня требует».

Alex_RF
02.04.2026 09:39Это порой не совсем так. Первое - человек должен понимать почему надо исправить, а не следовать чей-то воли по не известным ему причинам. При этом аргументация должна быть обоснована и не приводить к холиварам. То есть по многим вопросам должны быть соглашения в команде - например использования lombok и в каких пределах, поднятие опускание версий библиотек, работа с нулами имеют множество решений - каждое из них имеет свои плюсы и минусы и каждый в разработке имеет право пользоваться свои привычными решениями. Иначе возникают личности которые с помощью код-ревью поднимают свою самооценку за счет уничтожения команды и затягивания сроков проекта.

ken48
02.04.2026 09:39Не имел в виду, что тон неважен. Хотел лишь подсветить распространенную проблему внутри любых социальных групп, реалистичное решение которой возможно на том же уровне (или выше), который эту проблему и породил. Чисто процессным микроменеджментом это не решить. Хотя бы потому что слишком дорого поддерживать точные регламенты в условиях постоянных изменений (продуктовых требований, общей экспертизы команды, развития инструментария) - все, что сегодня нам кажется незыблемым и "фух, наконец-то договорились", уже через месяц начинает казаться "ну давайте попробуем теперь так".

event1
02.04.2026 09:39Одна верная мысль, что комментарии должны быть обоснованы. Остальное — вопрос традиции. Если у разработчика подгорает от принятого в данной команде тона комментариев, то проблема именно у него, а не у команды.

Alex_RF
02.04.2026 09:39Давайте про тон комментариев - в первую очередь он должен быть просто нейтральным. Я могу рассказать много примеров, где просто комментатор просто фонтанировал в эмоциями - например "Да какой ты инженер" - это высказывал комментатор, который не удосужился ВУЗ окончить, одному джуну только после универа. В результате джун уволился в течение 1 месяца. Он получал зарплату в течении 6 месяцев и хотя и делал свои работу - но все же команда осталась без мидла в ближайшем будущем.

m0rfy
02.04.2026 09:39Я один вижу это как "я попробовал вайбкодинг и там важно составлять правильно задачу"?
Gar02b
Виктория, сдаётся мне, что между "Исправь это" и "Давай исправим это, пожалуйста" нет никакой разницы.
Не конструктивнее ли будет так: "Ты вынес пароль на конфигу по умолчанию в переменную, и это хорошо. Но у нас есть функции, где пароль явно задавался как b'12345xyz' (в них ты тоже заменил строку на переменную). Теперь они не работают, ибо ждут ACII, а не UTF-8. Пройдись по всем функциям utils.py и поправь, где это нужно. Не забудь протестировать всё, а не только свой модуль".
Viktoria_Arturovna Автор
конечно Ваш вариант конструктивный! но он как раз таки и подтверждает мою мысль, а не опровергает ее) в таком примере есть все: и объяснение и ожидание по результату и даже конкретная область для исправлений.
В целом то, в чем весь смысл? смысл в том, что нужно не забывать, что по ту сторону ревью находится человек, к которому нужен человечный подход. не в плане «добавить пожалуйста», а в плане дать ему контекст, показать проблему и помочь быстрее прийти к решению, а не оставить один на один с формулировкой «исправь это»
xsevenbeta
А как по мне, присоединение ("мы" вместо "ты") очень даже хорошо работает. Мы - это уже два человека, которые вместе решают какую-то проблему.
Использование нужных местоимений в правильных местах это вообще потрясающей силы инструмент.
Viktoria_Arturovna Автор
полностью согласна!
Gar02b
"Мы" хорошо работает там, где оно реально "мы". Но если тебе "мыкают", хотя исправить должен именно ты, то это не хило так пахнет манипуляцией. А технари сильно не любят такое "присоединение" сзади :-).
xsevenbeta
Слово "исправить" не имеет ярко-выраженной негативной коннотации, но всё же приятного в этом мало. Можно сказать по другому "Давай вместе подумаем, как ТЕБЕ это исправить". Так норм? :)
А вообще присоединение, местоимения, слияние и диффузия разных "Я" и "МЫ" это тема отдельной статьи. В деструктивных культах часто используют конструкцию "Я есть группа". И это очень крутое, смертоносной изобретение, наравне с изобретением ружья.
Потому что там где нет "Я" - там нет и личной ответственности и других чувств. А некоторые секты изымали "Я" и человек должен был говорить о себе в третьем лице.
В армии, кстати, это тоже используется, насколько я как гражданский человек понимаю. Помните вот это вот "Рядовой Петров прибыл"? И одинаковая форма и стрижка. Один накосячил - отвечают все и.т.д. Система бадди, которая из армии США перешла в культы (а может и наоборот, кто знает).