Процессы: Scrum · Process: Scrum · урок 2 · 13 мин

Scrum в ML-работе, Kanban и оценки

Scrum for ML work, Kanban and estimation

ТемыScrum и процессы

Зачем

После урока ты объяснишь story points, velocity и Kanban без ошибок, дашь прогноз сроков диапазоном и покажешь, как планировать ML-работу с неизвестным исходом внутри двухнедельных Sprint. Это вопросы «how do you plan uncertain AI work?» и «what's your Definition of Done for an AI feature?», которые задают AI-инженерам на поведенческом и техническом раундах.

Оценка: story points и planning poker

Story points — относительная оценка объёма работы с учётом сложности, риска и неопределённости, а не часы. Команда сравнивает элемент с уже сделанными: «это вдвое больше той задачи». Людям легче сказать «втрое больше», чем «13,5 часа». Оценивают те Developers, которые будут делать работу.

Частый приём — planning poker. Каждый молча выбирает карту (типичная колода: 0, 1, 2, 3, 5, 8, 13, 20, 40, 100), все открывают одновременно, самый высокий и самый низкий объясняют свои числа, команда оценивает ещё раз. Смысл — разговор. Одновременное открытие убирает anchoring (привязку к первому названному числу), а разброс вскрывает скрытую работу: например, что для второго языка нужен отдельный eval-набор.

Напомню из прошлого урока: ни story points, ни velocity в Scrum Guide нет, это дополнительные практики.

Velocity и прогноз диапазоном

Velocity — сумма points полностью сделанных за Sprint элементов; наполовину сделанное считается как 0. Это инструмент прогноза для самой команды.

Пример. За три двухнедельных Sprint команда сделала 31, 27 и 35 points, в среднем 31. До выпуска в Backlog осталось 124 points. Прогноз: 124 / 31 = 4 Sprint. Диапазон по лучшему и худшему Sprint: 124 / 35 ≈ 3,5 и 124 / 27 ≈ 4,6 Sprint, то есть 7–10 недель. Прогноз называют диапазоном, а не датой.

Velocity — не мера продуктивности. Шкала у каждой команды своя, поэтому сравнивать команды бессмысленно. А цель «поднять velocity с 28 до 40» решается раздуванием оценок или срезанием проверок: прогноз теряет смысл, качество падает. Ron Jeffries, который, по его собственным словам, возможно, придумал story points, пишет, что «comparing teams on quality of estimates or velocity is harmful». В AI-команде падение velocity часто честное: в DoD добавили eval gate (автоматическую проверку качества, без которой изменение не проходит), и каждый элемент стал тяжелее.

Burndown chart показывает остаток работы по дням Sprint. Burnup chart показывает две линии — сделано и общий объём, поэтому рост объёма на нём виден. Для AI-работы, где объём растёт после экспериментов, burnup честнее.

Неопределённое — в timebox, а не в points

Часть ML-Backlog — это вопросы, а не features: дотянет ли маленькая модель до качества большой? Такую работу не оценивают в points, будто исход известен. Её оформляют как spike (короткое исследование) или timeboxed experiment (эксперимент с жёстким бюджетом времени). Шаблон:

Главная фраза: «An experiment that answers the question is done, even if the answer is no». Sprint Goal для такой работы формулируют как решение или пригодный Increment, а не обещание «модель достигнет 90%»: этим числом никто не управляет. Гайд прямо включает в работу Scrum Team «experimentation, research and development».

Definition of Done для AI-increment

Обычный DoD — код проверен, тесты пройдены, выложено на staging. Для AI-increment добавляют проверки, которые можно запустить:

Пункт DoD Как проверяется
Eval suite проходит пороги, записанные до изменения eval-job в CI, отдельные числа по языкам
Safety и policy: ноль новых провалов блокирующая проверка, не усредняется с остальным
Версии записаны: модель, prompt, tools, eval data, harness manifest в репозитории, run id в отчёте
Model card (карточка модели) обновлена review в pull request
Traces и мониторинг включены trace виден на staging, оповещения настроены
Rollback проверен откат на staging сделан хотя бы раз

Где живёт гарантия: DoD в wiki — совет, а CI gate, который блокирует merge при провале eval, — гарантия. Ещё два правила. Режь работу вертикально: один intent (тип запроса) от вопроса до ответа на одном языке, с eval и передачей человеку, а не «Sprint 1 — данные, Sprint 2 — модель, Sprint 3 — интерфейс». На Sprint Review показывай eval dashboard с провалами, а не три удачных диалога: это и есть transparency.

Если внешняя проверка (model risk, security) длиннее Sprint, отдели «Done» от «released»: Increment прошёл DoD и стоит в shadow mode, пока идёт проверка, а пакет для проверяющих — отдельный элемент Backlog.

Kanban: поток вместо Sprint

Kanban по Kanban Guide (версия 2025.5) — «a strategy for optimizing the flow of value through a process». Три практики: определить и показать workflow (поток работы), активно управлять элементами в потоке, улучшать workflow. Фиксированных Sprint нет. Четыре метрики: WIP (work in progress — начато и не закончено), throughput (закончено за единицу времени), work item age (сколько идёт незаконченный элемент), cycle time (от начала до конца). SLE (service level expectation) — прогноз срока с вероятностью, по истории: «85% запросов на разметку закрываются за 6 дней».

Little's Law (закон Литтла из теории очередей; в самом Kanban Guide его нет): средний cycle time ≈ WIP / throughput. В работе 12 элементов, команда заканчивает 4 в неделю — средний элемент идёт около 3 недель. Хочешь 1,5 недели при том же throughput — держи WIP около 6. Меньше начатого параллельно — быстрее каждое дело.

Ситуация Лучше
Продуктовая цель на 2–4 недели, stakeholders хотят регулярно видеть Increment Scrum
Поток разнородных заявок: инциденты, разметка, поддержка платформы Kanban
Продуктовой команде мешают очереди и много начатого Scrum с Kanban-практиками (часто зовут Scrumban)
Исследование с неизвестным исходом timeboxed experiments внутри любого из двух

Схема

Термины · Key terms

story points
относительная оценка объёма работы, не часы
planning poker
оценка картами с одновременным открытием
velocity
сумма points полностью сделанных за Sprint элементов
burnup chart
график сделанного и общего объёма
spike
короткое исследование с вопросом и решением в конце
decision rule
правило решения, записанное до эксперимента
vertical slice
срез через все слои, дающий пользователю ценность
WIP (work in progress)
сколько элементов начато и не закончено
cycle time
время от начала до конца одного элемента
throughput
сколько элементов закончено за единицу времени
SLE (service level expectation)
прогноз срока элемента с вероятностью
Little's Law
cycle time ≈ WIP / throughput

Сделай сам

Напиши spike по шаблону урока для своего вопроса: например, «заменит ли reranker на 0,6B параметров текущий на нашем наборе из 100 вопросов». Пять строк: Question, Timebox, Method, Decision rule, Done when. Правило решения — с числами.

Обсуди с тьютором: покажи spike и спроси, как результат мог бы выглядеть хорошим при ложном утверждении.

Проверь себя · ответ под вопросом

1Почему velocity нельзя делать целью?
Цель «больше points» проще всего достичь раздуванием оценок или срезанием проверок. Тогда прогноз теряет смысл, а качество падает. Шкала у каждой команды своя, поэтому и сравнение команд по velocity бессмысленно.
2Команда за три Sprint сделала 20, 30 и 25 points, осталось 100. Какой прогноз?
Среднее 25, прогноз 100 / 25 = 4 Sprint. Диапазон: 100 / 30 ≈ 3,3 и 100 / 20 = 5 Sprint, то есть при двухнедельных Sprint около 7–10 недель. Называть диапазон, а не дату.
3Эксперимент показал, что маленькая модель не подходит. Провален ли Sprint?
Нет, если у эксперимента был вопрос и правило решения до старта: вопрос закрыт дёшево, это знание. Sprint Goal формулировался как решение, а не как «модель достигнет X». На Review показывают числа и решение, Product Owner перестраивает Backlog.

Interview questions · US / UK

1How do you plan AI work with an uncertain outcome inside two-week Sprints?
Strong answer: split predictable work (normal stories, sizing) from research; research becomes a time-boxed experiment with a written question, fixed budget and a decision rule set before running; done when the question is answered, even with a no; Sprint Goal is a decision or a usable increment, never "the model reaches 90%"; no story points on research.
2What's your Definition of Done for an AI or agent feature?
Strong answer: runnable checks, not adjectives; eval thresholds written before the change, reported per language; zero new safety failures, blocking and never averaged; versions of model, prompt, tools, data and harness recorded; model card updated; traces and alerts live; rollback rehearsed; the eval job in CI blocks the merge.
3Velocity dropped from 40 to 28 points and your manager wants it back to 40. What do you say?
Strong answer: velocity is a planning signal, not a productivity score; diagnose first (research that doesn't size well, a stricter DoD such as a new eval gate, blockers) using carried-over items and time in each column; explain that a velocity target invites inflated estimates or cut checks; propose outcome measures instead: Sprint Goals met, defects reaching customers, cycle time.

Ключевые фразы · Say it aloud

Материалы