Какой продолжительности должен быть Agile Sprint?

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

Учитывая, что продолжительность спринта составляет от 4 до 5 недель, будет сгенерировано от 13 до 14 спринтов. Является ли это разумным количеством спринтов, или нам следует стремиться к меньшему количеству спринтов (скажем, 8-10) для проекта такой продолжительности? Существует ли эмпирическое правило относительно разумного количества спринтов для проекта с бюджетом в несколько человеко-лет?

Я отредактировал ваш вопрос. Я думаю, вы хотели сказать: «Учитывая, что продолжительность спринта составляет 4/5 недель…».
@ jmort253 нет проблем.

Ответы (16)

Если бы вы были новичком в Scrum и спринтах, я бы сказал, что вы должны начать с определенной продолжительности (3 недели или 30 дней) и проверить, работает ли это для вас, и внести изменения, если это необходимо. Вместо этого похоже, что вы уже знакомы со спринтами, поэтому вопрос: каков ваш опыт работы с продолжительностью спринта? Есть ли у вас какие-либо сомнения, которые заставляют вас задать вопрос?

Я вижу пару влияющих факторов:

  • Спринты связаны с некоторыми дополнительными временными затратами (встречи, планирование, демонстрация, свободный день?). Слишком короткий спринт означает низкое соотношение работы и затрат.
  • Спринты должны доставлять . Если вы выберете слишком короткие спринты, некоторые из них будут фиктивными: цель спринта не будет достигнута, практически ничего интересного для демонстрации не будет, цель спринта сама по себе будет заглушкой, а ретроспективы будут иметь тенденцию быть скучными. Другими словами, спринт не принесет результатов.
  • ...и доставлять часто . Если вы выберете слишком длинные спринты, вы, вероятно, заметите: переполненное демо, слишком много целей на спринт и ретроспективы, когда никто не помнит, что произошло в начале спринта. После завершения спринта клиент будет «завален» функциями, поэтому спринты будут недостаточно частыми (гибкими).
  • Между спринтами не должно быть задержек . Проведите демонстрацию, ретроспективу, оценку бэклога (выходной, если есть такое правило), совещание по планированию и начните следующий спринт. Вам следует присмотреться к 5-й неделе, так как она занимает 20% вашего времени. Вы, вероятно, можете устранить ошибки во время спринта, упростить развертывание и относительно PO: у них должны быть уже подготовлены задачи для следующего спринта, не так ли?

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

+1, но не согласен с отсутствием задержек между спринтами. Учитывая размер проекта и компании, может оказаться невозможным полностью расставить приоритеты в бэклоге и подготовить его к работе в начале каждого спринта.
Не уверен, что лучше начинать такой спринт. Ну, у меня недостаточно информации, чтобы судить.
+1 Не первый мой спринт, но самый длинный проект, с которым я сталкивался в agile-моде. Я обеспокоен тем, что на ранних стадиях, когда форма проекта еще не сформировалась, могут ли иметь смысл более длительные ранние спринты с точки зрения соотношения работы и затрат.
Обычно команда получает импульс, выполняя больше технических задач и устраняя препятствия, а не устанавливая продолжительность спринта. Я бы также порекомендовал посмотреть итоги ретроспективы – обнаружены ли препятствия/улучшения и приняты ли надлежащие меры ?
Бартош, вы допустили фактическую ошибку. Временные рамки для церемоний Scrum масштабируются линейно с продолжительностью спринта, поэтому они должны стать проблемой сейчас.
@BartoszRakowski слишком короткие спринты - это НЕ плохо, если все сделано правильно, поскольку команда Scrum может быстрее адаптироваться к изменениям в объеме проекта. Это просто означает, что вы поставляете меньшие приращения продукта. Очень часто, если вы создаете программный продукт, PO получает больше информации о том, что им нужно дальше, в течение каждого цикла спринта, и вы можете соответствующим образом спланировать свой следующий цикл спринта. Выполняя 3-недельный спринт, PO должен будет ждать 3 недели, пока работа не будет завершена, после чего часть работы может стать избыточной или иметь меньший приоритет по сравнению с другими частями работы в невыполненной работе.

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

  • у спонсора/заказчика проекта есть определенная бюрократия
  • ресурсы (люди) медленные в доставке
  • некоторые задачи занимают больше времени и не могут быть разбиты на подзадачи

Это самые важные. Проанализируйте свои и постарайтесь с ними бороться, чтобы ваши спринты были как можно короче. В целом, ваша продолжительность 4/5 недель выглядит разумной для обычных обстоятельств. Но опять же, я бы рекомендовал попробовать сделать его короче.

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

В общем, чем короче спринт, тем лучше, даже если вы только начинаете. Чем короче спринт, тем раньше можно будет проверить и адаптироваться. Более короткие спринты также будут способствовать внедрению более гибких практик: сокращению незавершенного производства, уменьшению размера партии и повышению пропускной способности. Более длинные спринты могут стимулировать старые привычки водопада. На недавнем вебинаре, который мы провели для 2800 человек, мы опросили участников на предмет наиболее распространенной продолжительности спринта, и чуть более 50% ответили, что это 2 недели. Обычно мы рекомендуем именно такую ​​продолжительность спринта, хотя есть более зрелые команды, у которых спринта вообще нет.

Я не думаю, что это работает, учитывая, что негибкие методологии, такие как водопад, по сути, представляют собой спринты в несколько месяцев (возможно, даже до 2 лет для предприятий). Короткие спринты с этой точки зрения могут помешать внедрению.
У вас случайно нет ссылки на это исследование о длине спринта? Я хотел бы проверить это, если это возможно. Спасибо!
jmort253 этот вопрос был задан на недавнем вебинаре Rally. Запись можно найти здесь rallydev.com/events/agile_webinar_series/… . Вопрос был задан примерно через 20 минут. Результаты были собраны и представлены участникам, но не опубликованы (по крайней мере, пока).
ashes999 спасибо за ответ, я всегда рад услышать другие точки зрения, но мой опыт показывает, что в целом более короткие спринты работают лучше. более длительные спринты добавляют риск, поскольку работа слишком долго остается частично завершенной, а цикл проверки и адаптации необходим для постоянного улучшения при недостаточном питании.

Исходя из своего опыта, я обнаружил, что хорошо иметь 7-10-дневные спринты в начале и увеличивать их до 15-20 дней позже , когда команда переходит к этапам нормирования/выполнения.

Привет, Адриан, и добро пожаловать на биржу стека управления проектами. Можете ли вы уточнить, почему лучше начинать с небольших спринтов, а затем увеличивать их? Если возможно, попробуйте подкрепить свой ответ ссылками. Если ссылки неприменимы, как в этом случае, когда ответы основаны на вашем личном опыте, вы можете объяснить, почему этот подход сработал для вас, и уточнить ответ, исходя из вашего собственного профессионального опыта. Спасибо за участие, и я лично с нетерпением жду ответа, почему это полезно. :)
Я думал об обратном — как удлинение спринтов сработало для вашего проекта?
@ jmort253, спасибо.
Поскольку команда для проекта, как правило, является вновь сформированной, им необходимо будет пройти 4 этапа формирования команды - формирование - штурм - нормирование - выполнение. В течение первых двух фаз продуктивность команд довольно низкая, основной движущей силой является необходимость блистать по сравнению с блистательной командой (это особенно верно, если в команде есть новички в Scrum). Чтобы сделать команду единообразной и заставить членов команды чувствовать ответственность как ЕДИНОГО, я счел полезным дать им почувствовать весь жизненный цикл Спринта как можно чаще и как можно раньше.
Другое дело — взгляд PO на продукт, который находится в разработке. Опыт, который я получил, PO и заинтересованные стороны бизнеса получают представление о том, чего они хотят, после первых 2-3 спринтов - когда они действительно могут бродить по продукту, это момент, когда они приходят к Nice, Big, Juicy. Пользовательские истории или эпики , для создания которых потребуется более длительный спринт, поэтому они немного растут к этому моменту. Как сказал @amelvin, спринты будут уменьшаться в размерах позже, когда продукт будет находиться на обслуживании, но я бы предложил перейти на Канбан в этот момент. PS: извините за несколько ответов

амельвин,

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

Я говорю «в итоге», потому что мы совершенно сознательно в первые несколько месяцев возились с рядом основ, и длина спринта была одной из них. Более длинные спринты (IIRC, 4 недели были самыми длинными, которые мы пробовали) не были эффективными. Мы чувствовали, что получение обратной связи занимает слишком много времени (ретроспективы), истории были менее точными, а проблемы, казалось, затягивались, а не закрывались быстро. Я не думаю, что это простая данность — команды других проектов могли бы справиться с этим лучше — но наш опыт показал, что чем короче, тем лучше.

Здесь нет правила. Самая распространенная продолжительность спринта — 2 недели. Подавляющее большинство команд, я бы сказал, более 90% тех, кто использует тайм-боксинг, будут иметь от 1 до 4 недель.

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

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

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

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

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

+1 Спасибо за ссылку; экспериментирование должно быть возможным.

Согласно ScrumMethodology.com , спринт длится 30 дней. Тем не менее, я вижу преимущества и недостатки как в более длинных, так и в более коротких спринтах. Фактически, руководство по Scrum на веб-сайте Scrum.org описывает спринт как не более 30 дней по следующим причинам:

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

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

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

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

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

+1 Просто заканчиваю первый спринт - интересно, могут ли спринты выиграть от того, что они будут длиннее в начале, а затем короче, когда наберется импульс.
Информация на этом сайте о продолжительности спринта неверна, если вы посмотрите руководство по схватке на scrum.org. в руководстве говорится, что спринт должен длиться НЕ БОЛЬШЕ 30 дней. В то время как обычно рекомендуется 2 недели, чрезвычайные обстоятельства могут потребовать, чтобы он был продлен ДО 30 дней.
Спасибо, что указали на это, @JorgeCarvalho. Я пошел дальше и включил цитату из Руководства по Scrum.

Вы можете увидеть хорошее освещение вашего конкретного вопроса, но как вы работаете в течение 4/5 недель для своей команды, клиента, системы?

Вы пробовали другие длины? Давали ли они лучшие результаты, было ли легче планировать, приносить пользу, была ли команда счастливее?

Как продвигается ваше общее внедрение Agile? Помогает ли вам 4/5 недельный интервал принять другую часть agile/scrum рецепта для разработки программного обеспечения?

Вы перестали улучшаться? С чего вы начали с длины спринта? Вы и ваша команда активно управляете длительностью, как говорил Кен Клайн ?

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

+1 Первый спринт в новой компании; активное управление длиной спринта кажется хорошей тактикой.

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

Однако, чтобы ответить на ваш вопрос: НЕТ эмпирического правила разумного количества спринтов. Я руководил многими проектами, в настоящее время 5 проектов одновременно. Некоторые из них длятся менее 10 спринтов, некоторые длятся 10-30 спринтов, а некоторые особенно длинные проекты занимают > 50 спринтов. И каждый проект может иметь разную продолжительность спринта (1, 2 и 3 недели) .

В группе Agile, в которой я участвую , многие команды выбирают 30-дневный период, в то время как многие команды выбирают 2 недели и 3 недели.

Итак, как мне определить длину спринта? Решение принимается после рассмотрения: предполагаемой продолжительности проекта, характера продукта, характера вашей команды.

1) Расчетная продолжительность проекта.

Оценка не должна быть точной на 100%, чтобы дать вам представление о том, как долго продлится проект. Если он длится более 6 месяцев, имеет смысл рассмотреть 3-недельную или 30-дневную продолжительность.

2) Природа продукта.

Вам нужно спросить себя:

  • Нужно ли часто адаптировать этот продукт к потребностям рынка/реальных пользователей, чтобы приносить пользу заинтересованным сторонам? Если это так, вы должны сократить длину спринта и чаще выпускать рабочую версию, чтобы получить отзывы общественности.
  • Технически возможно ли доставить продукт в короткие сроки? Как вы знаете, короткая итерация приветствуется, но вы не можете делать это в 100% случаев из-за технических сложностей. Например, в каком-то проекте нам нужно реализовать сложный алгоритм, прежде чем показывать его заинтересованным сторонам.

3) Характер вашей команды

Ваша команда работает наиболее эффективно в недельных спринтах или в 30-дневных спринтах? Если вы работали с командой на нескольких двухнедельных спринтах и ​​чувствуете, что они работают хорошо, почему бы не подумать об этом?

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

В моих текущих проектах для проектов обслуживания мы часто выбираем 1-недельный спринт, а для других мы эффективно работаем в 3-недельных и 4-недельных спринтах, чтобы поделиться личным опытом.

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

Более короткие спринты обычно превосходят более длинные спринты.

Из гораздо более длинного поста в блоге Shorter Trumps Longer

Плюсы

  • Поскольку у команды больше ретроспектив, но они короче, у них больше возможностей попробовать небольшие изменения. Это также дает больше возможностей для обучения.
  • Более частые Обзоры Спринта дают Владельцу Продукта больше отзывов и больше возможностей для изменений. Это должно в значительной степени устранить необходимость для Владельца Продукта когда-либо запрашивать изменение (т.е. новую Историю) в текущем Спринте.
  • Препятствия и замедления выделяются быстрее, так как ожидается, что команда завершит выполнение функций к концу каждого спринта. Это заставляет команду смириться с вещами, которые их замедляют.
  • Более короткие циклы облегчают планирование, что повышает концентрацию внимания и уменьшает объем «черной работы». Заставляет команды лучше выполнять работу по разделению историй или функций на более мелкие фрагменты. Это увеличивает видимость и дает владельцу продукта лучший контроль над расстановкой и снижением приоритетов.

Минусы

  • Труднее добраться до готового продукта в конце одно-двухнедельного цикла. Предупреждение: поначалу это так, однако большинство команд могут освоить это после трех-четырех спринтов.
  • Работа в течение одной недели Спринты поначалу могут быть более напряженными.
  • Накладные расходы — люди говорят, что встречи спринта — это слишком много накладных расходов для однонедельного спринта. Однако встречи спринта масштабируются линейно в зависимости от продолжительности спринта. Таким образом, в однонедельном спринте будет 2 часа планирования спринта, в двухнедельном спринте — 4 часа и так далее.

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

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

Разработчики в команде должны решить, что лучше всего подходит для них. Может случиться так, что короткие спринты лучше всего работают в начале, затем более длинные спринты в середине, а затем более короткие спринты в конце. Или наоборот. Или все одного размера, в 4 недели. Или, может быть, 4 недели окажутся слишком большими для эмпирического подхода, которым является Scrum, поэтому команда разработчиков может решить сократить его до 3 недель.

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

Амельвин,

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

Почему 5-я неделя паузы? Одна из целей схватки — поддерживать устойчивый темп. Если вам нужен перерыв каждые 4 недели, это говорит мне о том, что вы, возможно, перегружаете команду в остальные 4. Сможете ли вы выдержать это в течение 14 месяцев?

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

Необходимость исправления ошибок ставит вопрос о контроле качества. Как вы обеспечиваете качество своих спринтов? Как изменилось ваше определение готовности? Наличие недели исправления ошибок заставляет команду разработчиков срезать углы и снижать качество. Это подкрепляет мысль о том, что проблемы «можно решить в течение недели исправления ошибок». И прежде чем вы это узнаете, вещи, которые, как вы думали, были сделаны, продолжают возвращаться для исправления за исправлением. Здоровый DoD имеет решающее значение для прозрачности, а прозрачность является ключом к успеху проекта. Мой совет — будьте строги с определением «готово» и подталкивайте команду к тому, чтобы оно росло с каждой ретроспективой. Нефункциональные требования — отличные кандидаты для контрольных точек «Определение готовности».

Последнее занятие, которое вы, кажется, включаете в выходные дни, — это оценка и уход за ПБ. Вам не нужно оценивать и расставлять приоритеты по всему бэклогу, но у вас должно быть 2-3 спринта историй, готовых к работе в любое время. Для этого владелец продукта должен регулярно проверять приоритеты, а команда должна выделять время во время спринта для планирования покера или любого другого подхода к оценке, который вы используете.

Прочтите руководство по Scrum на сайте scrum.org, и я бы посоветовал всей команде пройти формальное обучение по Scrum на сайте .org или в Alliance. Большинство решений должна принимать команда. Продолжительность EG Sprint должна определяться командой Scrum. Всегда лучше, когда все понимают основное руководство и аргументацию, стоящую за ним.

Удачи вашему проекту

Я больше на стороне разработки, и я просто хотел вмешаться.

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

Например, рассмотрим ситуацию с 6 строганными блоками:

  • Особенность А (1 нед. 3 д.)
  • Улучшение Б (4д)
  • Функция C (1 нед. 1 д.)
  • Утвержденные исправления ошибок (3d)
  • Рефакторинг 5 (2 нед 4 д)
  • Улучшения обработки ошибок (2d)

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

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

Если команда работает двухнедельными спринтами, это может создать дополнительную работу для команды разработчиков. Но это делается по очень конкретным причинам; то есть предоставлять регулярные возможности для внесения изменений в работу и регулярно демонстрировать прогресс. Помните, что Agile — это реакция на изменения. Речь не идет о создании наиболее эффективного пути развития. Вот почему Agile — это принципиально иной подход к разработке, чем традиционный подход.
@BarnabyGolden, цель Agile — разбить более крупный проект на итеративную разработку с помощью историй. Однако магазины не следует разбивать на части только для того, чтобы все спринты могли быть блоками времени одинакового размера. При таком подходе процессы управления часто возвращаются к нисходящему, а не гибкому. По крайней мере, это был мой опыт.
На самом деле это хороший подход, который отражает типичные методы управления проектами. Вы не всегда можете знать, сколько времени займут некоторые из этих задач, поэтому вместо того, чтобы чувствовать себя плохо из-за того, что вы не сделали все в конце спринта, у вас есть буфер времени, который можно использовать, чтобы убедиться, что функция реализована. хотя это заняло больше времени, чем первоначальный крайний срок 1 спринта.

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