Как происходит декомпозиция задач и оценка
Что проверяют
Умеете ли вы разбить фичу мобильного приложения на задачи и дать оценку, которой можно верить, с учётом того, что релиз в iOS не мгновенный. Следом обычно спрашивают, что делать, если оценка оказалась сильно заниженной.
Как отвечать
Декомпозицию стройте от пользовательских сценариев, а не от слоёв:
- экраны и навигация: какой модуль, какие переходы, диплинки;
- данные: сетевой слой, модели, кеш или хранение в Core Data или SwiftData, офлайн-режим;
- состояния экрана: загрузка, пустой список, ошибка сети, нет доступа к камере или геолокации;
- платформенные мелочи: тёмная тема, Dynamic Type, VoiceOver, iPad, локализация, минимальная версия iOS;
- выпуск: фичефлаг или remote config, сборка в TestFlight, App Review, phased release.
Каждая задача проверяется отдельно и помещается в один pull request.
Про оценку:
- единицы: story points через planning poker или T-shirt sizing в команде, часы и дни для личного плана. Story points отражают сложность и неопределённость, их не переводят напрямую в часы;
- диапазон вместо точки: «от трёх до пяти дней» честнее, чем «четыре дня». Помогает трёхточечная оценка: оптимистичная, реалистичная, пессимистичная;
- неизвестное: незнакомый фреймворк или сложная анимация сначала идут в spike, оценка даётся после него;
- буфер на выпуск: ревью в App Store обычно занимает от нескольких часов до суток, но может закончиться отказом, а исправление не доедет до пользователей мгновенно, поэтому риски закрывают флагами.
Если оценка поплыла, сообщите сразу, как это поняли, и предложите варианты: урезать объём, сдвинуть срок, выкатить часть под флагом. Приведите свой пример с реальными цифрами. Если оценивали не вы, расскажите, как сверяли свою часть с оценкой команды.
Где спотыкаются
Оценивают только вёрстку и логику, забывая состояния ошибок, доступность и ревью в App Store.
Называют одну цифру без оговорок, а потом молча перерабатывают, вместо того чтобы вовремя пересогласовать объём.
Приравнивают story points к часам. Смысл относительной оценки теряется, и команда начинает спорить о минутах.