Сторипоинты измеряют сложность, а не время 🤔

 Публичный пост
27 августа 2025  3502

История 📜

В 2017 году я впервые стал тимлидом, а в 2019-2022 годах я вёл курсы по тимлидству, параллельно сам проходя нелёгкую трансформацию из инженера в менеджеры. Всего провёл 3 потока. В первую очередь, курсы были нужны мне самому, чтобы структуризировать свои знания, которые я получал в основном из личного опыта и из очень разрозненных источников, так как tlroadmap тогда только формировался. Оказалось, что этот курс был полезен и для других людей.

Один из фундаментальных вопросов, которые меня тогда беспокоили, касался сторипоинтов. Я видел много материалов про то, что сторипоинты должны оценивать сложность, и много материалов про то, что они должны оценивать эффорт, который смешивает сложность и время в одну кучу.

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

Вместе с тем, я до конца так и не мог понять, как можно оценивать сложность задач. Я понимал, как оценивать риски. Но сложность - нет.

Так было пока я не наткнулся на пример в скрам гайде (про мальчика и нейрохирурга, см. дальше). Это дало довольно серьёзную подсказку.

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

Наконец, вся картинка сложилась, когда я стал опираться на цель спринта и интересы бизнеса.

ДИСКЛЕЙМЕР

Всё, что описано ниже, относится к миру розовых пони и молочных рек. Я понимаю, что мы все живём в реальном мире, и сферический скрам в вакууме - это удел небожителей. Тем не менее, я решил опубликовать эту статью, поскольку она, как мне кажется, позволяет глубже разобраться в том, что скрам гайд на самом деле подразумевал под сторипоинтами, и почему они вообще были введены. А это понимание, в свою очередь, позволит более честно взглянуть на ваш SDLC, особенно на ту точку, где разработка соприкасается с бизнесом, и, возможно, как-то улучшить свои процессы.

Строго не рекомендуется показывать эту статью вашему бизнесу, если хотите и дальше иметь возможность осуществлять партизанский рефакторинг и прочие закрытые практики.

Неискоренимая проблема

Многие команды до сих пор путают сторипоинты с временем.

"Я сделую эту задачу примерно за 5 сторипоинтов" — часто можно услышать на груминге. И в этой фразе уже слышно, что человек оценивает время, и приравнивает сторипоинты к человеко-дням (или часам).

На самом же деле, задача на 5 дней может быть оценена в абсолютно любое количество сторипоинтов. Всё зависит от того, насколько она сложная.

Каноничный пример 🧠

Представьте команду из мальчика 7-8 лет и нейрохирурга.

У нас есть две задачи:

  • Сделать несложную операцию на мозг
  • Облизать 1000 марок

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

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

Очевидно, что в этом случае, несмотря на одинаковое время для обеих задач, они будут оценены в разные сторипоинты, поскольку сложность у них разная.

Важный вывод: сторипоинты измеряют не время, а уровень компетенции, необходимый для решения задачи.

Примеры из разработки 💻

Задача 1: Скопировать готовый компонент из другого проекта со схожей архитектурой

  • Время: 4 часа
  • Сторипоинты: 1 sp (рутинная работа, известное решение)

Задача 2: Придумать архитектуру для нового типа компонентов

  • Время: 4 часа
  • Сторипоинты: 13 sp (творческая работа, множество неизвестных)

Задача 3: Написать простой SQL-запрос для отчета

  • Время: 2 часа
  • Сторипоинты: 2 sp (стандартная задача)

Задача 4: Оптимизировать медленный SQL-запрос в продакшене

  • Время: 2 часа
  • Сторипоинты: 8 sp (требует анализа планов выполнения, индексов, производительности)

Задача 5: Изменить цвет кнопки в интерфейсе

  • Время: 30 минут
  • Сторипоинты: 1 sp (простое изменение CSS)

Задача 6: Сделать чтобы нажатие на кнопку не фризило страницу

  • Время: 30 минут
  • Сторипоинты: 5 sp (требует понимания асинхронности и работы с DOM)

Видите парадокс? Задачи с одинаковым временем могут отличаться в сложности в 5-13 раз. Время выполнения не определяет сложность.

Шкала компетенций 📊

  • 1 sp = интерн (тривиальные задачи, которые могут сделать все)
  • 2 sp = джун
  • 3 sp = джун+
  • 5 sp = миддл
  • 8 sp = миддл+
  • 13 sp = сеньор
  • 20 sp = лид/архитектор

Важно: сторипоинты ≠ грейды ⚠️

Шкала компетенций показывает сложность задачи, а не требования к исполнителю. Если вам так психологически комфортнее, то говорите "это джун-задача" вместо "это задача для джуна".

Почему это важно:

  • В скраме команда работает как единое целое, а не как набор отдельных специалистов; если вы работаете по большей части независимо, то и синхронизация эстимаций вам по большому счёту не нужна
  • Задача на 13 sp не означает, что её должен делать только сеньор
  • Джуниоры могут выполнять сложные задачи при должном инвестировании в декомпозицию и дизайн со стороны команды
  • Сеньоры могут брать простые задачи для помощи команде

Неправильно: "Это задача на 13 sp, значит её должен делать сеньор"
Правильно: "Это сложная задача, давайте обсудим, как мы будем её решать"

Важный принцип: Чем более конкретно расписан план реализации задачи, тем проще она становится. Детальная проработка снижает неопределённость и превращает сложную задачу в набор простых подзадач. Даже без декомпозиции очень сложную задачу можно превратить в простую, если написать детальный план имплементации.

Время в скраме ⏰

В скраме время регулируется только одним показателем: длительность спринта (как правило, две недели).

Это ключевой принцип — мы не оцениваем время выполнения отдельных задач. Время уже задано. Мы пытаемся втиснуть в известное время реалистичный объём работ, необходимый для достижения цели за это время.

То есть... Зачем нам тогда сторипоинты, если они не помогают оценивать время?

Сторипоинты нужны для:

  • Сравнения сложности задач между собой и правильного распределения усилий
  • Выбора оптимального подхода к решению проблемы
  • Декомпозиции слишком сложных задач
  • Прогнозирования того, каковы шансы успешно закончить спринт

Они помогают оценивать не время, а объём работ, который команда сможет выполнить за спринт.

Но для этого нам нужно понимать, что именно мы планируем достичь за спринт.

Цель 🎯

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

Цель — это то, что команда планирует достичь за спринт.

И у нас получается следующая картина:

  1. Мы знаем, что нужно сделать
  2. Мы знаем, сколько времени у нас есть

Получается, что во время планирования мы должны выяснить, как мы можем достичь цели за фиксированное время. Вопрос только в том, каким именно путём мы его достигнем.

Именно в этом и заключается основная функция сторипоинтов — они помогают команде найти оптимальный способ достижения цели в рамках ограничений спринта.

Как это работает на практике:

  • Команда видит цель спринта и доступное время
  • Оценивает сложность разных подходов к решению в сторипоинтах
  • Выбирает тот подход, который максимизирует шансы достижения цели при минимальном ущербе качеству
  • При необходимости декомпозирует сложные задачи на более простые

Главная цель сторипоинтов: декомпозиция 🎯

Сторипоинты нужны в первую очередь для декомпозиции задач.

Как сторипоинты помогают принимать решения о декомпозиции:

  • 20+ sp = задача слишком сложная, требует декомпозиции
  • 13 sp = можно попробовать декомпозировать для снижения рисков
  • 8 sp = оптимальная сложность для большинства задач
  • 5 sp и меньше = задачи готовы к выполнению

Практический пример:
Задача "Переписать систему аутентификации" оценивается в 20 sp. Команда понимает, что это слишком сложно, и разбивает на:

  • "Спроектировать новую архитектуру" (8 sp)
  • "Создать базовые компоненты" (5 sp)
  • "Настроить миграцию данных" (5 sp)
  • "Протестировать интеграцию" (3 sp)

Цель этого процесса — разобрать на части сложные задачи и получить набор достаточно простых задач, в которых будет меньше рисков.

В общем, сторипоинты решают задачу  относительной оценки задач по сложности. Зачем это делать? Чтобы сфокусировать усилия по дизайну на тех задачах, которые остаются наиболее непонятными. И, на самом деле, сторипоинты - это не единственный инструмент, который позволяет это сделать.

Процесс оценки ⚡

Сторипоинты нужны для поиска оптимального решения в строго заданных рамках.

Когда и как происходит оценка

Оценка происходит на груминге и незначительно корректируется во время планнинга. Или, если в грумингах нет нужды, осуществляется на планнинге. В обоих случаях в процессе участвует вся команда, что очень сильно помогает с декомпозицией и дизайном. Единственная цель этого процесса - поиск оптимального решения, которое позволит команде достичь цели за спринт с минимальной потерей в качестве.

Коллективное обсуждение и декомпозиция

Коллективное обсуждение позволяет увидеть задачу с разных сторон, выявить скрытые сложности и найти способы разбить её на более простые части.

Чем проще задача, тем меньше в ней рисков. Чем меньше рисков, тем больше шансов, что цель спринта будет достигнута.

Поиск локального оптимума

Сторипоинты, в которые мы оцениваем задачи, позволяют нам сразу высказать, насколько придуманное нами решение сложное. После этого мы можем обсудить разные варианты решения и произвести корректировку с учётом новой информации. То есть, при помощи сторипоинтов мы совместно ищем локальный оптимум и записываем согласованное решение, тем самым уменьшая сложность задачи для исполнителя. Интересы бизнеса при этом не страдают, поскольку время, отведённое на спринт, не меняется, и не меняется цель. Меняется только способ имплементации.

Фокус на бизнес-интересах

Вся инженерная смекалка в рамках скрама направляется не на идеальное решение, которое может занять бесконечное время, а на то, как достичь цели за фиксированное и довольно короткое время - за одну итерацию.

Управление техническим долгом в этом случае переносится на уровень бизнеса. Хотите больше технических задач? Объясните бизнесу, какую ценность они принесут.

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

Практические выводы ✅

Правильное понимание сторипоинтов помогает:

  • Ставить реалистичные цели спринта
  • Находить оптимальные решения в рамках фиксированного времени
  • Снижать риски за счёт декомпозиции сложных задач
  • Фокусироваться на интересах бизнеса, а не на идеальных технических решениях

От сторипоинтов к времени 📈

Задачи переводятся во время с использованием статистических методов по историческим данным команды (метод монте-карло).

Команда на планнинге, по сути, делает ставку, что определённый объём работ (в сторипоинтах) будет завершён за итерацию. Это позволяет планировать спринты более реалистично, так как со временем команда учится делать реалистичные ставки.

Справка: На практике команды используют velocity (среднее количество сторипоинтов за спринт) и burn-down charts для отслеживания прогресса. Бизнес перестаёт полагаться на оценки разработчиков в часах, и оперирует масштабами спринтов. Роудмаппинг становится более простым и значительно более гибким, так как роудмап можно менять хоть каждую итерацию.

Сторипоинты — это инструмент для поиска локального оптимума в рамках ограничений бизнеса, а не калькулятор человеко-дней.

Что делать дальше? 🚀

  1. На следующем груминге спросите команду: "Насколько сложная эта задача?" вместо "Сколько времени займет?"

  2. При планировании спринта фокусируйтесь на цели, а не на заполнении времени задачами

  3. Если задача больше 8 sp — подумайте, можно ли её декомпозировать

  4. Отслеживайте velocity команды, чтобы понимать реальную производительность

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

Сторипоинты в эпоху ИИ 🤖

В эпоху ИИ-ассистентов сторипоинты становятся идеальным инструментом для измерения "силы" ИИ-агента: мы оцениваем, насколько сложные задачи они могут решить.

Как это работает:

  • ИИ-агент может решать задачи до определенного уровня сложности (например, до 5 sp)
  • Задачи выше этого уровня требуют человеческого участия
  • Понимая способности ИИ, мы знаем, до какой степени детализировать задачи для них

Практический пример:

  • Задача "Написать простой SQL-запрос" (2 sp) - ИИ справится
  • Задача "Оптимизировать медленный запрос в продакшене" (8 sp) - нужен человек
  • Задача "Спроектировать архитектуру БД" (13 sp) - только человек

Сторипоинты становятся ватерлинией, ниже которой человек может не напрягаться.

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

Заключение

Напоминаю, что эта статья - всего лишь рассуждение о том, как и почему сторипоинты появились. Время возвращаться из мира розовых пони в суровую реальность с плохо налаженными процессами. Надеюсь, что это путешествие поможет тебе, клубчанин, если и не изменить свои процессы к лучшему, то хотя бы лежать в правильную сторону.


P. S.: Для желающих углубиться в тему - вот хорошая статья про сложность и способы её оценки.

94 комментария 👇

сторипойнты это фикция придуманная масонами

  Развернуть 1 комментарий

@ppilif, слова не мальчика, но мужа

  Развернуть 1 комментарий

@yurifedoseev, ....но масона

  Развернуть 1 комментарий

@ppilif, "Если задачи станете оценивать в стори поинтах, то зарплату станете получать бонусными баллами" (С) наш CEO.

  Развернуть 1 комментарий

@ppilif, это замечательно, что такой ответ заплюсован вусмерть. И остальные ответы полные скепсиса тоже полезные.

А то когда я как разраб прихожу в чат к манагерам и осторожно задаю простые вопросы про смысл подобных странных манагерских вещей, коих дофига, потому что я честно хочу разобраться в идеях, мне через некоторое время начинают говорить, что у них по двадцать лет опыта, а я их тролю. И банят лол.

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

@Temirkhan,
тут изи — 1 ч
тут изян — 2 ч
тут просто — 4 ч
тут норм — 8 ч
тут сложно — 30 ч
тут очень сложно — 40 ч
тут вроде изян — 100 ч

  Развернуть 1 комментарий

@Rastishka,
Точно меньше двух спринтов — 1ч
Вероятно меньше двух спринтов — 2ч
Двух спринтов должно хватить — 4ч
За два спринта скорее всего сделаем — 8ч
Возможно за два спринта и успеем — 30ч
Тут от двух спринтов в лучшем случае — 40ч
Это надо два раза по два спринта походу — 100ч

  Развернуть 1 комментарий

Изначально скрам позиционировался как что-то молодежное, для стартапов, но сейчас это про корпорации и все застойное.

Глобально, существует 2 вида компаний:

  • Процессо-ориентированные
  • Результато-ориентированные

В процессно-ориентированных думают в основном про процессы, а не про то, что получается в итоге. "Мы работаем по аджайлу", "наши разработчики обязаны использовать ИИ в работе" — это все про процессы, не про результат. В результато-ориентированных думают про результат, и обычно не так важно, какие метрики были в процессе. "Наша задача — построить ракету, которая доставит человека на Марс", "мы хотим создать первый компьютер с цветным экраном". Со вторым обычно тем сложнее, чем больше компания, но есть исключения типа Маска и его компаний.

Проблема со вторым вариантом в том, что он упирается по сути в наличие одного человека, у которого есть Видение. А Видение мало у кого есть, это редкое явление. Без Видения возникает диктатура менеджмента, построенная на метриках (в лучшем случае), т.е. процессно-ориентированная, когда все старательно имитируют движение к каким-то целям, но никогда их по-настоящему не достигают. Те самые bullshit jobs.

Вся тема со сторипоинтами в своей основе — процессно-ориентированная. Она про то, как максимально равномерно из года в год грести, разгребать какой-то бэклог, а не как достигать больших целей. Это про то, как добиться *максимального отчуждения" разработчиков от результатов своего труда, как унифицировать их, как сделать их взаимозаменяемыми и устранить всякое подобие индивидуальности в командах (ведь иначе невозможно ввести единую метрику сложности для всех). Именно поэтому менеджмент так любит SP.

  Развернуть 1 комментарий

Хм, то есть при velocity == 10
в спринт одна команда напихает 10 задач номер 1, а другая 2 задачи номер 6.

После чего команда номер 1 всю неделю копирует компоненты, а вторая уже через час идет бухать.

Кажется количество статей с названием "А как же блин правильно использовать стори поинты" в интернете много говорит о самих стори поинтах.

Мой совет на эту тему - не парьтесь используйте оценки в часах и если не путать календарное время с трудозатратами то хуже стори поинтов не будет.

  Развернуть 1 комментарий

@underlow, про трудозатраты и время хороший поинт. Это тоже важные атрибуты задач при планировании, но на другом уровне. Они важны когда мы составляем бэклог продукта, а сторипоинты нужны только в бэклоге спринта. По сути, их даже не стоит никуда за пределы тех. команды выдавать - нет смысла. По ссылке внизу статьи есть статья Сергея Титкова, которая как раз разделяет трудозатраты, календарное время и сложность как три независимых атрибута.

По поводу двух команд - тут дело в том, что команды должны не просто набрать себе рандомных задач из беклога, а закрыть цель спринта и выкатить инкремент к продукту. Если команда закрыла цель спринта - она, по сути, выполнила работу, которую ей дал бизнес на это время. Смело можно идти бухать, поскольку свои деньги они отработали, и бизнес получил то, что хотел, в выделенное время. Или можно начинать следующий спринт, что более правильно.

  Развернуть 1 комментарий

@underbird,

про трудозатраты и время хороший поинт.

тут я весь абзац не понял.

По поводу двух команд - тут дело в том, что команды должны не просто набрать себе рандомных задач из беклога, а закрыть цель спринта и выкатить инкремент к продукту. Если команда закрыла цель спринта - она, по сути, выполнила работу, которую ей дал бизнес на это время. Смело можно идти бухать, поскольку свои деньги они отработали, и бизнес получил то, что хотел, в выделенное время. Или можно начинать следующий спринт, что более правильно.

Это, извини, выглядит как развод бизнеса на бабло помноженный на карго культ. Что значит закрыть цель спринта? Откуда она взялась эта цель? Ну так оттуда, что мы оценили задачи в каких-то попугаях не имеющих отношения к времени, а потом высчитали из них время. То есть цель тоже такая же странная как и оценки.

Если я завтра начну проставлять задачам рандомные числа, говорить бизнесу, что это оценка задачи, собирать цель спринта из этих рандомных (естественно максимальноо завышеных чисел) и героически этой цели достигать то я буду героем в глазах бизнеса.

Собственно именно поэтому мы и наблюдаем вокруг огромное количество команд номер два из моего примера, оценили в 5sp сделали за полдня, сидим расслабляемся.

На это еще можно посмотреть с другой стороны. Вот придет к тебе бизнес, скажет, оцени сколько надо на эту фичу. Ты готов поставить например свою карьеру на то, что ты попадешь в реальный срок (не умножая оценки на пи, е и прочие магические числа)?

  Развернуть 1 комментарий

@underbird, еще кстати всегда хотел спросить про цель спринта.

допустим у меня фичи только двух видов. одни слишком маленькие чтобы стать целью, другие слишком большие чтобы успеть за спринт.
что делать?

  Развернуть 1 комментарий

@underlow, цель спринта — это тот инкремент, на который коммитится команда. Классно когда он определяет самую весомую для бизнеса задачу на этот промежуток времени.
Это главный фокус команды.

Понятно что бывает всякое и в середине спринта команда понимает, что не получится сделать фичу в полном объеме, тогда можно пофлексить переменными из треугольника проджект-менеджмента (но не временем, оно фиксировано длиной спринта), для этого важно чтобы Product Owner присуствовал в течении спринта и ему всегда можно было подсветить и заапрувить изменения (например, мы не добавим анимации, но и без этого, кажется, будет ок, но тут представителю бизнеса решать)

Если есть очень большие задачи, которые невозможно поставить за спринт, нужно их дробить на более мелкие, но каждая из которых должна поставить ценность (те самые картинки про самокат -> велосипед -> машина)

Если перед командой стоят еще и маленькие задачи, не связанные друг с другом, их можно добавить в спринт вместе с задачей-целью (но фокус остается на ней и все силы должны быть брошены на нее, это тоже должно быть подсвечено, что они могут быть не выполнены в спринт).
Еще можно подумать над продолжительностью спринта, мы периодически свитчимся между неделя-две недели, это, вроде, не запрещено скрам-гайдом.

Если перед командой стоят только небольшие разнородные задачи, возможно, тут не нужен скрам, а нужно подумать над другой методологией.

В целом, цели — это коммитменты для бизнеса, как раз способ планировать время большее, чем длительность спринта.
Типа, через спринт мы поставим это, через два — вот это, а через 5 — вот это. Для команды основной горизонт планирования — следующий спринт, за пределами всё может быть переиграно. Для этого важно грумить беклог, превращая потенциально приоритетные задачи в полноценно готовые к разработке (тут помогает DoR)

Конечно, это всё в теории :)

  Развернуть 1 комментарий

@konfuze, в теории наверное. но в реальности обычно либо у тебя десяток мелких штук, либо большая (и нет, ни самокат, ни велосипед ценности бизнесу не несет. в этом спринте мы добавим поле ввода логина, а поле ввода пароля когда-нибудь потом) и еще и срочно влетевший фикс посреди спринта.

И вот каждый раз когда я слышу про цели спринта я вспоминаю все те случаи, когда цель спринта выполнена на третий день или ее искуственно выдумывают, потому что важная бизнесу фича займет на самом деле 3 спринта. И думаю, а чем же это лучше просто честного "а давайте просто сделаем все взятые в спринт задачи"?

  Развернуть 1 комментарий

@underlow,

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

Тут скорее возможность логина через логин / пароль в этом спринте, сброс пароля в следующем, потом соц сети, oidc и так далее.

когда цель спринта выполнена на третий день

А это разве плохо? Коммитмент выполнен, в ожидания уложились, идем по плану, есть время поделать другие, менее срочные вещи.
100% утилизация времени и сил скорее вред, чем польза

"а давайте просто сделаем все взятые в спринт задачи"

Тут стоит подумать, нужны ли спринты? Если скрам не подходит, то можно использовать другой подход.

Но это всё очень жизненно: сталкивался и продолжаю сталкиваться с этим каждый день, просто в какой-то момент мы поняли что какие-то практики из скрама нам подходят под конкретный момент жизни команды, а какие-то нет и нам с этим ок, бизнесу тоже.
Я здесь скорее против подхода "у нас не заработало, значит это плохо/не заработает ни у кого"

  Развернуть 1 комментарий

@konfuze,

Тут скорее возможность логина через логин / пароль в этом спринте, сброс пароля в следующем, потом соц сети, oidc и так далее.

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

100% утилизация времени и сил скорее вред, чем польза

а 20%?

Я здесь скорее против подхода "у нас не заработало, значит это плохо/не заработает ни у кого"

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

  Развернуть 1 комментарий

@underlow,

И думаю, а чем же это лучше просто честного "а давайте просто сделаем все взятые в спринт задачи"?

Я тут всё-таки побуду адвокатом дьявола бизнеса и соглашусь, что такая формулировка ничего полезного не несёт. Суть в уровне абстракции или погружения в контекст, если хочешь. Бизнесу (или тем, для кого вы презентуете цель спринта) не очень-то нужно каждый раз ходить смотреть ваш беклог по спринту и выискавать там, а что же полезного сделано. Всё-таки сформулировать полезный инкремент в виде нескольких пунктов - не сильно сложная инженерная задача.

  • Мелкая фича, но с ней пришли срочно? Записываем в цель, говорим, что успешно сделали. Повторяем все аргументы, с которыми к нам пришли, когда обосновывали срочность. Бизнес счастлив: сделали важную и срочную правку малыми силами.
  • Крупная фича, которая готова на 1/3? Говорим, что именно успели сделать в понятных для широкого круга лиц терминах: авторизация, структура БД, контракты и т.д. Бизнес видит, что работа идёт, может примерно понять, что уже готово.

И повторю аргумент @konfuze про 100%: если к вам приходили со срочными задачами, странно упарываться и затаскивать всё подряд. Какую-то из целей можно не закрыть, аргументируя выполнением какой-то другой, более приоритетной цели.

В общем, это скорее грамотная коммуникация на более высоком уровне абстракции - навык ценный и полезный. Однако, с твоими аргументами про сторипоинты согласен: бизнес чаще тоже хочет знать про время, а не абстрактную сложность.

  Развернуть 1 комментарий

@underlow,

Хотя даже в твоем варианте все рискует кончится тем, что сброс пароля уедет и не будет сделан никогда

Если его можно заменить на надпись "напишите в саппорт для сброса пароля", то для каких-то продуктов это может быть ок. Например, какой-нибудь b2b-saas с 3 юзерами, где восстановлением пользуются 1 раз в год.
Здесь главное что авторизация работает и юзеры уже могут пользоваться продуктом и мы не отложили запуск на неделю, чтобы реализовать сброс пароля.
Если сброс действительно нужен, то он и будет сделан ровно во втором спринте.

а 20%?

Врядли получится командно договориться достигнуть цели за первый день, а потом отдыхать весь оставшийся спринт, так или иначе какая-то работа делается, а если это таски из спринта — она как минимум нужная

  Развернуть 1 комментарий

@a1ebedew, коммуникация с бизнесом это ж вообще отдельная история.
в описанной ситуации например если фича не стала целью спринта (а предполагается что цель это только сверх важное) то что бизнес об этом не узнает? а если втащить все в цели спринта то это и получится бэклог и "сделаем все что втащили"

ну короче кажется что вести коммуникацию через цели спринта(которые вообще для другого были придуманы) это странная затея

Крупная фича, которая готова на 1/3? Говорим, что именно успели сделать в понятных для широкого круга лиц терминах

а постулируется что надо ценность бизнесу принести.

если к вам приходили со срочными задачами, странно упарываться и затаскивать всё подряд.

такого я вообще не говорил.

  Развернуть 1 комментарий

@konfuze,

Если его можно заменить на надпись "напишите в саппорт для сброса пароля", то для каких-то продуктов это может быть ок.

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

Врядли получится командно договориться достигнуть цели за первый день, а потом отдыхать весь оставшийся спринт, так или иначе какая-то работа делается, а если это таски из спринта — она как минимум нужная

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

когда есть одна супер важная фича, которую надо упереться но сделать - вот она цель.
когда мы эту цель назначаем просто чтоб было - ну блин, а нафига

  Развернуть 1 комментарий

@underlow,

а предполагается что цель это только сверх важное

Не знаю о таком предположении. Цель - это польза, которую решили принести в этом спринте. Инкремент, который можно явно сформулировать. Важность - это критерий цели, чтобы сравнивать их между собой. Например, как я писал выше, можно дропнуть одну цель в пользу другой.

ну короче кажется что вести коммуникацию через цели спринта(которые вообще для другого были придуманы)

А для чего они были придуманы? Расскажи, как ты это видишь.

а постулируется что надо ценность бизнесу принести

Инкремент - это тоже ценность. Если вся фича не готова, но готовы отдельные компоненты, к которым потом не надо будет возвращаться - это инкремент.
Например, условно, готова страктура БД под новую сущность, а также RPC-хэндлер, через который эту сущность можно создать. Да, дальше ничего с этой сущностью сделать нельзя, но эти работы выполнены.

по мне выглядит процессом ради процесса

Ты сейчас просто рассказываешь о том, что тебе удобнее держать бизнес в неведении о своём прогрессе, пока вся фича не будет готова полностью. Это, конечно, супер-комфортно для тебя, но ни разу не прозрачно для всех остальных. Не понятно, на каком ты этапе находишься, какой объём работы сделан, какой объём предстоит и едут ли сроки готовности фичи. В таком режиме можно просидеть до дедлайна, а потом сказать "да вы что, тут ещё на год работы, вон беклог какой".

  Развернуть 1 комментарий

@a1ebedew,

Ты сейчас просто рассказываешь о том, что тебе удобнее держать бизнес в неведении о своём прогрессе, пока вся фича не будет готова полностью.

второй раз сегодня ты меня обвиняешь в том, что я не говорил.

Не знаю о таком предположении.
А для чего они были придуманы?

Смотри, мы тут в контексте обсуждения стори поинтов. и прочего скрама. Поэтому я оперирую принятыми именно там определениями. Если у тебя свои варианты ты их озвучь чтобы мы оперировали одними терминами.

В тот момент когда я сталкивался со всякими внедрениями скрама было так:
цели спринта нужны для фокусировки команды. мы декларируем что это вот мы делаем кровь из носу, а остальное ну как повезет.

про ценность бизнесу оттуда же, "ортодоксальный скрам" говорит тебе что ценность бизнесу надо приносить каждый спринт чтобы получать быстрый фидбек от бизнеса. Сделать структуру бд это не ценность в данном контексте.

дисклеймер на всякий случай: я вообще не фанат скрама, а скорее даже противник. и в моем мире сделать структуру бд вполне может быть ценностью.

  Развернуть 1 комментарий

@underlow,

цели спринта нужны для фокусировки команды. мы декларируем что это вот мы делаем кровь из носу, а остальное ну как повезет

Ну вот и я знаю про такую формулировку, притом описал её применение выше как на отдельные цели, так и на часть большой фичи.

Сделать структуру бд это не ценность в данном контексте.

А вот это уже вопрос дискуссионный. Как я писал выше, есть понятие инкремента. Инкремент - это чась глобальной цели, которая реализована и которую можно описать в бизнесовых терминах. И тут формилировки очень важны. Создать БД - это действительно не ценность, это техническая задача. А вот "обсепечить возможность создания нового типа сущностей", то есть, условно, реализация первого этапа user-story - это уже польза. Вся фича не готова, но уже можно пойти и что-то сделать и даже протестировать этот этап - это бизнесу понятно и ценно.
Иначе, возвращаясь к моему "обвинению", как ещё ты будешь рассказывать бизнесу о прогрессе в разработки большой фичи? Показывать сколько задач из беклога выполнено? Но для бизнеса это не говорит ничего о том, что уже работает, а что - нет.

  Развернуть 1 комментарий

@a1ebedew,

Ну вот и я знаю про такую формулировку, притом описал её применение выше как на отдельные цели, так и на часть большой фичи.

Ты сказал что это способ коммуникации с бизнесом, я сказал что это не для того придумано.

Иначе, возвращаясь к моему "обвинению", как ещё ты будешь рассказывать бизнесу о прогрессе в разработки большой фичи?

Вполне возможно что именно так и буду. Или не так, бывают и другие способы. То что ты говоришь про этапы это правильный и хороший способ скоммуницировать прогресс, только при чем тут цели спринта, скрам и прочии приседания?

Хотя конечно "сделали слой БД" тоже мало что говорит бизнесу.

А вот это уже вопрос дискуссионный. Как я писал выше, есть понятие инкремента.

Ну если скрам (а точнее аджайл) и принес миру что-то кроме вреда, так это идею небольших инкрементов полезных бизнесу. Смысл же в том, чтобы получить фидбек как можно быстрее,а не на 3 месяце работы узнать, что данные хранить надо другие, а значит сделанный в первом спринте слой бд надо б переколбасить.

Я правда уже теряюсь как мы попали в эту точку обсуждения от целей спринта к моему нежеланию коммуницировать с бизнесом.

  Развернуть 1 комментарий

@underlow,

Я правда уже теряюсь как мы попали в эту точку обсуждения от целей спринта к моему нежеланию коммуницировать с бизнесом.

Я тоже уже не вижу, с чем именно ты споришь, учитывая, что ты согласился с основным пунктом про инкременты)
Кажется, точка расхождения у нас тут:

Ты сказал что это способ коммуникации с бизнесом, я сказал что это не для того придумано.

В моей картине мира, бизнес участвует в скрам-процессах команды на этапе sprint review. В ходе этого мероприятия команда презентует свои первоначальные цели и рассказывает об их выполненни. В идеале ещё презентует цели на следующий спринт. В этот момент у представителей бизнеса есть возможность углубиться в реализацию и позадавать вопросики или просто оценить общий прогресс в понятных для себя терминах. Не вижу тут противоречия.
Заметь, ты одновременно утверждаешь, что цели спринта придуманы не для коммуникации с бизнесом, но они должны отражать пользу для бизнеса. Как так выходит? Если цели не используются для коммуникации, то какой смысл их формулировать, исходя из запросов бизнеса?

  Развернуть 1 комментарий

@a1ebedew,

ты согласился с основным пунктом про инкременты)

согласился:

только при чем тут цели спринта, скрам и прочии приседания?

Заметь, ты одновременно утверждаешь, что цели спринта придуманы не для коммуникации с бизнесом, но они должны отражать пользу для бизнеса. Как так выходит? Если цели не используются для коммуникации, то какой смысл их формулировать, исходя из запросов бизнеса?

и этого я не утверждаю. я утверждаю:

  • цели спринта нужны(придуманы) в первую очередь команде
  • в идеальном инкремент должен приносить пользу бизнесу, но часто инкремент не укладывается в спринт.
  Развернуть 1 комментарий

@underlow, мне кажется, ты находишь противоречие там, где его нет.

цели спринта нужны (придуманы) в первую очередь команде

А команда, в свою очередь, не работает сама на себя, она решает проблемы бизнеса, в той или иной степени. Следовательно, цели команды решают проблемы бизнеса.

часто инкремент не укладывается в спринт

Ну мы, вроде, уже обсудили, что инкремент - это не обязательно законченная фича. Зачем снова повторять этот аргумент? Надо при планировании спринта выбирать задачи так, чтобы после их выполнениия получился хоть какой-то прогресс.

  Развернуть 1 комментарий

Давайте еще про "полезность" планнинг покера поговорим, где все в итоге ставят свои оценки чуточку позже эксперта, который глубоко в контексте задачи. Оценки, конечно, удивительным образом с оценкой эксперта совпадают. В результате вся команда тратит кучу времени, когда могли бы или сами инженеры асинхронно проставить примерно сроки или, на крайняк, лид.

Лучшие инженерные команды, где я работал, не ходили на дейлики, не вели джир и канбанов, а трекали общие дедлайны в спредшитах, созванивались раз в неделю и писали дизайн документы для синка.

  Развернуть 1 комментарий

Проблема же всех этих стори пойнтов в том, что они пытаются быть какой-то абстрактной универсальной метрикой. Это совсем не учитывает исполнителя задачи.

Вот, пишем, что спроектировать архитектуру - 15 стори пойнтов, мол, сложно. Вот только это может сделать скилловый чувак, который уже в контексте системы, за чешкой утреннего кофе на салфетке. Для него это простая задача. Для человека, который этого раньше не делал - сложная.

Какой в итоге смысл что-то мерять в отрыве от исполнителя/команды? Потешить самолюбие скиллового чувака? Мол, вот он напроектировал архитектур на 100 стори пойнтов, пока остальная команда затащила 15?

  Развернуть 1 комментарий

@aigoncharov, если забыть про стори поинты то ценность в планнинг покете есть - команда должна договориться о задаче. если очень упростить, то после того когда сеньер Петя задачу продумал, то миддл Вася должен позадавать глупых вопросов, есть довольно высокие шансы, что Петя что-то упустил.

  Развернуть 1 комментарий

@underlow, Для этого ритуала не нужно всей командой сидеть на многочасовом покере. Миддл Вася может просто позадавать вопросы серьеру Пете

  Развернуть 1 комментарий

@aigoncharov,

  1. не только миддл вася, а и вся остальная команда тоже
  2. практика показывает, что если человека попросить оценить задачу и отстоять свою позицию, то его вопросы внезапно становяться гораздо интереснее, чем если просто попросить "ну ты поспрашивай если че непонятно"
  Развернуть 1 комментарий

@underlow, Ни разу не видел, чтобы это работало.
Остальные чуваки в команде хотят пилить свои задачи, а не вникать глубоко в соседний контекст.
А без глубокого понимания контекста все эти оценки других людей - ритуал ради ритуала.
Не пойми неправильно, вопросы - охуенно! Для этого есть код ревью, недельные синки и т.д.
Зачем из этого ещё и ритуал с коллаборативной оценкой делать мне не понятно.

  Развернуть 1 комментарий

Например, у меня в команде другой инженер пилит плюсовый движок для работы с хардой. Я вокруг этого движка делаю веб.
Какую пользу ему принесет моя попытка оценить его задачи? И наоборот.

  Развернуть 1 комментарий

@aigoncharov, а ну это просто терминологическая путаница. речь о команде которая делает общие фичи. конечно если вы не пересекаетесь, то и не надо ничего обсуждать (часто особо и планировать ничего вместе не надо)

  Развернуть 1 комментарий

@aigoncharov,

Остальные чуваки в команде хотят пилить свои задачи

ну если у вас каждый пилит свой кусок то вам конечно не надо ничего обсуждать.

а если все-таки хотя бы код ревью делаете вместе, то вот лично я бы предпочел чтобы меня поревьювили бы до разработки а не после.

  Развернуть 1 комментарий

@aigoncharov,

Остальные чуваки в команде хотят пилить свои задачи, а не вникать глубоко в соседний контекст.

У нас в команде для этого ввели фиче-лидов. Хочешь, не хочешь, а вникать придётся, потому что ты отвечаешь за всю реализацию. Плюс, стараемся, чтобы одан фича не расползалась на совсем рандомных разработчиков. Если ты уже делал задачу для этой фичи, то тебе проще понять, что происходит вокруг.
Следующий шаг, по идее, проводить стори-покер/грумминг не со всей командой, а по фичам, но к этому пока не пришли.

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...
🕵️ Юзер скрыл свои комментарии от публичного просмотра...
Nickolay Kopylov Head of Engineering | Principle Software Engineer 27 августа в 12:38

Создатель идеи сторипоинтов многократно раскаялся в содеянном. Особенно сильно он сожалел о выборе именно чисел для выражения сложности.

Мы люди простые - видим число и сразу хотим к нему применять всё то, что мы знаем о числах: сложение, вычитание, умножение.

А его идеей было просто каким-то образом выразить сложность так, чтобы можно было сравнивать единицы работы между собой, и не более того. Сравнивать не как "эта задача в 2.5 раза сложнее" просто, задача A сложнее чем задача B и проще чем задача C.
Это, собственно, главное и единственное свойство сторипоинтов.

Но мы, отталкиваясь от того что это числа, начали к этому применять кучу разных других штук - "а давайте теперь считать статистику", а "а давайте оценивать и прогнозировать производительность" и вот это всё.

Три бэклога: в одном 32 задачи по одному сторипоинту, в другом - две по 16, в третьем - одна на 32. Численно это три одинаковых бэклога. На практике - три совершенно разных, несравнимых между собой.
Где первый команда может отщёлкать на изи.

Второй - может напрячься и сделать, но может оказаться что всё не так сложно.

А третий окажется проектом на полгода.

  Развернуть 1 комментарий

@nkopylov, вот точно в майках мерять надо. S\M\L. а они потом ещё и растягиваются после стирки

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

В посте хорошо описано что такое абстрактные sp, но не очень понятно зачем они нужны – есть неувязки, про которые уже написали: про две короткие но очень сложные сеньерские задачи.

На моем опыте при оценке задач в чем-то оторванном от времени, в данном случае — в story points, как будто специально пытаются отделить задачу от текущего положения дел в команде. То есть происходит попытка ответить на вопрос:
«Насколько сложно было бы выполнить эту задачу для какого-то среднего мидла?»,
и мы всеми силами стараемся абстрагироваться от конкретных людей.

Но в реальности ситуация почти всегда конкретная:

  • Саша (сеньор) сделает задачу быстро и без проблем.
  • Даша (мидл) справится, если Саша поможет с декомпозицией.
  • Витя (джун) не сделает задачу в обозримом будущем, потому что у него нет нужного опыта, как бы мы ни декомпозировали.

Кроме того, есть задачи, которые сложны сами по себе, и их нельзя адекватно декомпозировать — их можно только отдать конкретному человеку, способному с ними справиться.

После этого происходит обратный процесс — мы натягиваем наших реальных членов команды на числа «для среднего мидла», и всё это выглядит как непонятная дополнительная работа.

Предлагается убрать эту дополнительную работу.
Если руководитель или члены команды понимают, кто на что способен, процесс оценки в числах можно опустить и действовать проще:

  • Саша, бери это сложное дело сам и скажи, когда сделаешь
  • Даша, созвонись с Сашей, составьте план, декомпозируйте, что нужно, и скажите, когда сделаете
  • Витя, займись пока пачкой вот этих несложных задач

Вместо того чтобы каждый раз собираться всей командой, придумывать числа ради того, чтобы «что-то сошлось», а затем ещё и на основе этих чисел «принимать решения», мы:

  • даём людям ощущение доверия и возможность расти без постоянного присмотра
  • снижаем лишнюю когнитивную нагрузку, так как эта работа по декомпозиции и т.д. все равно будет проведена
  • люди начинают оценивать (уже в голове для себя) и планировать свою более качественно т.к. это уже их ответственность

Еще дополню, что за пределами команды нужен только ответ на вопрос когда это будет сделано, соответственно логично и внутри задавать этот вопрос и всем учиться наиболее четко на него отвечать.

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

Сторипоинты - это скам, чтобы продать побольше времени под видом меньшей сложности там где надо и vice versa.

На пространстве СНГ кроме как для основания занижения/завышения оценки на перформанс ревью не используются.

Есть даже упоротые компании сливающие на отдел фиксированное количество сторипоинтов, которое должно быть "сожжено".

В целом, когда при попытке объяснить стороннему человеку какие-то вещи, вы чувствуете себя обманутым - то сторипоинты должны быть как раз таким кейсом.

Время - понятное и прозрачное для всех участников измерение.

  Развернуть 1 комментарий

@lostinsoba, проблема со временем в том, что временная оценка должна быть вероятностной величиной. Скорее всего сделаю задачу за день, возможно повезёт и управлюсь за час, в крайнем случае всю неделю с ней провожусь, но вряд ли дольше. Но это слишком сложно.

На достаточно большом промежутке можно оценивать наиболее вероятным временем — все перекосы друг друга скомпенсируют. Но в рамкой одной итерации (которую все мечтают закрыть) это вызывает больше неудобств.

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

  Развернуть 1 комментарий

@gwer, оценка в любом случае будет приблизительной.
Да, и если между запрашивающим и отвечающим людьми не будет доверия - то никакая другая абстракция также работать не будет.

Выслуживающиеся и недостаточно опытные берут оптимистичную оценку. Набившие шишек — пессимистичную.

Чем это отличается от того, что на одну и ту же задачу разные люди назовут разное количество сторипоинтов?

Кажется тем, что если финальное слово будет за лидом, который захочет её занизить/завысить - неадекватное занижение/завышение времени будет заметно сразу, а вот абстрактным "sp" спекулировать можно в любую сторону.

Сегодня скажу что имел в виду сложность, завтра - что время.

  Развернуть 1 комментарий

@lostinsoba, про сложность договориться гораздо легче, если говоришь с инженерами. Плюс, самое главное, в процессе обсуждения сложности вы неизбежно дизайните задачу и обсуждаете решения, а значит, уменьшаете эту самую сложность. Суть сторипоинтов именно в этом, а не в том, чтобы просто назвать оценку.

Вообще, сторипоинты по-хорошему до бизнеса вообще не должны доходить, они ему не нужны. Бизнес должен получать уже готовую усреднённую оценку во времени. Это разработчики должны подстраиваться под сроки бизнеса, а не наоборот. Собственно, в статье об этом и говорится.

  Развернуть 1 комментарий

@underbird,

про сложность договориться гораздо легче, если говоришь с инженерами

Пока это просто утверждение. Какие есть этому примеры?

Вот в Авито добавили в поиск один фильтр, это стоило 1.5-2 месяца:
https://www.linkedin.com/posts/dpuchenkov_моя-первая-фича-в-проде-прошу-любить-activity-7339607130892652544-_jYn/?originalSubdomain=ru

Какой из этого вывод при оценке будущих задач можно было бы сделать если бы там было n сторипоинтов?

Вообще, сторипоинты по-хорошему до бизнеса вообще не должны доходить, они ему не нужны

А кому они нужны?

  Развернуть 1 комментарий

@lostinsoba,

Какой из этого вывод при оценке будущих задач можно было бы сделать если бы там было n сторипоинтов?

Этот результат добавляется в исторические данные по всем задачам, которые были оценены на n сторипоинтов. Мы считаем среднее по таким задачам, чтобы прикинуть, сколько времени у этой конкретной команды занимают задачи, оценённые на n сторипоинтов. Как итог, мы можем прикинуть, сколько времени займёт такая задача, и эта оценка будет обоснована статистикой, а не гаданиями на кофейной гуще.

А кому они нужны?

Разработчикам, чтобы обсуждать варианты решений и риски в процессе реализации. Чтобы услышать и митигировать риски, которые все члены команды видят. Чтобы на ранних этапах поправить что-либо в дизайне или переформулировать задачу таким образом, чтобы её можно было сделать дешевле и эффективнее.

  Развернуть 1 комментарий

@underbird,

Мы считаем среднее по таким задачам, чтобы прикинуть, сколько времени у этой конкретной команды занимают задачи, оценённые на n сторипоинтов.

Как итог, мы можем прикинуть, сколько времени займёт такая задача, и эта оценка будет обоснована статистикой, а не гаданиями на кофейной гуще.

Тоесть мы все запишем в сторипоинтах, но результатом нашего анализа всеравно будет время? Зачем нам тогда сторипоинты?

Я конечно не спец, но кажется что "обоснованная статистика" начинается там, где мы сначала обосновываем что наши данные пригодны для использования определенного инструмента и уже потом его используем.
Если у команды нет желания нанимать человека с таким математическим бекграундом только для того чтобы считать время выполения задач - сравнение с кофейной гущей тут примерно такое же как сравнение двух яиц из рекламы blendamed.

Разработчикам, чтобы обсуждать варианты решений и риски в процессе реализации.

Опять же, как это связанно со сторипоинтами?

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

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

-- привет, я из соседнего отдела, когда будет релиз новой фичи чтобы мы могли ее (рекламировать, внедрять, продавать, обучать)?
-- она оценена в тридевятом спринте на 10 сторипоинтов в майке S
-- 🗿🗿🗿

  Развернуть 1 комментарий

@alexk, нормальный ответ. надо добавлять "дату выкатки тридевятого релиза в прод можешь уточнить у команды релиз менеджеров" - и всё будет ок.

и чувак "из соседнего отдела" должен понимать, что как скоуп релиза может переехать в следующий, так и дата релиза может сдвинуться, а не бить себя пяткой в грудь "я тут бизнес, дай мне точную дату, подпишись кровью что 1000% тогда будет, прибей гвоздями к хую". Вернее так тоже можно, но через эскалацию - это уже приоритетами называется, но это другая история, и, грубо говоря, на бизнес уровне только их установлением и надо заниматься, а не в кишки лазить "нет, ты мне скажи, если 8 часов оценено - значит через 8 часов на проде будет? нет? а через сколько?"

  Развернуть 1 комментарий

@gramlin, нет, ответ на вопрос "когда" рассказом о своём нежелании брать ответственность за сроки - ненормальный.
Нормальный и семантически верный ответ - "завтра", "29 февраля" или "летом".

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

Нормально, также, не вести подобное общение самостоятельно, а делать это через представителя (менеджера, руководителя, тимлида), но не скидывая ответственность. Если скидывать ответственность на менеджера, то могут начаться обиды "почему он сроки поставил МЫ ЖЕ СТОРИПОИНТАМИ ОЦЕНИВАЕМ". а у менеджера срок закрытия договора - 31 декабря, а не третий спринт в 12м сторипонте.

если нужен инструмент для декомпозиции, то пожалуйста, только чтобы делу не мешало.

  Развернуть 1 комментарий

@alexk,
+100, не зря же "Люди и взаимодействие важнее процессов и инструментов." стоит первым пунктов в аджайл манифесте

в моем опыте (продуктовая разработка) помогало:

  • managing customer expectation, доносить изменениях в сроках/проблемах asap, там уже режется скоуп, двигается дедлайн или даются еще люди
  • приоритизация задач в спринте must have, should have, nice to have. Задачи с жестким дедлайном уходят обычно в must have как цель спринта
  • оценка в диапазоне: если все ок, то сделаем к числу X, если нет, то к Y

Но часто все упирается именно в нормальное взаимодействие и понимание друг друга, чем в следование фреймворкам

  Развернуть 1 комментарий

@alexk,
Это какие-то неопытные инженеры. Опытный просто умножает оценку на число пи и отдает бизнесу

  Развернуть 1 комментарий

@yurifedoseev, база

в отличной команде еще и менеджер на два умножит. заметьте, точность будет не хуже, чем с методологиями!

  Развернуть 1 комментарий

Немного похоливарю.

Очень нравится когда мы от меры сложности, приходим к velocity в которой эта мера сложности не учитывается. Т.е. если конечному пользователю нужна velocity, то становятся совершенно не важны все эти приседания с оценкой и можно использовать те же часы)

Если главная задача SP декомпозиция, то не понял причем тут SP. Можно же ввести бинарную оценку - декомпозируем или нет, зачем усложнять?)

  Развернуть 1 комментарий

мир разработки изменится кардинально (в лучшу сторону) когда менеджеры научатся объяснять стейкхолдерам бесполезность привязки к любым оценкам, и стейкхолдеры направят все силы которые тратятся на то чтобы собирать статусы и ебать мозг о том что "опять не успели, ведь вы же обещали" в другое русло.

  Развернуть 1 комментарий

@etot_chuvak, Движение должно быть двусторонним - инженерам бы тоже неплохо держать в уме, что конечная цель мероприятия - это зарабатываение денег. Стейкхолдеры эту хрень же не на ровном месте придумывают, а в бессильных попытках как-то проконтролировать процесс

  Развернуть 1 комментарий

@Anna_Mus, я не знаком со статистикой которая бы подтверждала с взяь между зарабатыванием денеги задачей давать точные оценки/степенью контролируемости стейкхоледрами сроков. Если у вас есть статистика потверждающая, что компании зарабатывают много (больше) денег именно потому, что инженеры точно оценивают задачи - поделитесь. Мой опыт говорит об обратном. И в финансово успешных компаниях проёбываются дедлайны на постоянной основе и т. д.
Есть ощущение, что только люди, игнорирующие свой собственный опыт, могут верить в то, что кто-то способен приемлемо точно оценить свои трудозатраты на совершение каких-то действий в complex environments. У каждого из людей в собственной жизни есть неимоверно большое количество примеров, когда их собственные оценки, в которых они были уверены на 100%, катастрофически расходились с реальностью (и вряд ил в этих случаях люди ебут себе мозг вопросом "ну как же так, ты же сказал что это займёт меньше времени?"). Более того, собираемая самими же проектными менеджерами статистика говорит о том, что 80%+ процентов проектов не укладываются в дедлайны и ограничения по бюджету.

Мой поинт в следующем: усилия, которые тратятся на изобретение процессов «точных оценок», разумнее направлять на развитие системного мышления у инженеров и создание эффективных фреймворков по работе с known/unknown unknowns (по Рамсфелду).

  Развернуть 1 комментарий

@etot_chuvak, Я с тобой вообще не спорю, и считаю, что эти практики с оценками и kpi это дичь, которая получается, потому что ничего получше не придумали. Я вообще в этом месте панк(?) анархист(?) и считаю, что полностью раскрытый человеческий потенциал дает несравнимую эффективность, в десятки раз. А раскрытие потенциала неразрывно связано с агентностью, внутренним локусом контроля, созданием долгосрочных доверительных отношений, творческой работой в группе. Но это бутиковый подход, который не для всех бизнес-моделей подходит. А жаль

  Развернуть 1 комментарий

@Anna_Mus, согласен.
Вообще, мне кажется, стало бы сильно лучше, если бы больше сотрудников видели и понимали такие метрики как revenue per employee и т.п., чтобы лучше понимать зачем мы тут все собрались и чем занимаются ребята из отдела продаж.

  Развернуть 1 комментарий

@etot_chuvak, я в принципе согласен, что по большей части оценки бессмысленны. но все-таки, когда в автосервисе мне говорят, что ремонт займет "а хз сколько, может в неделю уложимся, а может и месяц" и стоить он будет от 1 до 1000 то я напрягаюсь.

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

  Развернуть 1 комментарий

@underlow, В автосервисе еще могут и за свои слова ответить обычно, а тут да, бизнесу хочется предсказуемости процесса, но это не повод вытрясать обещания, которые никто не исполнит все равно. Тут уж лучше честно сказать "а хз сколько" и дальше вместе думать, что делать. Потому что иногда неделя или месяц, это не важно, а иногда "если к 15-му не будет готово, то можно и не делать"

  Развернуть 1 комментарий

@Anna_Mus,

Тут уж лучше честно сказать "а хз сколько" и дальше вместе думать, что делать.

ну так все подобные методики про сторипоинты и есть результат таких раздумий

  Развернуть 1 комментарий

@underlow, Ага, и пока все участники удерживают глобальную цель сего действа, они все отлично работают

  Развернуть 1 комментарий

@underlow, используйте статистические данные для оценок и не тратьте время людей на угадывание неизвестности. Если команда сделает своё производство стабильным, то на исторических данных легко построить прогноз.

Например, в автосервисе мы чиним 90% автомобилей за месяц или меньше. 90% — это достаточно высокая вероятность, чтобы озвучить клиенту срок «месяц». Если он получит машину раньше — будет доволен, если в срок — тоже.

  Развернуть 1 комментарий

@zhadrinskaya, звучит странно. стабильная неизвестность это как?

я правильно понимаю, что ты предлагаешь усреднить и выдавать на каждую фичу одинаковую среднюю оценку? то есть у примерно трети, а то и половины задач оценка будет занижена. спасибо, но нет.

  Развернуть 1 комментарий

@underlow, Смотрим статистически, на сколько человек ошибается в оценке - 20% или 50%, и строим планы соответственно

  Развернуть 1 комментарий
  Развернуть 1 комментарий
Dima Ollyak софтваре инженир 28 августа в 05:13

Спасибо за пост, но чот со "сложностью" вообще мимо, по моим личным ощущениям.

В сегодняшней команде (и в командах до этого) мы с удовольствием используем сторипоинты. Это мера количества работы, что-то вроде человеко-часов, но в игровой форме и с защитой от внешнего воздействия:

  • Это не календарное время, поэтому у продактов меньше возможностей давить на разработчиков. Своеобразная технологическая защита слабых переговорщиков (разработчиков) от сильных переговорщиков (продактов). Единственный интерфейс команды для перевода сторипоинтов в календарные сроки - это менеджер (или тим-лид), такая уж у него нелегкая доля, прикрывает всю команду.
  • Оценка всегда полагается на конкретных исполнителей и их специализацию, как ни крути. Не вижу никакого смысла в оценке абстрактной сложности.
  • Игровая форма (числа Фибоначчи, планинг покер) вносит приятное разнообразие в работу.
  • Оценка в числах Фибоначчи супер-умная штука, чтобы не застревать в мелочах. Каждое последующее число примерно в 1,5 раза больше следующего, поэтому это даже лучше, чем майки.
  • Планнинг покер хорошо вскрывает сложности и эйдж-кейсы.
  • После какого-то количество спринтов велосити и капасити начинают приобретать смысл и пользу.

Ну и главное — знакомство с другими культурами, если повезло работать в мультикультурной команде. Где еще ты сможешь узнать, что люди с китайскими корнями могут одной рукой показывать числа до 10? А люди, выросшие в индийской культуре, считают одной рукой до 12. Кайф же, как бы я это узнал, если бы не сторипоинты.

  Развернуть 1 комментарий

@ollyak, если сторипоинты используются как защита от давления продактов, то это сигнал посмотреть в сторону доверия и культуры в команде/компании.

  Развернуть 1 комментарий

А потом всю теорию надо подогнать под запланированные даты релизов, PO вынесет мозг, пересчитывая sp под выделенные fte, а под конец квартального планирования закинут пару фичей которые надо срочно сделать

  Развернуть 1 комментарий

Нужное делать, а ненужное — не делать. Хорошо делать, а плохо — не делать. Срочное и маленькое делать сейчас, никому не нужное и большое — не делать никогда.

А все попытки упихнуть всё в параллельно-перпендикулярные процессы, и потом пытаться складывать нескладываемое — это всё от лукавого.

  Развернуть 1 комментарий

@gwer, каеф - что нужно делать, а что не нужно? Что значит хорошо делать? Что срочное и маленькое? Если у тебя не диктатура и ты не решаешь сам, приходим к системе "два девелопера, три мнения и все неправильные".

  Развернуть 1 комментарий

@mighty_conrad, выходит, что девелоперы неправильные. Надо нанять правильных сначала. Ну либо оставить скрам, потому что оно как раз и нужно, чтоб масштабировать каких попало девелоперов, потому что люди всё ещё верят, что чтобы делать больше дел, надо просто нанять больше людей.

  Развернуть 1 комментарий

@gwer, не продолжу абсурдизм, но отмечу, что у Хэмминга в Art of Doing Science натурально прописано, что нужно иметь ротацию инженеров, потому что отдельных задачах появляются те самые мифические 10х и их надо оставлять, а остальных время от времени заменять.

  Развернуть 1 комментарий

Прочитал внимательно пост и комменты.
Пару лет поработал в команде, где это вроде бы используется.
Так нихрена и не понял.

С моей точки зрения, получилась какая-та шляпа для того, чтобы где хочется (перед релизом, например) оправдывать овертаймы и костыли заниженной оценкой, а где не надо (перед рождеством) - дружно оценивать командой элементарные задачи в пять сорри поинтов, чтобы создать для менеджмента видимость того, что мы тут делом заняты.
Хотя я и программист не настоящий. Мне все кабаны и эджайлы кажутся примерно так же оторванными от реальной жизни, как книжка про Теорию Игр. Ознакомиться интересно, но применимость на практике спорная, ибо люди нерациональны.

А ещё мне кажется, что это могло бы работать, если бы задачи нормально ставили. Но вместо того, чтобы учиться описывать задачи менеджеры в покер играют.

  Развернуть 1 комментарий

Вообще до момента планирования спринта все неплохо, сама идея оценивать сложность в чем-то даже изящная.

Но как обычно есть нюанс.

Сложность задачи это мера неопределенности. Чем меньше я понимаю про задачу, тем сложнее она мне кажется. И мы должны взять эту неопределенность и получить из нее время?

Отдельно хочется заметить что ни к какому фокусу на бизнес интересах стори поинты отношения не имеют, не надо их туда приплетать.

  Развернуть 1 комментарий

@underlow, у нас есть исторические данные по задачам в M категориях. Мы внутри каждой категории вычисляем среднее время исполнения такой задачи. Получаем T_1, T_2,T_3, ..., T_M. Теперь берём юзер стори, оцениваем задачи в ней, умножаем их категорию сложности на соответствующий T, складываем результаты, и получаем оценку времени для этой юзер стори.

M обычно в диапазоне от 5 до 7. За 3-4 спринта набираются исторические данные для всех категорий. А ещё, чем больше спринтов команда работает, тем точнее становится наша эстимация.

  Развернуть 1 комментарий

@underbird,

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

Теперь неплохо бы оценить точность такого планирования. И в реальной жизни оказывается, что если это усреднение оценку занизило, то команда скажет "упс, не учли тут сложный моментик, надо еще два дня", а если усреднение оценку завысило - команда точно попадет в спринт :)

  Развернуть 1 комментарий

@underbird,

у нас есть исторические данные по задачам в M категориях.

Только если мы делаем действительно однотипные задачи из раза в раз. Например, оказываем один и тот же набор правок/услуг для разных клиентов. Или, условно, затаскиваем разные интеграции в свой проект по известному алгоритму.
А если мы продуктовая команда, которая каждый раз выдумывает новые фичи, то исторические данные не сильно релевантны.

  Развернуть 1 комментарий
Илья Богданов Специалист по прокрастинации 1 сентября в 11:22

Насколько я понял идею из поста:

  1. Сторипойнты оценивают и сложность, и время в тех случаях, когда у нас плюс-минус равномерное распределение скиллов в команде, т.е. нет большой разницы между уровнем разработчиков. Если одна задача оценена в один сторипойнт (она «простая»), а другая — в пять (она «сложная»), то вторая задача займёт условно ×5 времени у команды. Не важно, будет делать эту задачу Петя или Вася.

  2. Если же у нас есть разнородная команда джунов, миддлов и сеньоров, и есть необходимость как-то это всё сводить к общему знаменателю — появляется необходимость забить на время и ориентироваться только на абстрактную «сложность». Если дадим сложную задачу джуну Васе — он будет занят с ней три месяца, а если более опытному Пете — он справится за неделю. Сторипойнты позволяют нам сказать «у нас есть Вася, он делает 1 сторипойнт в неделю, а есть Петя — он делает 5 за то же время. Значит в этом месяце мы можем взять задач на 24 сторипойнта, и скорее всего они будут сделаны к концу месяца, если мы будем их грамотно распределять».

Что я при этом не понял — почему «сторипойнты не измеряют время». Ну измеряют же! Не для конкретного человека, а для команды в целом. Количество сторипойнтов чётко коррелирует с затраченным временем. Если бы это было не так — их было бы бесполезно использовать.

У меня команда из случая 1 —поэтому сторипойнты нам использовать легко и приятно. Обсуждая и оценивая задачи на планнинге, мы готовим список требований, обсуждаем различные подходы к реализации, и в конце концов приходим к консолидированному мнению «эта задача займёт у любого из нас неделю» или «чёт получается много, давайте попробуем разделить на несколько задач поменьше».

Не понимаю некоторых комментаторов, которые не заинтересованы в планировании своих же собственных задач, либо сидят на бесполезных для себя планированиях чужих задач. Я получаю пользу от планнинга, потому что могу взять любую из оцененных задач и уже буду знать какие там примерно подводные камни. Если вы такой пользы не получаете — нафиг вы на планнинги ходите то?

  Развернуть 1 комментарий

Только в статьях про стори поинты все четко, прозрачно и понятно. Как не придешь в команду со стори поинтами: кровь, кишки, берндаун никогда не сходится, а иногда расходится)
А значит нужно в очередной раз вызвать скрам-мастеров и аджайл-коучей. А ребята и не против!

  Развернуть 1 комментарий

Это база. (комменты не читал и не буду)

  Развернуть 1 комментарий

Ну то есть сторипоинты "как надо" - еще одно определение грейда сложности задачи. С вытекающими, преимущественно в штаны. Опять же, классика словарей, difficult и hard имеют более явное разделение определений, нежели "сложная" и "тяжелая", как минимум для меня и таким же доходягам. Если мне кто-то не объяснит зачем сторипоинты даже после этого текста и моего комментария, я буду их избегать и не играть в это jira-балатро, если решение будет за мной чтобы не путать себя, заказчиков и потенциальных напарников с подчиненными.

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

Спасибо огромное за статью!
Очень структурированная и удобная для чтения.

Пойду считать наши спринтов по методу Монте Карло :)

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб