Раздел 5.02. Команда разработки
Команда разработки состоит из профессионалов, создающих потенциально «законченный», готовый к выпуску инкремент продукта к концу каждого спринта. Инкремент создают только члены команды разработки.
Команды разработки создаются организацией и обеспечиваются полномочиями самим организовывать свою работу. Получаемая в результате синергия усиливает продуктивность и эффективность команды разработки.
Команды разработки обладают рядом характеристик.
Они самоорганизованные. Никто (даже Scrum-мастер) не может указывать команде, каким образом превращать пункты бэклога продукта в инкременты потенциально готового к выпуску функционала.
Команды разработки кросс-функциональны и обладают всеми навыками, необходимыми для разработки инкремента продукта.
Scrum не признает никаких других должностей в команде разработки, кроме как разработчик, вне зависимости от вида работы, выполняемой человеком; у этого правила нет исключений.
Отдельные члены команды разработки могут владеть различными специализированными знаниями, но ответственность лежит на команде в целом.
У команды разработки нет подкоманд, которые выполняли бы отдельные функции, как, к примеру, у команды тестирования или бизнес-анализа.
А. Размер команды разработки. Оптимальная по численности команда разработки достаточно мала, чтобы оставаться простой в управлении, и в то же время достаточно велика, чтобы выполнять значительный объем работы в течение спринта. Если в команде разработки менее трех человек, взаимодействие уменьшается, что приводит к снижению продуктивности. Небольшой команде может не хватить навыков в течение спринта, что помешает завершить работу над потенциально готовым к выпуску инкрементом продукта. Если же в команде более девяти человек, потребуется больше усилий для координации их работы. Большие команды разработки создают слишком много сложностей для управления эмпирическим процессом. Роли владельца продукта и Scrum-мастера не учитываются при подсчете размера команды разработки, за исключением случаев, когда они также выполняют работу из бэклога спринта.
Раздел 5.03. Scrum-мастер
Scrum-мастер отвечает за то, чтобы Scrum был понятен всем участникам и применялся. Scrum-мастер добивается этого, наблюдая за тем, чтобы все участники Scrum-команды придерживались теории, практик и правил Scrum.
Scrum-мастер методический лидер для Scrum-команды.
Scrum-мастер также помогает людям, не входящим в состав Scrum-команды, понять, какие взаимодействия со Scrum-командой полезны, а какие нет. Scrum-мастер помогает каждому изменить эти взаимодействия для увеличения ценности, создаваемой Scrum-командой.
А. Scrum-мастер на службе владельца продукта. Помощь Scrum-мастера владельцу продукта заключается в следующем:
находит практические методы эффективного управления бэклогом продукта;
проясняет путем общения видение, цели и пункты бэклога продукта для команды разработки;
учит Scrum-команду создавать лаконичные и понятные элементы бэклога продукта;
помогает достичь понимания долгосрочного планирования в эмпирической среде;
помогает понять гибкие методы разработки и управления;
содействует проведению событий Scrum по просьбе владельца продукта или по необходимости.
Б. Scrum-мастер на службе команды разработки. Обязанности Scrum-мастера на службе команде разработки:
проводит тренировки команды разработки по самоорганизации и кросс-функционалу;
обучает команду разработки создавать продукты высокой ценности;
устраняет помехи, мешающие прогрессу команды разработки;
содействует проведению событий Scrum по просьбе команды или по необходимости;
тренирует команду разработки в организационной среде, где Scrum еще не полностью адаптирован и понятен.
В. Scrum-мастер на службе организации. Обязанности Scrum-мастера на службе организации:
направляет и тренирует организацию на ее пути адаптации к Scrum;
планирует этапы внедрения Scrum в организации;
помогает сотрудникам компании и заинтересованным лицам понять и принять Scrum и принципы эмпирической разработки продуктов;
выступает инициатором изменений, которые повышают продуктивность Scrum-команды;
работает совместно с другими Scrum-мастерами для повышения эффективности использования Scrum в организации.
Статья VI. События Scrum
Предписанные мероприятия используются в Scrum для создания регулярности и минимизации потребности в совещаниях, не оговоренных Scrum. Продолжительность всех мероприятий фиксирована. Это гарантирует, что на планирование будет тратиться необходимое количество времени, потому что дополнительные траты времени непозволительны.
Сам спринт, как и мероприятия, из которых он состоит, дает возможность для инспекции и адаптации. Мероприятия специально разработаны таким образом, чтобы обеспечить критическую прозрачность и контроль. Отказ от одного из таких мероприятий приводит к уменьшению прозрачности и потере возможной инспекции и адаптации.
Раздел 6.01. Спринт
Сердце Scrum спринт длительностью в один месяц или менее, в течение которого создается «законченный», потенциально готовый к выпуску и использованию инкремент продукта. Спринты составляют непрерывную последовательность разработки. Следующий спринт начинается сразу же по окончании предыдущего.
Спринты состоят из планирования, Scrum-митингов, разработки, обзора спринта, а также ретроспективы спринта.
Во время спринта:
не допускается внесение никаких изменений, которые могли бы поставить под угрозу цель спринта;
состав команды разработки остается неизменным;
цели относительно качества не должны сокращаться;
объем работ может быть уточнен и повторно обговорен между владельцем продукта и командой разработки по мере накопления знаний.
Каждый спринт проект длительностью не более одного месяца. Как и другие проекты, спринт используется для достижения целей. Каждый спринт состоит из определения того, что нужно разработать, дизайна и гибкого плана, служащего ориентиром при разработке, работы по проекту и полученного в результате продукта.
Продолжительность спринта ограничена календарным месяцем. Если спринт слишком длительный, может измениться само определение того, что должно быть реализовано, могут возникнуть дополнительные сложности либо вырасти риски. Спринты делают процесс разработки прогнозируемым, обеспечивая инспекцию и адаптацию на пути к цели проекта как минимум каждый календарный месяц. Спринты также ограничивают риски по тратам одним календарным месяцем.
А. Отмена спринта. Спринт можно отменить до его завершения. Только у владельца продукта есть право на то, чтобы отменить спринт, хотя он может сделать это и под влиянием заинтересованных лиц, команды разработки или Scrum-мастера.
Спринт отменяют в случае, если его цель перестает быть актуальной. Это может произойти вследствие изменения направления работы компании, изменения рыночных условий или технологий. В общем, спринт нуждается в отмене, если в силу некоторых обстоятельств в нем уже нет необходимости. Однако, принимая во внимание его небольшую продолжительность, отмена редко имеет смысл.
Когда спринт отменяют, все «законченные» элементы бэклога продукта рассматриваются. Владелец продукта их принимает при условии, что они представляют потенциально готовый к выпуску инкремент функционала. Все незаконченные пункты бэклога продукта переоцениваются и возвращаются в список. Объем работы, проделанный над ними, быстро убывает, поэтому нуждается в пересмотре.
Отмена спринта требует дополнительных ресурсов, так как все должны перегруппироваться для следующего планирования спринта и приступить к новому спринту. Отмена спринта травматическое событие для Scrum-команды и, в общем, нетипична.
Раздел 6.02. Планирование спринта
Работа на предстоящий спринт планируется во время процесса планирования. План действий создается при совместной работе всей Scrum-команды.
Для спринта длиной в месяц встреча ограничена восемью часами. Для более коротких спринтов на планирование обычно выделяется пропорционально меньше времени. Например, для двухнедельного спринта проводится четырехчасовое планирование.
Мероприятие по планированию спринта состоит из двух частей, и на каждую отводится половина общего времени собрания. Каждая часть последовательно отвечает на следующие вопросы:
что может быть получено в инкременте продукта следующего спринта?
как будет выполняться работа, необходимая для создания инкремента продукта?
А. Часть 1. Что будет сделано в этом спринте? В этой части команда разработки прогнозирует функционал, который будет разработан в течение спринта. Владелец продукта озвучивает упорядоченный список задач команде разработки, и вся Scrum-команда совместно вырабатывает понимание работы, которую необходимо проделать в этом спринте.
Входные параметры для этой встречи бэклог продукта, последний разработанный инкремент, текущие возможности команды разработки, а также ее последняя производительность. Количество элементов из бэклога, которые команда способна выполнить до окончания спринта, определяется исключительно самой командой. Только команда разработки может оценить объем работы, который она в состоянии завершить в следующем спринте.
После того как команда разработки спрогнозировала элементы бэклога продукта, которые она выполнит в спринте, Scrum-команда формирует цель спринта, то есть задачу, которая будет достигнута в результате спринта благодаря реализации бэклога продукта и которая объясняет команде разработки, для чего она создает инкремент.
Б. Часть 2. Как выбранная работа будет сделана? После того как цель спринта определена, команда разработки решает, каким образом воплотить функционал в «законченном» инкременте продукта. Элементы бэклога продукта, выбранные для этого спринта вместе с планом для их разработки, называются бэклогом спринта.
Команда разработки обычно начинает с проектирования системы и работы, необходимой для того, чтобы превратить бэклог продукта в функционирующий инкремент. Работа может быть разного объема, и предполагаемые усилия также могут различаться. Однако обычно во время планирования спринта команда разработки рассчитывает на достаточный объем работы. Задача, запланированная командой на первые дни спринта, разбивается на части длительностью в день или менее. Команда сама организовывает свою деятельность как во время планирования спринта, так и на протяжении его.