Планирование спринтов в Scrum
Спринт — это короткий временной интервал, в течение которого scrum-команда выполняет определённый объём работы. Спринты являются основой методологий scrum и agile, и правильное планирование спринтов поможет вашей agile-команде создавать более качественное программное обеспечение с минимальными проблемами.
Многие считают Scrum-спринты синонимом Agile-разработки, однако это не так. Agile — это набор принципов, а Scrum — конкретная методика для их реализации.
Поскольку между задачами Agile и процессами Scrum много общего, эти понятия часто связывают друг с другом. Благодаря спринтам команды могут следовать принципу Agile «частая поставка рабочего программного обеспечения», а также реализовать задачу Agile «реагирование на изменения в соответствии с планом». Прозрачность, проверка и адаптация — это принципы Scrum, которые идеально дополняют методологию Agile и являются основой концепции спринтов.
Руководство по Scrum предоставляет теоретическую основу для обсуждения спринтов. Мы хотим добавить немного практического опыта, поделившись рекомендациями от людей, которые занимаются этим ежедневно.
Как планировать и выполнять спринты в Scrum
Авторы Scrum продумали всё до мелочей. Чтобы спланировать предстоящий спринт, необходимо провести собрание по планированию спринта. Это мероприятие, на котором команда обсуждает два основных вопроса: какую работу можно выполнить в этом спринте и как она будет выполняться?
Выбор подходящих рабочих задач для спринта осуществляется совместно владельцем продукта, Scrum-мастером и командой разработчиков. Владелец продукта определяет цель спринта и задачи из бэклога продукта, которые помогут достичь этой цели.
Далее команда разрабатывает план, по которому будут выполняться задачи бэклога, чтобы к концу спринта вся работа была завершена. Выбранные задачи и план их выполнения называются бэклогом спринта. К окончанию совещания по планированию спринта команда должна быть готова приступить к работе, выбирая задачи из бэклога спринта и изменяя их статус с «В работе» на «Готово» по мере завершения.
Во время спринта команда проводит ежедневные Scrum-совещания (стендапы) для обсуждения хода работы. Эти встречи необходимы для выявления блокеров и проблем, которые могут повлиять на достижение цели спринта.
По завершении спринта команда представляет выполненную работу на обзоре итогов спринта. Это возможность продемонстрировать результаты заинтересованным сторонам и другим членам команды перед тем, как они будут интегрированы в рабочую среду.
Цикл спринтов завершается на ретроспективе спринта — моём любимом собрании. На этом этапе команда может определить области, требующие улучшения в следующем спринте. Используя эту информацию, можно начать следующий цикл спринта.
Что стоит и не стоит делать
Даже если основные принципы уже освоены, большинство команд сталкиваются с трудностями в начале работы со спринтами. Меган Кук завершает эту тему списком действий, которые стоит и не стоит делать при использовании спринтов, основанным на её многолетнем опыте.
Что нужно делать
- Цель спринта: Убедитесь, что команда осознает цель спринта и знает, как измерить успех. Это важно, чтобы все участники были на одной волне и работали в одном направлении.
- Четкий бэклог: Обеспечьте наличие четкого и понятного бэклога с приоритетами и зависимостями. Если бэклог плохо ведется, он может стать источником проблем и нарушить рабочий процесс.
- Оценка скорости команды: Правильно оцените скорость работы команды, учитывая такие события, как отпуска и общие собрания.
- Описание задач: Используйте собрания по планированию спринта для уточнения задач. Поощряйте участников команды за создание общего плана для всех историй, багов и задач, включенных в спринт.
- Исключение нерешаемых задач: Исключайте задачи, которые зависят от работы других команд или требуют внешнего утверждения, если нет уверенности в их выполнении.
- Фиксация решений: После принятия решений или составления плана убедитесь, что есть человек, который задокументирует эту информацию в системе управления проектами, например, в Jira. Это обеспечит доступность информации для всех участников позже.
Чего не стоит делать
- Не переоценивайте свои возможности: Не берите на себя слишком много задач, не завышайте скорость работы и не ставьте невыполнимые задачи на спринт. Это может подвести команду.
- Не забывайте о качестве: Не игнорируйте качество и технический долг. Обеспечьте время на контроль качества и работу, не связанную с функциональностью, например, исправление багов.
- Ясность и четкость: Не допускайте ситуаций, когда у команды нет четкого понимания задач спринта. Определите объем работы и не зацикливайтесь на скорости выполнения; убедитесь, что все участники работают согласованно.
- Избегайте слишком рискованных задач: Не берите на себя слишком много неопределенной или рискованной работы. Разделяйте крупные истории или истории с высокой степенью неопределенности и оставляйте часть работы на следующий спринт.
- Слушайте команду: Если команда выражает обеспокоенность по поводу скорости, уровня неопределенности или объема работы, не игнорируйте это. Рассмотрите проблему и внесите необходимые изменения.
Что такое планирование спринта?
Планирование спринта — это событие в Scrum, которое обозначает начало спринта. В ходе планирования определяется объем работы на спринт и способы её выполнения. Планирование спринта осуществляется при участии всей команды Scrum.
Основные аспекты планирования спринта
- Что: Владелец продукта определяет основную задачу (или цель) спринта и задачи из бэклога, которые необходимо выполнить для её достижения. Scrum-команда решает, что можно выполнить за спринт и как это сделать.
- Как: Команда разработчиков составляет план работ для достижения цели спринта. Итоговый план согласуется между командой разработчиков и владельцем продукта, исходя из ценности и затрачиваемых усилий.
- Кто: Планирование спринта невозможно без участия владельца продукта и команды разработчиков. Владелец продукта ставит цель, а команда разработчиков оценивает, может ли она её достичь и как это сделать. Отсутствие одной из сторон делает планирование невозможным.
Входные данные
Отличной отправной точкой для планирования спринта является бэклог продукта, так как многие задачи из него могут войти в текущий спринт. Команда должна также проанализировать текущую работу и оценить свои возможности.
Результаты
Самое важное, что команда должна вынести с собрания по планированию спринта, — это понимание того, что нужно достичь за спринт и как начать движение к этой цели. Это можно отразить в бэклоге спринта.
Подготовка к собранию по планированию спринта
Чтобы собрание по планированию спринта прошло успешно, требуется определенная подготовка. Владелец продукта должен освежить в памяти выводы из предыдущего обзора спринта, ознакомиться с мнениями заинтересованных сторон и их видением продукта. Это помогает подготовить почву для спринта. Для обеспечения прозрачности и актуальности бэклог продукта должен быть приведен в соответствие с текущими реалиями. Уточнению бэклога посвящено отдельное мероприятие Scrum, но некоторые бэклоги не требуют этого. Большинству команд полезно собраться перед планированием спринта, чтобы пересмотреть и скорректировать бэклог.
Если спринты длятся две недели, проводите совещание по улучшению бэклога в середине спринта. Это помогает команде отвлечься от текущих задач и оценить перспективы, подготовиться к следующему планированию спринта и взглянуть на текущую работу со стороны.
Ограничение времени на планирование спринта
На планирование спринта должно отводиться не более двух часов на каждую неделю спринта. Так, собрание по планированию двухнедельного спринта не должно длиться более четырех часов. Это максимальная продолжительность, за которую отвечает Scrum-мастер. Если команда завершает работу раньше, собрание можно закончить раньше. Ограничения определяют только максимальную продолжительность собрания; минимальная продолжительность не задается.
Совет: Посвятите первую часть собрания по планированию спринта определению цели спринта, а не наполнению бэклога. Фокусировка на цели позволяет продумать альтернативные способы её достижения.
Сосредоточьтесь на результатах, а не на работе
Во время планирования спринта легко запутаться, пытаясь определить, какое задание выполнить первым, кто будет его выполнять и сколько времени это займет. Если работа многоаспектная, у участников собрания может быть недостаточно информации, и они будут основывать решения на предположениях. В основе Scrum лежит эмпирический подход, поэтому лучше учиться на практике и использовать полученные данные.
Цель спринта определяет ожидаемый результат, который можно сформулировать в бэклоге. Описание работы с точки зрения клиента, например, через пользовательские истории, помогает увидеть, какой результат нужен клиенту, и установить критерии «готовности». Заранее проясните как можно больше аспектов предстоящей работы, чтобы у команды было четкое представление. Лучше задать вопрос, ответ на который будет найден во время спринта, чем оставаться в неопределенности.
Подсказка: Незнание и неопределенность — разные вещи. Не скрывайте свое незнание за расплывчатыми формулировками. Будьте честны о том, что вы не знаете, и говорите, что стремитесь понять, описывая работу.
При оценке сложности работы не нужно преувеличивать свои знания
Когда вы планируете спринт, важно иметь хотя бы приблизительное представление о сложности работы. Команда должна понимать, что можно выполнить за спринт и сопоставить свои возможности с предполагаемыми усилиями. Часто команды считают, что оценка сложности означает принятие обязательств, но это не так. Оценка — это всего лишь прогноз, основанный на текущих знаниях. Хорошей практикой является использование очков за пользовательские истории или обозначения размеров одежды, чтобы рассмотреть задачу с разных сторон. Однако не стоит надеяться, что эти инструменты дадут объективный ответ (такого ответа не существует). Чем больше неизвестных факторов, тем менее точной будет оценка. Для качественной оценки сложности нужна атмосфера доверия, где члены команды свободно обмениваются информацией и предположениями. Если оценки применяются негативно после завершения работы, то в будущем прогнозы будут сделаны с большим запасом на случай ошибки или команда будет тратить больше времени на оценку из-за неуверенности.
Совет: Ознакомьтесь с различными методами оценки сложности, такими как использование размеров футболок или очков за пользовательские истории. Это поможет увидеть проблему с разных сторон.
Резюме
Планирование спринта можно легко усложнить, забыв, что цель этого мероприятия — создать план для следующего спринта с необходимой информацией, но без лишних деталей. Этот план не должен быть обузой для команды; напротив, он должен фокусировать внимание на создаваемой ценности и способствовать самоорганизации. Хороший план спринта определяет желаемый результат и подробно описывает шаги для его достижения, мотивируя команду. Однако не стоит пытаться предусмотреть все до мелочей. Вместо того чтобы составлять детальный план, «учитывающий каждую минуту спринта», сосредоточьтесь на цели спринта и включите в бэклог спринта только необходимые задачи для начала работы. Убедитесь, что команда может взяться за дополнительные задачи из бэклога продукта, если цель спринта достигнута раньше срока.
Scrum — это методология, предназначенная для решения сложных задач. В ее основе лежит эмпирический подход, который использует опыт практической работы для решения проблем. Зависимость от реальных данных и опыта ограничивает возможности планирования, поэтому не стоит стремиться к идеальному плану. Вместо этого сосредоточьтесь на достижении результатов и приступайте к работе. Работа не обязательно будет сложной, даже если проблема кажется таковой.