Сторіпоїнти — це відносні одиниці вимірювання складності завдань у гнучких методологіях розробки. На відміну від годин, сторіпоїнти враховують не лише час, але й складність, ризики та невизначеність завдання. За даними Scrum.org, 2023, команди, які використовують відносну оцінку в сторіпоїнтах, на 25% рідше зривають спринтові дедлайни порівняно з командами, що оцінюють у годинах.
Головне
Сторіпоїнти — це метрика складності завдання, яка використовується в Scrum та інших Agile-методологіях. Команда оцінює кожне завдання не в годинах, а у відносних одиницях: «це завдання вдвічі складніше за еталонне». Такий підхід нівелює різницю в швидкості різних розробників і фокусується на складності.
Поняття сторіпоїнтів виникло на початку 2000-х років разом із популяризацією Scrum. Одним із перших метод описав Рон Джеффріс у рамках Extreme Programming (XP). Ідея полягала в тому, щоб відійти від оцінки в «людино-годинах», яка завжди неточна, до відносної складності, яку команда визначає колективно. Зараз сторіпоїнти — стандарт індустрії для Agile-команд.
При оцінці в сторіпоїнтах команда враховує три фактори: обсяг роботи (кількість коду, екранів, логіки), складність (технічні виклики, нові технології) та невизначеність (неясні вимоги, ризики). Один сторіпоїнт може означати «просте завдання без ризиків», а 8 — «складне завдання з високою невизначеністю».
Вибір шкали сторіпоїнтів впливає на точність оцінки та зручність планування. Найпопулярніша шкала — послідовність Фібоначчі, але є й альтернативи.
| Шкала | Значення | Переваги | Недоліки |
|---|---|---|---|
| Фібоначчі | 1, 2, 3, 5, 8, 13, 21 | Природне збільшення розкиду на великих завданнях | Складна для нових команд |
| Лінійна | 1, 2, 3, 4, 5 | Проста та зрозуміла | Немає розкиду для великих завдань |
| Степенева | 1, 2, 4, 8, 16, 32 | Максимальний розкид на великих завданнях | Великі завдання важко відрізнити |
| T-Shirt | S, M, L, XL | Швидка груба оцінка | Неточна, потрібна конвертація |
Послідовність Фібоначчі вибрана не випадково. Різниця між 1 та 2 мінімальна (50%), а між 13 та 21 — значна (62%). Це відображає реальність: маленькі завдання оцінюються точніше, великі — з більшим розкидом. Коли завдання оцінюється в 21 сторіпоїнт, команда розуміє: «ми не знаємо, скільки це займе, але точно більше 13». Шкала Фібоначчі запобігає хибній точності.
Щоб шкала працювала, команда домовляється про еталон: «завдання X — це 1 сторіпоїнт». Зазвичай еталоном вибирають просте, добре знайоме завдання: «додати текстове поле на екран» або «виправити баг типу typo». Всі інші завдання оцінюються відносно еталона. Без еталона сторіпоїнти втрачають сенс — кожен розуміє одиницю по-своєму.
Velocity (швидкість команди) — середня кількість сторіпоїнтів, яку команда закриває за один спринт. Це ключова метрика для прогнозування термінів проекту.
Velocity рахується за завершеними завданнями: сумуються сторіпоїнти всіх завдань, які команда встигла доробити (definition of done виконаний). Незавершені завдання не враховуються. Для точності береться середнє за останні 3-5 спринтів. Наприклад, якщо команда закрила 20, 22, 18 та 24 сторіпоїнти за останні 4 спринти, velocity = 21 сп.
Знаючи velocity та загальний обсяг беклогу в сторіпоїнтах, можна прогнозувати кількість спринтів до релізу. Наприклад, якщо в беклозі 210 сторіпоїнтів, а velocity = 21, знадобиться 10 спринтів. Це грубий прогноз, який уточнюється в міру роботи. Важливо: velocity — це середнє, а не зобов'язання. Плануйте по нижній межі (18 сп), а не по середній.
Velocity не можна підвищити наказом — це симптом здоров'я процесів. Стійке зростання velocity досягається через: зниження технічного боргу, покращення процесів код-рев'ю, скорочення контекстних перемикань, автоматизацію тестування та CI/CD. Важливо: velocity різних команд не можна порівнювати — кожна команда визначає сторіпоїнти по-своєму.
У сторіпоїнтів та годин різні цілі, і вибір між ними залежить від контексту. Досвідчені команди використовують обидва підходи для різних завдань.
Сторіпоїнти незамінні для планування спринтів: вони не залежать від того, хто буде робити завдання. Junior може робити 2 сп за день, senior — 4 сп, але оцінка завдання залишається 2 сп для обох. Сторіпоїнти дозволяють відстежувати командну продуктивність, не порівнюючи розробників. Це знижує політичний тиск і покращує атмосферу в команді.
Години потрібні для зовнішніх зобов'язань: контракти, кошториси, звіти для замовника. Клієнт хоче знати не «8 сторіпоїнтів», а «3 тижні». Для конвертації сторіпоїнтів у години використовується historical conversion rate: команда знає, що 1 сп = приблизно 4 години роботи. Конвертація повинна бути прозорою та заснованою на даних, а не на здогадках.
Багато команд використовують комбінований підхід: завдання оцінюються в сторіпоїнтах для планування спринту, а потім менеджер конвертує їх у години/дні для зовнішньої звітності. Важливо не змішувати дві системи в одному процесі: або ви оцінюєте в сторіпоїнтах і виводите час із velocity, або оцінюєте в годинах безпосередньо.
Впровадження сторіпоїнтів часто супроводжується помилками, які зводять нанівець переваги відносної оцінки. Ось найпоширеніші з них.
Найпоширеніша помилка — команда домовляється: «1 сп = 4 години». У цьому випадку сторіпоїнти втрачають сенс і перетворюються на години з іншою назвою. Сторіпоїнти мають бути відносними, не прив'язаними до часу. Якщо завдання А вдвічі складніше за завдання Б, воно отримує 2 сп, незалежно від того, скільки годин на нього піде.
Коли завдання оцінюють після його виконання — це не оцінка, а констатація. Сторіпоїнти мають призначатися до початку роботи, в момент максимальної невизначеності. Post-factum оцінка спотворює velocity і не дає користі для планування. Більше того, вона створює хибне відчуття точності.
Порівняння velocity команди A та команди B — безглузда вправа. Кожна команда визначає еталон і шкалу по-своєму. Для однієї команди 1 сп — це просте завдання на годину, для іншої — на день. Порівнювати можна лише velocity однієї команди в динаміці: зростає вона чи падає.
Коли різні завдання з однаковою складністю отримують різні сторіпоїнти, а складніші — менше, шкала ламається. Команда повинна регулярно калібрувати шкалу: раз на 3-6 спринтів переглядати ретроспективно, наскільки оцінки відповідали реальній складності. Це покращує консистентність оцінок.
Часто задавані питання
У сторіпоїнтів немає фіксованого еквівалента в годинах. Це відносна одиниця: 1 сп = складність еталонного завдання. Для конвертації в години використовуйте historical conversion rate вашої команди: розділіть середню кількість відпрацьованих годин за спринт на velocity. Зазвичай 1 сп = 4-8 годин, але це індивідуально для кожної команди.
Так, сторіпоїнти можна використовувати в Kanban, але з застереженнями. У Kanban немає фіксованих спринтів, тому velocity рахується не за спринт, а за тиждень або місяць. Kanban-команди часто використовують замість сторіпоїнтів Cycle Time — час проходження завдання від початку до кінця. Вибір залежить від специфіки команди.
Якщо оцінки розходяться (один дає 3 сп, інший — 13), це сигнал, що завдання погано розуміють. Декомпозуйте завдання на більш дрібні частини. Обговоріть, які ризики та невизначеності бачать різні розробники. Якщо завдання велике — оцініть його як Spike (дослідження на 2-4 дні) замість сторіпоїнтів.
Перехід займає 3-6 спринтів. Почніть з вибору шкали (Фібоначчі — safest choice) та визначення еталонного завдання. Проведіть 2-3 Planning Poker сесії. Після кожного спринту рахуйте velocity. Не конвертуйте сторіпоїнти в години — дайте команді звикнути до нової системи. Через 3 спринти ви побачите, наскільки покращилося планування.
Ні, оцінка не змінюється. Сторіпоїнти — це попередня оцінка складності, зроблена до початку роботи. Після виконання завдання оцінка залишається тією ж, навіть якщо реальні трудозатрати відрізнялися. Зміна оцінки post-factum спотворює статистику та позбавляє сенсу прогнозування. Аналізуйте розбіжність на ретроспективі, але не змінюйте оцінку заднім числом.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також