#NoEstimates не так революционен, как люди пытаются заставить вас поверить

Движение #NoEstimates набирает все большую популярность. Я хотел понять почему, поэтому моя команда экспериментировала с этим в течение 3 месяцев. Проработав с ним четверть квартала, я не считаю, что это так сильно меняет правила игры, как пытаются убедить нас сторонники #NoEstimates.

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

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

Почему #NoEstimates?

Движение #NoEstimates утверждает, что нам следует прекратить оценивать элементы невыполненной работы по трем причинам:

  1. Точная оценка невозможна.
  2. Оценки могут оказать ненужное и непродуктивное давление на вашу команду.
  3. Оценка - пустая трата времени, поэтому лучше потратить на нее как можно меньше времени.

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

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

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

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

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

Еще не запутались? Я сделаю все, что в моих силах, чтобы попытаться объяснить это простым способом.

Почему #NoEstimates на самом деле является формой оценки

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

Элементы журнала невыполненных заказов имеют такие атрибуты, как описание, порядок, оценка и стоимость. - Scrum Guide, ноябрь 2017 г.

Элементы невыполненной работы продукта в Scrum должны иметь оценку. Это может быть явная оценка, например, когда вы используете Story Points, или неявная оценка, путем нарезки элементов, чтобы они вписывались в спринт. Независимо от того, какой подход вы решите использовать, команда разработчиков должна сделать следующий звонок: считаем ли мы, что он подходит для спринта? Задавая этот вопрос и отвечая на него, команда уже произвела оценку.

Я могу объяснить это более ясно, сравнив #NoEstimates с Story Points. Оценка с помощью Story Points обычно означает, что вы соглашаетесь вместе с числом из последовательности, подобной Фибоначчи:

1 2 3 5 8 13 20 40 100

Когда вы делаете #NoEstimates, эта последовательность просто сокращается до двух чисел:

  • 1: подходит для спринта
  • 0: не подходит для спринта

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

Когда оценка команды равна 1, они обычно проводят больше разговоров, чтобы посмотреть, можно ли ее сократить, чтобы улучшить поток и предсказуемость. Это не обязательно при использовании #NoEstimates. Если ответ - 0, команда должна обсудить, что можно сделать, чтобы уменьшить его. Также может быть, что есть неопределенность, риск или сложность, которые необходимо решить в первую очередь.

Если вы согласны с моим выводом о том, что #NoEstimates по-прежнему является формой оценки, каковы последствия прекращения использования Story Points и использования вместо этого #NoEstimates?

С #NoEstimates количество времени, которое вы тратите на оценку, существенно не изменится.

В наших Scrum-командах мы тратим 1 час на доработку на каждые 2 недели спринта. В течение этого часа мы выполняем 4 шага:

  1. Напишите элементы бэклога продукта вместе как Scrum-команда. Владелец продукта объясняет и обсуждает, почему и что.
  2. Обсуждаем, как это построить на высоком уровне. Достаточно, чтобы мы были достаточно уверены в том, что понимаем, что нам нужно делать.
  3. Мы сотрудничаем, чтобы выяснить, как разделить элемент невыполненной работы, чтобы он был нарезан как можно меньше, но при этом приносил пользу.
  4. Если элемент невыполненной работы достаточно ясен, мы оцениваем.

Когда мы начали делать #NoEstimates, мы упростили шаг 4, заменив его вопросом: подходит ли он для спринта? Если да, то его можно забрать. Если нет, мы разрезаем элемент бэклога на меньшие части. На этот вопрос легче ответить и определенно занимает меньше времени.

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

Не оценивая с помощью Story Points, мы экономим около 10 минут. Это примерно столько же времени, сколько пропускать ежедневный скрам с вашей командой. Действительно ли это дополнительное время, которое вы сэкономите, стоит всей шумихи вокруг #NoEstimates?

Мы можем согласиться с тем, что вы сэкономите немного времени с помощью #NoEstimates, но что вы потеряете, и стоит ли это того?

#NoEstimates имеет недостатки

Когда вы используете #NoEstimates, вы теряете информацию, которая предоставляется при использовании Story Points или другой формы оценки:

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

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

Оценка - это быстрая проверка здравомыслия, позволяющая убедиться, что все согласны с тем, что влечет за собой работа. Эта информация теряется при использовании #NoEstimates. Вопросы «Подходит ли он для спринта?» или "Можем ли мы нарезать его меньше?" просто не вызывайте таких же разговоров, как когда вы занимаетесь Planning Poker, и вам нужно указать на это число.

Теперь вернемся к преимуществам более точных оценок. Какими бы несовершенными ни были оценки Story Point, они все же содержат информацию. Пользовательские истории с 3 очками истории обычно (но не всегда!) Меньше, чем истории пользователей с 8 очками. Эта информация может быть полезна для управления зависимостями.

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

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

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

#NoEstimates звучит круче и полезнее, чем есть на самом деле

#NoEstimates - отличный звук, и его хорошо продают люди, поддерживающие движение. Но действительно ли это так сильно влияет на работу вашей команды? Точно нет. #NoEstimates похож на Pet Rock из 70-х - идея, стоящая за ним, круче, чем то, что она означает на практике.

#NoEstimates - неподходящее имя. Когда вы делаете #NoEstimates, у вас по-прежнему есть оценка элемента невыполненной работы по продукту. Это просто менее детально, чем если бы вы использовали Story Points. #NoEstimates сокращает диапазон оценки Story Point до двух сегментов. Все остальное остается прежним.

С #NoEstimates:

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

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

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

В конце концов, я считаю, что #NoEstimates не имеет большого значения для вашей Scrum-команды. Судя по моему личному опыту выполнения #NoEstimates в течение 3 месяцев, это не стоит всей суеты и внимания, но если вам это нравится, продолжайте делать это.

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

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

Вы хотите писать для Serious Scrum или серьезно обсуждать Scrum?