Как организованы процессы разработки в вашей команде iOS разработчиков?
Что проверяют
Как вы работали в команде и понимаете ли, зачем нужен каждый элемент процесса. Джун перечисляет встречи, сильный кандидат объясняет, как код доходит от задачи до App Store и что происходит, когда в релизе нашли краш. Следом обычно спрашивают, что бы вы в этом процессе поменяли.
Как отвечать
Идите по пути задачи и называйте свою роль:
- планирование: спринты или канбан, кто оценивает задачи, как в них попадают дизайн и API от бэкенда;
- ветки и ревью: trunk-based или GitFlow, сколько апрувов нужно, что до ревьюера проверяют SwiftLint и SwiftFormat;
- сборка и тесты: CI на Xcode Cloud, GitHub Actions с macOS-раннерами, Bitrise или GitLab CI. Тесты на XCTest или Swift Testing, снапшот-тесты для UI. Подпись и выкладку часто берёт на себя fastlane, сертификаты хранят через
match; - релиз: релизный поезд с фиксированным ритмом, сборки в TestFlight для QA, ревью App Store, phased release, который растягивает автообновление на семь дней;
- после релиза: Crashlytics или Sentry, доля сессий без крашей, фича-флаги и remote config. Откатить бинарник в App Store нельзя, поэтому выключить сломанную фичу флагом быстрее, чем ждать хотфикс.
Нужны свои цифры: сколько человек, как часто релиз, что вы сами настроили или улучшили. Если процесса почти не было, скажите честно и опишите, что делали сами: например, собирали релизы вручную, а потом завели CI.
Если этот вопрос задаёте вы работодателю, слушайте конкретику: частоту релизов, долю автотестов, кто отвечает за сертификаты и сколько живёт пулл-реквест.
Где спотыкаются
Перечисляют «Agile, Jira, Slack, Confluence» и на этом останавливаются. Названия инструментов ничего не говорят о том, как вы работали.
Описывают идеальный процесс, которого не было, и сыплются на первом уточнении. Или, наоборот, ругают текущую команду.
Не знают специфики мобильного релиза: кто выпускает сборку, что делать с крашем в продакшене, почему хотфикс нельзя выкатить за минуты, как на бэкенде.