Вот уже месяц прошёл, как я пообещал написать "коротенький пост про ревью на неделе". Но, пока я в канал про программирование постил байки про автопром и предпринимательство, про само ревью все у меня нудятина какая-то получалась.
И, все же, кажется, сегодня я вымучил из себя что-то приемлемо душное, поэтому вот вам третья попытка, написанная в метро за время поездки в офис и обратно. Пересказал основную дискуссию и добавил немного отсебятины.
Ну и, по традиции, рассказываю как оно там у нас в команде.
Читать после основной статьи.
- Используем ли мы пулл-реквесты?
- Нет.
- Есть ли у нас код-ревью?
- Да, мы практикуем парное программирование.
- Все ли время мы кодим в парах?
- Нет, большая часть кода написана не в паре. Парное программирование используется для решения конкретных задач.
- Скрываем ли мы этот факт от посторонних глаз?
- Да, объяснять, какая мотивация стоит за этим у нас нет никакого желания.
И теперь по полочкам
1. Доверие.
В нашей команде вопрос доверия - центральный. Решается он строгим входным фильтром и обучением. Абы кого я в команду не беру: всех, кто оказался в команде, я видел в работе до этого. Отобрал самых идейных фанатов автотестов и клин кода, самых ответственных и лёгких в общении. Все, оказавшиеся в команде, прошли минимум через месячный процесс обучения.
2. Контроль качества.
Качество обеспечиваем многослойным и полным автотестированием с демонстрацией кейсов аналитикам и ручным тестированием нового функционала на стендах для валидации автотестов. Это не универсальная схема, но она эволюционировала именно под это конкретное место и хорошо нам здесь служит.
- Хватает ли нам этого?
- Не всегда. Где-то мы понимаем, что нам не достаёт инвестиций в нагрузочное тестирование, где-то ещё чего-то.
- Бывает ли, что не хватает именно ревью?
- Да, раз в месяц-другой появляется необходимость что-то посмотреть в четыре глаза, и какие-то штуки делаются в паре. Иногда это делается по моей просьбе, иногда - по инициативе разработчиков.
Интересно, кстати, что эксплицитно, как процесс ревью, это артикулируется не так часто. Чаще используются фразы наподобие:
Андрюха, там у Дена вопросик, гляньте вместе, пожалуйста.
Мне немного стрёмно эту штуку делать, давай вместе поковыряем?
Там сложное место, его Гриша делал. Вместе посидите, пожалуйста.
Гриш, ты там хвастался своим решением. Давай посмотрим, че ты там намутил такое.
Впрочем, нередко в конце каждой такой фразы намеренно добавляется "в паре". То ли для солидности, то ли просто из любви к искусству.
3. Обучение.
А вот обучение мы всегда проводим с помощью парного программирования: при входе в команду каждый прошёл такой месячный курс молодого бойца. Но и после него в паре осваиваются новые технологии, направления, домены и подходы. В паре бэки учатся у фуллстеков фронту, в паре мы передаём опыт нагрузочного тестирования, в паре делимся премудростями рефакторинга и дизайна.
Итого
Большая часть кода в нашей команде написана без ревью. Ребята сами выбрали этот режим работы команды, как самый оптимальный для них при текущих условиях: режиме удалёнки, нагрузке на команду, разбросу по доменам. И тут я им доверяю.