В понедельник менеджер спрашивает: «Сколько тебе нужно на оплату бонусами?» Вы прикидываете в голове: открыть корзину, включить списание, посмотреть сумму — ну, день. Менеджер записывает: проверка закончится во вторник.
Во вторник она не закончена, и в среду тоже: разработчик чинил округление, пришла новая сборка, и всё, что вы проходили в понедельник, пришлось проходить заново. В четверг выясняется, что бонусы ломают возврат заказа, — ещё полдня. Вы работали четыре дня и не потратили впустую ни часа, но слово, сказанное в понедельник, оказалось неправдой, и по нему планировали выпуск.
Сверху — обещание: один день, и он покрывает ровно одну строку из восьми. Ниже то, что уходит на задачу на самом деле: разбор требования, запись проверок, данные, первый проход, оформление дефектов, три возврата сборки после починок, регресс вокруг и отчёт. Пунктир — граница обещанного дня: восемнадцать часов работы переезжают её втрое.
«Проверю за день»: день — это один проход
Когда вы отвечаете «день», в голове проигрывается короткий фильм: заходите в магазин, собираете заказ, включаете списание, смотрите на сумму. Фильм длится минуты, работа по нему — часы, и на один проход дня действительно хватит. Только проверка на этом не заканчивается.
Дефекты — норма: каждый надо воспроизвести ещё раз, описать, приложить снимок экрана, указать сборку — 15–20 минут на штуку. После починки приходит новая сборка, и её проходят заново: правка округления трогает сумму заказа, а сумма — это и оплата картой, и письмо покупателю, и возврат. Сколько будет возвратов, заранее неизвестно, но прикидка работает: простая функция — проход с небольшим, средняя — два, денежная — три и больше. Плюс начало и хвост: прочитать требование, разложить на проверки, заказать данные, а в конце записать результат. Так что «день» — это оценка одного прохода по счастливому пути: посчитали одну строку из восьми.
Оплата бонусами: 18 часов по частям
Посчитаем настоящую задачу: BON-7 — бонусами оплачивается не больше половины суммы заказа, 1 бонус = 1 ₽. Проверок вышло 18: списание при оформлении, частичное списание, ограничение половины суммы, возврат бонусов при отмене.
- Разобрать требование — 2 ч. Задача, макет, вопрос аналитику: бонусов больше половины заказа — округляем вверх или вниз (ревью требований)?
- Записать 18 проверок — 3 ч. Чек-лист плюс четыре подробных кейса на денежные случаи; число проверок и есть масштаб задачи.
- Подготовить данные — 2 ч. Покупатель с 500 бонусами, заказы на 600 ₽, 3400 ₽ и 12 000 ₽ (разные классы по ограничению), тестовая карта. Данные для отмены готовит другая команда: не ваши часы, но ваш срок.
- Первый проход — 4 ч. Восемнадцать проверок по 12 минут, включая время понять, дефект это или вы не так собрали.
- Завести дефекты — 1,5 ч. Ожидаем около четырёх баг-репортов по 20 минут плюс разговоры с разработчиком.
- Три возврата сборки — 3 ч. Округление, ограничение половины, возврат бонусов — и каждый раз перепроверяем починенное и соседнее.
- Регресс вокруг — 1,5 ч. Оплата картой, сумма в корзине, письмо с чеком: соседей выбирают по связи, а не «на всякий случай».
- Отчёт и разговор о выпуске — 1 ч.
Итого 18 часов чистой работы — та самая задача, на которую обещали день: он целиком ушёл бы на «первый проход», после которого проверка только начинается. Зато разложенную оценку обсуждают по строкам: убрать регресс вокруг — минус полтора часа и риск сломать оплату картой; уменьшить число возвратов — договориться, что дефекты чинят пачкой.
Часы работы и дни в календаре — разные числа
Сложили часы, получили 18 — и легко сказать «это два дня с небольшим». Но в рабочий день помещаются ещё собрания, вопросы в чате, помощь коллеге: на задачу уходит не больше шести часов из восьми, так что 18 часов — это три рабочих дня.
Отсюда приём: называйте часы, а дату считайте отдельно. Часы — про объём работы, дата — про срок, и в неё входит чужое: когда придёт сборка, когда приготовят покупателя для отмены, сколько ждать аналитика. Звучит так: «Работы на 18 часов, это три моих дня; начинаю, когда сборка 4.18 встанет на стенд; данные для отмены нужны к среде, иначе эта часть уезжает».
Откуда берутся числа: аналогия и три точки
Откуда взялись «4 часа на первый проход» и «20 минут на дефект»? Из прошлого раза: в факте похожей задачи уже вшито всё, что интуиция забывает, — ваша скорость, медленный стенд, привычка команды чинить дефекты пачками. Чтобы оценка по аналогии работала, нужны записанный факт (что за задача, сколько назвал, сколько вышло, из-за чего разошлось) и похожесть по признакам, а не по теме: не «тоже про оплату», а столько же экранов и ролей, тот же порядок числа проверок, так же трогаются деньги. Дальше поправка вслух: «в прошлый раз ушло 14 часов, здесь на пять проверок больше и добавился возврат — значит около 18». Десяток записей покажет и ваш перекос вроде «занижаю в полтора раза».
Одно число не говорит, насколько вы в нём уверены: «три дня» после получаса разбора и «три дня» с потолка звучат одинаково. Поэтому дают три: оптимистично — 2 дня (дефектов два, оба чинятся одной сборкой), реалистично — 3, пессимистично — 4,5 (данные приезжают в четверг, один дефект блокирующий). Средневзвешенная и есть оценка по трём точкам: крайние по разу, реалистичная четырежды, делим на шесть — (2 + 4×3 + 4,5) / 6 ≈ 3,1 дня. Команде называют реалистичное число и условие, которое уводит к пессимистичному: «Три дня; если данные для отмены не готовы к среде — четыре с половиной», и этот риск попадает в риски тест-плана. Разброс вдвое — сигнал, что вы чего-то не знаете о задаче, и час разбора тут полезнее формулы.
Запас на неизвестное — и чем он не является
Оценку делают, когда о задаче известно меньше всего, и что-нибудь вылезает всегда: не дефект, так занятый стенд, не стенд, так поменявшееся в среду требование. Эту разницу закрывает запас — он про неизвестное, которое существует статистически, а не про «вдруг я буду медленным».
Размер зависит от знакомства с территорией: на функции, которую проверяли трижды, хватает 10 %, на незнакомой области с новым платёжным шлюзом — 30–40 %, и чем дальше горизонт, тем больше запас. Главное — он должен быть виден: спрятанный («скажу четыре дня, хотя посчитал три») ломает доверие так же, как хронический оптимизм, — команда начинает делить ваши числа на полтора. Видимый звучит условием: «Три дня; если вылезет что-то, чего мы сейчас не видим, — три с половиной». И закладывают его один раз: заложили возвраты и дефекты с запасом, а потом умножили итог на полтора — посчитали неизвестное дважды.
Разговор о сроке: назвали за вас или он поехал
«Выпуск в пятницу, у тебя два дня» — дата объявлена, и ваши восемнадцать часов её не изменят. «Я не успею» не даёт менеджеру ни одного решения; полезно другое: «За два дня пройду списание бонусов и ограничение половины суммы — 12 проверок из 18. Возврат бонусов при отмене и регресс корзины останутся непроверенными; отмена — денежный сценарий, я бы её не оставлял». Названо, что будет сделано, что не будет и чем грозит: решать всё равно менеджеру, но теперь с открытыми глазами. Порядок сокращения задаёт риск: сначала деньги, необратимые действия и частые сценарии, в последнюю очередь редкие и косметические. И договорённость записывают — через неделю никто не вспомнит, что отмену решили не смотреть.
Свою же оценку менять по ходу нормально, молчать до последнего дня — нет. Пересогласование честно в двух случаях: изменился объём («посмотри заодно доставку» — ответ не «нет» и не «ладно», а «доставка вместо чего или срок двигается?») и вскрылось неизвестное, на которое не хватило запаса. Говорят числами: «Из 18 проверок пройдено 11, четыре по отмене стоят из-за блокирующего дефекта; придёт починка сегодня — закончу завтра к обеду». Тогда у команды есть выбор: подключить второго человека, отложить часть, выпускать без отмены. И не подгоняйте работу под названное число: ускоряясь ради «двух дней», вы проверяете хуже, а записанный факт выходит нечестным.
Коротко
- «Проверю за день» — оценка одного прохода по счастливому пути; в работу входят ещё разбор требования, запись проверок, данные, дефекты, перепроверки, регресс вокруг и отчёт.
- Число возвратов сборки — решение, а не факт: простая функция — проход с небольшим, средняя — два, денежная — три и больше.
- На задачу уходит не больше шести часов из восьми: 18 часов работы — это три рабочих дня. Называйте часы, дату считайте отдельно.
- Аналогия требует записанного факта «назвал — вышло — из-за чего разошлось» и похожести по признакам, а не по теме.
- Три точки показывают ещё и уверенность; большой разброс между крайними — нехватка знаний о задаче.
- Запас виден и заложен один раз: 10 % на знакомое, 30–40 % на незнакомое. На срок сверху отвечают не «не успею», а «вот это успею, вот это останется без проверки».
Что почитать дальше
- Тест-план и тест-сьюты — откуда берётся список того, что надо посчитать, и как записывают риски.
- Чек-листы и тестовые данные — как разложить функцию на проверки и что входит в подготовку данных.
- Отчёт о результатах тестирования — числа, которыми меряют факт и пересогласовывают срок.
- QA в Agile и Scrum — где оценка звучит каждую неделю и как попадает в план спринта.