Прокачайся в код-рев’ю: для перших 50 учасників — курс безкоштовний

час читання: 5 хв

Як оцінити свої робочі завдання за допомогою story points: пояснення на котиках

Автор статті — Project Manager в EPAM Ольга Руденок.

Project Manager Ольга Руденок

Вступ

Я працюю менеджером проєктів понад 4 роки. За час своєї кар’єри я працювала з різними проєктами, методологіями та фреймворками, комунікувала з фахівцями різних ролей і рівнів. Однією з найбільших проблем майже у всіх моїх командах була оцінка задач в Story Points.

Запитання, які я чула від проєкту до проєкту: «Навіщо нам story points, якщо ми можемо просто оцінити ці задачі в годинах?», «Я можу точно оцінити час у годинах чи хоча б у днях, так навіщо тоді story points?» тощо. Я намагалася знайти спосіб, щоб переконати колег в тому, що оцінка у відносних одиницях виміру є більш ефективною. Врешті-решт я дізналася за допомогою яких прийомів та вправ можна навчити команди використовувати story points, і нижче я поділюся з вами своїми знахідками.

Ця стаття буде корисною тим, хто ніколи не працював зі story points, а також тим, хто має певний досвід, але все ще має труднощі з їх використанням. Стаття містить трохи теорії, але основна мета — дати практичні вправи, які допоможуть зрозуміти принципи оцінки в story points.

Що таке story points

Почнемо з визначення. Story points — це:

  • метрика, яка використовується в Agile Project Management і розробці для оцінки складності реалізації заданої користувацької історії, або
  • абстрактна міра зусиль, необхідних для реалізації користувацької історії.

Простіше кажучи, story point — це число, яке вказує на рівень складності історії.

Існує формула, за якою можна описати story points:

Формула для story points

Переваги використання story points

Важливо пам’ятати, що story point — це відносна одиниця вимірювання. Це не те ж саме, що години чи дні, які є абсолютними одиницями вимірювання.

У випадку оцінки за допомогою часу не враховують складність і ризики. Окрім того, особиста оцінка завдання кожним членом команди може варіюватися залежно від його рівня, розуміння завдання й попереднього досвіду виконання аналогічних завдань.

Story points використовуються в Agile-фреймворках, тому що вони:

  • підвищують точність оцінки,
  • скорочують час на планування,
  • допомагають точніше спрогнозувати дати релізів і
  • дають командам змогу покращити продуктивність.

Практичні завдання

Нижче наведений практичний сценарій, який допоможе вам краще зрозуміти суть story points. Ви також можете використовувати його, щоб допомогти своїм командам розібратися в цьому.

Вправа 1

Намалюйте горизонтальну лінію й спробуйте розмістити на ній кілька завдань — від найменшого до найбільшого — з урахуванням зусиль, необхідних для виконання кожного завдання, його складності та всіх можливих ризиків у процесі виконання.

Горизонтальна лінія для розміщення завдань

Обирайте для цієї вправи повсякденні, а не технічні завдання. Це особливо важливо, якщо ви збираєтеся попросити свою команду виконати її. Потрібно, щоб усі учасники зрозуміли суть завдання, і розташували завдання в правильному порядку.

Наприклад, завдання можуть бути такими:

Приклади завдань

Мета — зрозуміти принцип відносної оцінки, розташувавши картки відносно одна до одної, а не за точною кількістю годин, днів, тижнів тощо, необхідних для виконання кожного завдання.

У моєму випадку результат виконання цієї вправи такий:

Приклад розміщення завдань на горизонтальній лінії

Цей результат відображає мою особисту точку зору. Але якщо ви працюєте в команді з іншими колегами, вам потрібно обговорювати кожне завдання разом і приймати спільне рішення про його розташування. Наприклад, для мого чоловіка було б легше пофарбувати паркан, ніж приготувати вечерю. Отже, на нашу спільну (а не мою особисту) думку, приготувати вечерю буде трохи важче, а пофарбувати паркан буде трохи легше, що змінює картину:

Приклад розміщення завдань на горизонтальній лінії в залежності від витрачених зусиль

Той самий принцип застосовується до завдань розробки: у вашій команді можуть бути люди з різним досвідом, і мета полягає в тому, щоб прийти до середнього значення складності завдання.

Вправа 2

У вас може бути велика кількість завдань, і при цьому немає потреби в тому, щоб давати кожному з них окрему оцінку. Натомість потрібен метод групування завдань за рівнем складності.

Для цього можна використати підхід із розмірами футболок. Це коли вам дають низку одиниць, що повторюють загальноприйняті розміри одягу: S, M, L та XL. Ви та ваша команда повинні разом вирішити, куди відноситься кожне завдання з попередньої вправи. У моєму випадку результат такий:

Підхід із розмірами футболок

Справа в тому, що різницю між розмірами дійсно видно. Ви не переплутаєте завдання з категорії Large з завданнями з категорії Extra Large, як це могло б статися, наприклад, якби для оцінки завдань у вас було 16 і 17 годин.

У чому перевага такого підходу? Заощадження часу на оцінку. Іноді оцінка може зайняти більше часу, ніж виконання. При цьому ця оцінка не завжди буде відображати реальність.

Вправа 3

Отже, ми підібралися до story points. У розробці програмного забезпечення для попередньої оцінки великих обсягів робіт (наприклад, об'ємного функціоналу) завичай використовують метод із розмірами футболок, а story points використовують для оцінки конкретних історій (менші блоки функціоналу).

Дуже популярна шкала оцінки — послідовність Фібоначчі. Для потреб сфери IT вона дещо модифікується й часто починається з 0,5 або 1:

Послідовність Фібоначчі від 0,5 до 21

Чому саме ця послідовність? З тієї ж причини, з якої використовують метод із футболками: в такому разі краще видно різницю між значеннями. Ви ніколи не сплутаєте 13 і 21, як це можна зробити з 20 і 21. Наприклад, з цієї причини використання наведених нижче послідовностей — не найкраща ідея:

Дві послідовності. Перша-це 1, 2, 3, 4, 5, 6, 7. Друга-це 1, 2, 4, 8, 16, 32, 64

Ми розглянули проблему використання варіанту A, але ви можете запитати: «А що не так із варіантом B?». Відповідь: ми ніколи не знаємо, чи є якесь завдання рівно вдвічі більшим/меншим за інше.

Давайте потренуємося зі story points. Для цієї вправи я пропоную використовувати користувацькі історії з однаковим контекстом, але різним набором даних.

Приклади:

  1. Як любителю котів, мені потрібно гладити кота щодня, щоб бути щасливим. Дано: я не власник кота.
  2. Як любителю котів, мені потрібно гладити кота щодня, щоб бути щасливим. Дано: я — власник кота.
  3. Як любителю котів, мені потрібно гладити кота щодня, щоб бути щасливим. Дано: я — власник кота. Зараз я перебуваю в Польщі. Мій кіт в Україні.
  4. Як любителю котів, мені потрібно гладити кота щодня, щоб бути щасливим. Дано: я — власник кота. Кіт живе зі мною вдома.
  5. Як любителю котів, мені потрібно гладити кота щодня, щоб бути щасливим. Дано: я — власник кота. Кіт живе зі мною. Зараз він сидить у мене на колінах.

На першому етапі потрібно вирішити, яка користувацька історія найбільш зрозуміла для вас і вашої команди, яку з них вам найлегше реалізувати, і присвоїти їй найменше значення, що дорівнює 0,5 story points. Яке завдання можна оцінити таким чином? Те, яке має найменший рівень невизначеності й вимагає мінімальних зусиль: Як любителю котів, мені потрібно гладити кота щодня, щоб бути щасливим. Дано: я — власник кота. Кіт живе зі мною. Зараз він сидить у мене на колінах.

А найскладнішим завданням із наведених варіантів буде гладити кота при тому, що у мене його немає. Таким чином, я присвоюю цій історії 21 story point.

Сподіваюся, наведені приклади допомогли вам розібратися в суті story points й оцінці з їхнім використанням.

Думки, висловлені в статтях на сайті, належать виключно авторам і можуть не збігатися з думкою редакції або учасників Anywhere Club.