Основы Agile-методологий

Планирование

В лекции изложены базовые принципы планирования в методологии Scrum. Материал раскрывается в логике перехода от общих концепций к конкретным инструментам: сначала обосновывается необходимость гибкого планирования и описывается метод набегающей волны. Затем рассматривается механизм поэтапного уточнения планов для обеспечения устойчивого ритма работы команды. Далее детально разбирается техника относительной оценки задач Poker Planning. Завершается изложение описанием диаграммы сгорания работ (Burndown Chart) как ключевого артефакта для самоконтроля и визуализации прогресса в спринте.

Основные мысли

В результате изучения лекции слушатель будет способен:
1. Объяснить, почему в Scrum смещается акцент с долгосрочного планирования на тактическое.
2. Описать суть метода планирования набегающей волной и его соответствие принципам инкрементальной разработки.
3. Обосновать важность выработки устойчивого ритма работы команды для повышения точности прогнозов.
4. Сравнить технику относительных оценок Poker Planning с классическими методами обсуждения и оценки задач.
5. Интерпретировать данные диаграммы сгорания работ (Burndown Chart) для выявления отклонений от плана спринта.
Показывать лекцию целиком
Краткое изложение

6.1. Принцип быстрого планирования

Планирование, вопреки всеобщему убеждению, - это фундаментальный аспект деятельности Scrum-команд.

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

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

В итоге планирования должны быть известны:

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

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

Такой подход к планированию называется планированием методом "набегающей волны".

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

6.2. Поэтапное уточнение планов

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

Внедрение этой деятельности в этап планирования позволит:

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

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

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

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

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

Прогнозирование производительности труда на предстоящий период производится на основе:

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

6.3. Техника Planning Poker

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

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

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

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

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

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

Planning Poker обладает значимыми преимуществами по сравнению с аналогичными техниками планирования. К ним стоит отнести следующие:

Правила, которым подчинена техника Planning Poker, достаточно просто запоминаются и легки в применении:

Критичные для проведения процесса замечания:

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

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

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

6.4. Диаграмма сгорания работ

Один из самых важных артефактов, которые использует Scrum-команда для контроля за запланированными показателями выполнения работ в течение спринта, - диаграмма сгорания работ (Burndown Chart) (рис. 6.2).

Рис. 6.2. Диаграмма сгорания работ

Рис. 6.2. Диаграмма сгорания работ

Эта диаграмма показывает, сколько задач осталось до завершения запланированного периода времени на выполнение работ (спринта):

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

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

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

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

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

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

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

6.5. Краткие выводы

В данной главе был подробно рассмотрен наиболее значимый и критичный для управления ожиданиями пользователей этап планирования процесса разработки программного обеспечения. Мы уделили внимание методам и профильным техникам планирования для работы с гибкими процессами. В частности, рассмотрели планирование методом "набегающей волны" и последующее поэтапное уточнение планов. Применение этих методик в Scrum позволит выстроить работу, начиная с "правильной" работы с менеджментом, на предмет однозначного понимания объема необходимых ресурсов для достижения поставленных результатов и заканчивая техниками оценки трудоемкости задач, к примеру, техникой Planning Poker.

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

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

Основы тактического планирования
Главное отличие Scrum от классических методологий — смещение фокуса с поставки завершённого продукта на создание системы, решающей задачи бизнеса «здесь и сейчас». Это повышает роль тактического управления: команда должна уметь быстро планировать и реализовывать только самый ценный для владельца продукта (Product Owner) функционал. Планирование в Scrum не утрачивает важности, а становится фундаментальным инструментом: команда берёт на себя обязательства по приоритетным задачам, оценивая их стоимость и своевременность, иначе приоритезация превратится в субъективный выбор по «желательности».

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

Планирование в условиях неопределённости

Так как предсказать далёкое будущее сложно, в Scrum используется планирование методом набегающей волны (Rolling Wave Planning). Его суть проста: работа на ближайшую перспективу детализируется глубоко, а далёкие задачи планируются крупными блоками. По мере движения вперёд «волна» накатывает, и планы детализируются. Это позволяет эффективно управлять ожиданиями заинтересованных сторон, закладывая изменения в сам процесс.

Поэтапное уточнение и устойчивый ритм

План — не догма. Чтобы не оказаться в плену первоначальных наметок, необходима деятельность по поэтапному уточнению планов. Её задача — помочь команде справляться с непредвиденными факторами и синхронизировать ожидания с реальностью. Ключевой элемент успеха здесь — выработка устойчивого ритма работы. Ритм, в который уже заложены временные буферы на решение проблем, гарантирует предсказуемую скорость. Для нахождения ритма команде необходимо: избегать авралов, накапливать статистику по итерациям (время, число проблем) и извлекать из неё системные выводы. Зафиксированный на длинном промежутке устойчивый ритм создаёт резерв для форс-мажоров, творчества и экспериментов.

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

Инструмент оценки: Poker Planning

Классическое открытое обсуждение имеет дефекты: мнение авторитетов давит на остальных, не все готовы высказываться, а найденное «универсальное» решение ломается при смене условий. Poker Planning решает эти проблемы через технику достижения консенсуса.

Ключевая идея: Оценивать задачи не в часах, а в абстрактных относительных единицах («пунктах», «попугаях»). Важен не физический смысл единицы, а единое для всей команды понимание её размера.

Алгоритм проведения:
1. Формирование контекста: Владелец продукта даёт обзор задачи, команда задаёт вопросы.
2. Анонимная оценка: Каждый участник выбирает карту с оценкой и кладёт её рубашкой вверх.
3. Обоснование крайностей: Участники с самой высокой и самой низкой оценкой объясняют свою позицию. Это выявляет скрытые риски или упущенные детали.
4. Цикл до консенсуса: Обсуждение и переголосование повторяются, пока все не придут к согласию.
Роли: Скрам-мастер фасилитирует, но не оценивает. Решение принимает вся команда, коллективно беря на себя ответственность. Практика показывает, что для новой команды эффективным стартом будет выкладывание задач в линию по возрастанию сложности самым опытным участником.

Инструмент контроля: Burndown Chart

Диаграмма сгорания работ (Burndown Chart) — это главный визуальный инструмент для ежедневного контроля прогресса спринта. По вертикали — оставшиеся задачи, по горизонтали — время. Цель команды — привести реальный график «сгорания» задач к идеальному.

Принятие решений:
• Реальный график выше идеального: Команда отстаёт. Необходимо обсудить причины на собрании и скорректировать действия. Если исправить ситуацию своими силами не удаётся, владелец продукта должен урезать объём спринта, убрав наименее приоритетные задачи.
• Реальный график ниже идеального: Команда опережает план. Следует добавить в спринт дополнительные задачи с высшим приоритетом из бэклога.

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

Выводы

1. Ценность планирования в Scrum не снижается, а смещается в тактическую плоскость для приоритезации работ по их бизнес-ценности.
2. Метод набегающей волны (Rolling Wave Planning) позволяет эффективно сочетать детальное планирование ближайших задач с гибкостью в отношении отдалённых целей.
3. Поэтапное уточнение планов — это не разовая акция, а непрерывная деятельность по синхронизации ожиданий и адаптации к новым данным.
4. Устойчивый ритм работы команды является ключевым фактором для накопления статистики и предсказуемого прогнозирования производительности.
5. Статистические данные по выполненным итерациям гораздо надежнее для прогнозов, чем теоретические расчёты или субъективные ожидания.
6. Техника Poker Planning устраняет влияние авторитетов и страх публичного высказывания за счёт анонимного выставления оценок.
7. Оценка задач в Scrum должна производиться в относительных, а не в абсолютных величинах для достижения общего понимания сложности.
8. Скрам-мастер не участвует в оценке задач, но фасилитирует встречу Poker Planning, обеспечивая соблюдение правил.
9. Диаграмма сгорания работ (Burndown Chart) является простым визуальным инструментом для ежедневного самоконтроля прогресса спринта командой.
10. Отклонение реального графика Burndown Chart от идеального является сигналом к немедленному анализу причин и принятию управленческих решений.
11. При отставании от плана приоритетным решением является сокращение объёма наименее ценных задач спринта, а не сверхурочная работа.
12. Любое предложение по оптимизации процесса от члена команды должно быть рассмотрено, а не отвергнуто без обсуждения.

Вопросы для самопроверки

1. Каким образом переход к Scrum смещает фокус с общего планирования на тактическое управление?
2. Какую проблему долгосрочного прогнозирования решает метод набегающей волны?
3. Какие три принципа необходимо соблюдать команде для выхода на устойчивый ритм работы?
4. Как накопление статистических параметров итераций помогает в прогнозировании?
5. Какие недостатки классического подхода к оценке задач через открытое обсуждение устраняет Poker Planning?
6. В чём заключается принципиальная разница между оценкой задач в часах и в относительных единицах (пунктах)?
7. Почему в процессе Poker Planning участники с самой высокой и самой низкой оценкой должны аргументировать свою позицию?
8. Для чего используется диаграмма сгорания работ (Burndown Chart) и какие показатели на ней отображаются?
9. Что должна предпринять команда в первую очередь, если фактический график на Burndown Chart начал устойчиво подниматься выше идеального?
10. Каковы действия команды при устойчивом опережении идеального графика на диаграмме сгорания работ?
11. Какую роль играет владелец продукта в процессе оперативного исправления отставания от плана спринта?
12. Почему диаграмма сгорания работ должна быть общедоступной?
Вернуться к учебному плану