Какие методологии и флоу разработки используются в команде?
Что проверяют
Если вопрос задаёт интервьюер, ему важно понять, работали ли вы в налаженном процессе и понимаете ли, зачем в нём каждый шаг, от ветки до выкладки. Следом обычно просят рассказать, что бы вы в этом процессе поменяли. Но чаще этот вопрос задаёте вы сами в конце собеседования, и тогда по ответу видно, как команда живёт на самом деле.
Как отвечать
Рассказывая о своей команде, идите по пути задачи, а не по названиям методологий:
- планирование: Scrum со спринтами обычно по две недели или Kanban с потоком задач и WIP-лимитами. Скажите, кто ставит приоритеты и как оценивали задачи;
- ветки: GitHub Flow или trunk-based с короткоживущими ветками, реже GitFlow с
developи релизными ветками. Для сервиса, который выкатывается несколько раз в день, GitFlow обычно избыточен; - ревью: merge request с одним-двумя апрувами,
CODEOWNERS, договорённость о размере MR; - CI:
gofmt,go vet,golangci-lint,go test -race, сборка образа. Мерж только при зелёном пайплайне; - выкладка: кто и как часто деплоит, есть ли canary или feature-флаги, как катятся миграции базы, чтобы старая и новая версия сервиса работали с одной схемой;
- после релиза: дежурства, алерты, постмортемы без поиска виноватых.
Приводите свои цифры: сколько живёт MR до мержа, сколько раз в неделю выкатываетесь, сколько занимает откат.
Если спрашиваете вы, уточняйте то же самое: кто деплоит, есть ли on-call и как он оплачивается, сколько ждут ревью. Ответ «у нас Agile» без подробностей часто означает, что процесса нет.
Где спотыкаются
Пересказывают Scrum Guide вместо своего опыта. Интервьюеру не нужно определение спринта, ему нужно, как это было у вас и что работало плохо.
Путают методологию управления задачами и git-флоу. Scrum ничего не говорит о ветках, а trunk-based ничего не говорит о спринтах, это разные уровни.
Не могут объяснить смысл шага. Например, называют go test -race в CI, но не знают, что детектор ловит только гонки, которые реально случились во время прогона, поэтому без тестов на конкурентный код он почти ничего не проверяет.