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

время чтения: 5 мин

Как оценить свои рабочие задачи с помощью story points: объяснения на котиках

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

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

Введение

В роли 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.

Очень популярная шкала оценки — последовательность Фибоначчи. Для достижения целей оценки она несколько модифицируется и часто начинается с 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?». Ответ: мы никогда не знаем, является ли какая-либо задача ровно в 2 раза больше/меньше другой.

Давайте теперь потренируемся со story points. Для этого упражнения я предлагаю взять пользовательские истории с одинаковым контекстом, но разным набором условий.

Примеры:

  1. Как любителю кошек, мне нужно гладить кошку каждый день, чтобы быть счастливым. Дано: я не владелец кошки.
  2. Как любителю кошек, мне нужно гладить кошку каждый день, чтобы быть счастливым. Дано: я владелец кошки.
  3. Как любителю кошек, мне нужно гладить кошку каждый день, чтобы быть счастливым. Дано: я владелец кошки. Сейчас я в Польше. Моя кошка в Украине.
  4. Как любителю кошек, мне нужно гладить кошку каждый день, чтобы быть счастливым. Дано: я владелец кошки. Кошка живет со мной в моем доме.
  5. Как любителю кошек, мне нужно гладить кошку каждый день, чтобы быть счастливым. Дано: я владелец кошки. Кошка живет со мной. Сейчас она сидит у меня на коленях.

На первом этапе необходимо решить, какая пользовательская история наиболее понятна и легко выполнима для вас и вашей команды, и присвоить ей наименьшее значение, равное 0,5 story points. Какую задачу можно оценить таким образом? Ту, которая имеет наименьший уровень неопределенности и требует минимальных усилий: Как любителю кошек, мне нужно гладить кошку каждый день, чтобы быть счастливым. Дано: я владелец кошки. Кошка живет со мной. Сейчас она сидит у меня на коленях.

А самым сложной задачей из представленных вариантов будет гладить кошку, если ее нет. Таким образом, я присваиваю этой истории 21 story point.

Надеюсь, приведенные примеры помогли вам разобраться в сути story points и методике оценки.

Мнения, выраженные в статьях на сайте, принадлежат исключительно авторам и могут не совпадать с мнением редакции или участников Anywhere Club.