[35].
Существуют ли задачи без истории?
Несколько лет назад я разделял задачи на две категории. Они не соотносились с историями: «срочные» задачи для работы, добавленной во время спринта, и «повторяющиеся» задачи для работы, которая выполняется каждый спринт.
Пример: работа, выполняемая для развертывания ПО в конце каждого спринта на тестовом сервере, является повторяющейся, а поддержка для ответа клиенту, чей продукт не функционирует, – уже срочная.
С изменениями, в частности, из-за автоматизации, мне кажется, что повторяющуюся работу следует показывать меньше. Чрезвычайные ситуации зато происходят всегда. В качестве возможной альтернативы можно помещать срочную работу в резервную историю в виде задач.
На самом деле, это не так важно. Команда сама выберет, что ей подходит.
Список задач, созданных во время планирования, не является законченным или замороженным. Какие-то задачи могут быть добавлены, другие удалены, а третьи – разделены во время спринта. Необходимо детализировать лишь несколько историй, которые пойдут в работу в начале спринта.
Для других историй это будет сделано по ходу спринта.
Истории сохраняют последовательность во время спринта. Наименее приоритетные остаются на конец, и у команды есть время на их декомпозицию.
Команда Peetic, состоящая из пяти человек и проводящая двухнедельные спринты, реализует в среднем десять историй и пятнадцать задач за спринт. Во время планирования команда определяет примерно двадцать задач для четырех историй, которые она начинает.
В большинстве организаций управление проектами до перехода к Scrum основывалось на задачах, продолжительность выполнения которых больше, чем рекомендовано в формате спринтов. Это могли быть дни, а то и недели.
Выполнение одной задачи в среднем занимает меньше одного дня, а истории – от одного до трех дней.
Отличным принципом для команды станет завершение задачи на следующий день после ее начала. Прогресс проверяется во время ежедневных схваток.
Это означает, что усилия, требующиеся на выполнение задачи, не просто ограничены – они сужены рамками одного дня. Команда не разбивает задачу на фрагменты, растягивая ее тем самым на несколько дней. Это приносит участникам удовлетворение от завершения, что действительно важно для душевного состояния и настроения.
Рисунок 9.5 – Задачи в таблице
Приверженность и вовлечение входят в список ценностей Scrum. На что же они влияют при планировании?
• На список историй или на скорость команды?
Нет, желательно, чтобы команда не ориентировалась на фиксированное количество историй: это сильно ее ограничивает. А мы знаем, что отсутствие возможности корректировок в планах – одна из причин накопления технического долга.
Истории являются фактором корректировок в спринте.
Приверженность команды важна для мотивации участников и выявления сомнений, которые необходимо учесть и обсудить прежде, чем закончить собрание. Приверженность и вовлечение играют важную роль на пути к достижению цели спринта.
• Приверженность цели спринта!
Цель формулируется одной фразой, которая направляет энергию участников. Она разрабатывается командой на основе предложений Владельца продукта.
Цель спринта описывает результат, ожидаемый к концу спринта, на который ориентируется команда и который определяет успех спринта.
Чаще всего он касается функциональной сферы, функциональности. Для минимизации рисков в начале проекта, во время первых спринтов первого сезона, цель может быть направлена более на технические моменты, нежели функциональные.
Примеры цели спринта:
– спринт 1 – аутентификация пользователей.
– спринт 2 – открыть онлайн-магазин корма для животных.
– спринт 3 – запустить оплату через Paypal.
Внимание: цель не должна быть сформулирована несколькими историями. Не нужно злоупотреблять «и» – лучше, по возможности, вообще их избегать: это означает индивидуальные вовлечение и приверженность, а не коллективные, что самое важное.
Цель спринта доводится до сведения всех заинтересованных сторон. Также желательно проговорить ее с ними в конце обзора предыдущего спринта. Но окончательно цель формулируется командой: только команда знает в полной мере, какие задачи способствуют выполнению этой цели.
В каком значении следует рассматривать «приверженность»?
Приверженность в данной ситуации соответствует условиям, при которых выполнение того или иного действия может быть отнесено только к тому, кто его совершил.
Говоря о цели спринта, команда вовлекается в работу над созданием инкремента того уровня качества, что был заявлен в критериях завершенности. Она также обязуется быть прозрачной в отношении хода спринта и уведомить Владельца продукта, если по поводу цели появляются какие-либо сомнения или ее следует доработать.
Чтобы вовлеченность команды имела смысл, важно, чтобы она была свободной и добровольной, чтобы на команду не оказывали давление и чтобы в случае изменения условий пересматривались обязательства команды.
Рисунок 9.6 – Цель определяет направление
• Взятие задач к выполнению
Участники команды сами берут себе задачи, учитывая при этом порядок историй. Нет смысла начинать сразу все задачи: достаточно, чтобы у каждого была работа на первый день спринта. Остальные задачи команда будет разбирать позднее. Они будут выполняться в ходе спринта в зависимости от доступности каждого участника.
Обычно взятие задач не является проблемой для команды. Паттерн роения позволяет избежать колебаний. Самоорганизация в действии.
Самоорганизация – это здорово. А что делать со сложной, но важной работой, за которую никто не взялся?
В традиционных методах разработки некоторые задачи считают неблагодарными – например, составление плана тестирования, отчетов, другой документации. Иногда для их выполнения бывает трудно найти добровольца. Обычно руководитель проекта использует свой авторитет и назначает участникам.
Я работал со многими Scrum-командами и никогда не видел, чтобы существовала какая-то такая работа, которую никто не хотел брать на себя. Есть несколько причин, почему этого не происходит.
– Сложных задач больше нет. Действительно, разделение на задачи осуществляется совершенно иным способом. Во время собрания по планированию задачи выявляются на основе выбранных историй и четко используются как способ для их завершения. Нет задач, не связанных с конкретными результатами – как, например, когда кого-то из разработчиков просят написать наборы модульных тестов в конце проекта, просто потому, что так надо для процесса.
– Даже если есть сложная задача, она совсем маленькая. Действительно, задачи в спринте выполняются меньше чем за один рабочий день. Это воспринимается куда легче, чем, например, задача по написанию проектной документации, которая требует десяти дней работы при традиционном подходе. Присвоение задачи участнику также может быть выполнено в игровой форме или коллективно – в случае, если нет добровольца: подбрасыванием монетки, выбрасыванием дайсов и т. д.
– Переход из директивного режима в автономный режим расширяет возможности каждого.
• Начало работы
Порядок историй уже обозначен. Наиболее приоритетные идут в работу самыми первыми. В плане спринта участники переносят эти задачи в колонку в процессе. Остальные истории остаются в колонке готово.
Рисунок 9.7 – План спринта, в данном случае, без задач, в конце планирования
Если команда применяет паттерн работы, задачи соотносятся с историями, которые команда начала в первую очередь.
Участники обсуждают прогресс утром следующего дня в ходе схватки перед доской.
9.5 Антипаттерны
Ситуация. Думая о минимизации рисков, команда посвящает большую часть планирования оценке историй и задач с целью калибровки содержимого спринта.
Последствия. Команда считает, что теряет время. Она упускает самое важное – цель спринта. Появляется микроменеджмент.
Как сделать лучше? Оценка задач в часах давно устарела. Это замедляет работу. Что касается оценки историй по пунктам, это стоит делать не во время планирования, а во время доработки.
Ситуация. Владелец продукта, чтобы мотивировать команду, настаивает на большем количестве историй во время спринта.
Последствия. Команда подвергается давлению, это отрицательно сказывается на мотивации.
Как сделать лучше? Владелец продукта предлагает цель и определяет порядок историй для спринта. Команда решает, какие истории она берет в работу.
С другой стороны, команда может предложить внести изменения в приоритетный порядок историй, а Владелец продукта принимает или отклоняет это предложение.
Ситуация. Во время прошлого спринта команда потратила много времени на планирование, и Scrum-мастер – в погоне за эффективностью – сам составляет список готовых задач и назначает их участникам.
Последствия. Команда не участвует в работе. Если задачи уже определены, более того, распределены, команда не чувствует себя сопричастной. По сути дела, это возврат к схеме управления с руководителем во главе.
Как сделать лучше? Scrum – это концепция автономной и уполномоченной команды. Все делается коллективно, в одном месте и в одно время. Есть смысл попробовать паттерны