Ключевые идеи Scrum
Scrum – это легкая, итеративная и поэтапная структура для разработки, доставки и поддержки сложных продуктов. Согласно Кену Шваберу и Джеффу Сазерленду, разработавшим Руководство по Scrum, Scrum определяется как: «Структура, в рамках которой люди могут решать сложные проблемы, творчески создавая продукты максимально возможной ценности».
Scrum основан на эмпиризме, который утверждает, что знание приходит из опыта и принятия решений на основе наблюдений. Scrum признает, что проблема не может быть полностью понята или определена заранее. Поэтому методика концентрируется на том, как максимизировать способность команды быстро выполнять задачи, реагировать на возникающие требования и адаптироваться к меняющимся условиям.
Scrum использует итеративный поэтапный подход для оптимизации предсказуемости и контроля рисков. Scrum привлекает группы людей, которые в совокупности обладают всеми навыками и опытом для выполнения работы или приобретения таких навыков по мере необходимости.
Успешное использование Scrum зависит от того, насколько члены команды соответствуют пяти ценностям:
- приверженность: члены команды индивидуально обязуются достигать целей своей команды в каждом спринте;
- смелость: члены команды знают, что у них достаточно мужества, чтобы совместно преодолевать конфликты и трудности;
- фокус: члены команды сосредотачиваются исключительно на своих командных целях и невыполненных заданиях спринта;
- открытость: члены команды и заинтересованные стороны соглашаются быть прозрачными в отношении своей работы и любых проблем, с которыми они сталкиваются;
- уважение: члены команды уважают друг друга, чтобы работать с добрыми намерениями.
Эмпирический контроль процесса опирается на три качества, которые составляют три столпа концепции Scrum.
Прозрачность
Члены команды Scrum должны эффективно сотрудничать, чтобы заинтересованные стороны проекта разделяли одинаковое видение проекта и сохраняли понимание текущих проблем и статуса проекта.
Контроль
Итеративный и пошаговый подход к проектам Scrum побуждает членов команды разработчиков проводить частый контроль работы, проверяя наличие ошибок и работая над обнаружением нежелательных отклонений от требований проекта.
Контроль позволяет адаптироваться. Контроль без адаптации считается бессмысленным. События Scrum предназначены для того, чтобы спровоцировать изменения.
Адаптация
Если какие-либо аспекты процесса выходят за допустимые пределы или если полученный продукт неприемлем, применяемый процесс или производимые материалы должны быть скорректированы. Адаптация должна быть выполнена как можно скорее, чтобы свести к минимуму дальнейшее отклонение.
Адаптация становится более сложной, когда вовлеченные люди не наделены полномочиями. Ожидается, что Scrum-команда адаптируется в тот момент, когда она узнает что-то новое в ходе проверки. Контроль и адаптация официально проводятся в рамках четырех событий Scrum.
Роли scrum
Scrum-команды являются самоорганизующимися и кросс-функциональными. Они состоят из экспертов с широким охватом предметной области, работающих вместе для достижения общей цели наиболее эффективным способом.
Scrum-команда достаточно мала, чтобы оставаться гибкой, и достаточно велика, чтобы выполнять значительную работу в рамках спринта, обычно это 10 или меньше человек.
В среде Scrum для команды определены три определенные роли.
Владелец продукта
Владелец продукта – это человек, отвечающий за управление бэклогом продукта и максимизацию выходной ценности команды разработчиков программного обеспечения. Владелец продукта сообщает команде разработчиков о невыполненной работе над продуктом, помогая им организовать рабочее время и расставить приоритеты для оптимизации создания ценности.
Владелец продукта – это один человек, а не комитет.
Команда разработчиков
Команда разработчиков – это команда людей, которые разрабатывают программные продукты. Они могут участвовать в проектировании и архитектуре систем, кодировать программное обеспечение для приложения, создавать и проводить различные типы тестирования и выполнять другие задачи безопасности, разработки и эксплуатации на протяжении всего жизненного цикла программного обеспечения. В парадигме Scrum команды разработчиков должны быть самоорганизующимися и иметь право выбирать свои собственные методы работы.
Scrum-мастер
Scrum-мастер отвечает за устранение препятствий, мешающих команде достигать целей продукта и результатов. Он следит за тем, чтобы структура соблюдалась, обучая команду теории и концепциям Scrum, часто помогая ключевым сессиям, и поощряет команду к росту и совершенствованию.
Одним из отличий роли Scrum-мастера от менеджера проекта является то, что у последнего могут быть обязанности по управлению людьми, а у Scrum-мастера – нет. Scrum-мастер обеспечивает ограниченное количество указаний, поскольку ожидается, что команда будет наделена полномочиями и самоорганизуется.
Артефакты scrum
Scrum-артефакты помогают обеспечить прозрачность проекта и управлять потоком информации в Scrum-команде. Артефакты относятся к документации, используемой для управления работой в проекте.
Бэклог продукта
Бэклог продукта – это исчерпывающий список дел по проекту. Он содержит подробный список всех требований и всех изменений, которые необходимо внести в продукт в будущих версиях. Бэклог продукта в своей простейшей форме – это просто список элементов, над которыми нужно работать. Наличие четко установленных правил добавления, удаления и упорядочения работы помогает всей команде принимать более правильные решения о том, как изменить продукт. Владелец продукта расставляет приоритеты в бэклоге, основываясь на том, какие из них потребуются в ближайшее время. Элементы с высоким приоритетом должны быть разбиты на более подробные сведения, которые подходят для работы разработчиков.
Бэклог спринта
Бэклог спринта – это подмножество элементов из бэклога продукта, которые разработчики должны решить в предстоящем спринте. Бэклог спринта содержит все элементы невыполненной работы по продукту, которые были выбраны для выполнения в спринте. Это элементы с наивысшим приоритетом спринта, определенные владельцем продукта.
Инкремент
Инкремент – это потенциально высвобождаемый результат спринта, который соответствует цели спринта. Инкремент должен быть завершен, в соответствии с определением готовности, данным командой Scrum, полностью функционирующим и в пригодном для использования состоянии, независимо от того, решит ли владелец продукта фактически развернуть и использовать его.
Если бэклог продукта представляет список дел для проекта, инкремент – это список всех элементов, которые были отмечены как выполненные. Элементы в инкременте должны быть помечены как «выполненные» в соответствии с общим определением Scrum-команды того, что представляет собой законченный выпуск.
Другие артефакты
Следующие артефакты и методы могут быть использованы на усмотрение команды.
- Диаграмма сгорания задач – количество сделанной и оставшейся работы относительно времени на разработку проекта или спринта.
- Определение готовности – критерии, помогающие определить, достаточно ли четко заданы спецификации и входные данные для запуска рабочего элемента.
- Скорость команды (Velocity) – общие усилия команды для одного спринта, полученные путем оценки работы, выполненной в последнем спринте.
- Spike – ограниченный по времени период, используемый для исследования концепции или создания простого прототипа.
События Scrum
Scrum-фреймворк основан на спринтах. Спринт – это фиксированный период времени, в течение которого Scrum-команда пытается реализовать определенную функцию или набор работ. В рамках Scrum проходят четыре основных мероприятия, и все они организованы вокруг спринта.
Планирование спринта
Каждый спринт представляет собой ограниченное по времени событие: он длится только определенную продолжительность, а затем завершается. В начале каждого спринта Scrum-команда проводит мероприятие по планированию спринта.
При планировании спринта решаются три важных задачи:
- определить цель спринта;
- выбрать элементы работы по продукту, которые способствуют достижению цели;
- решить, как будет выполняться выбранная работа.
Ежедневный Scrum
Цель ежедневного Scrum – проверить прогресс в достижении цели спринта и при необходимости адаптировать бэклог, корректируя предстоящую запланированную работу.
Разработчики могут выбирать любую структуру и методы, которые они хотят, при условии, что они фокусируются на прогрессе в достижении цели спринта. Совещание намеренно делается коротким, поскольку участники встают и разговаривают, а не сидят за столом в конференц-зале.
Обзор спринта
Цель обзора спринта – оценить и обновить артефакты Scrum и совместно определить следующие шаги. Scrum-команда представляет результаты своей работы ключевым заинтересованным сторонам, и обсуждает прогресс в достижении цели продукта.
Ретроспектива спринта
Цель ретроспективы спринта – проанализировать работу Scrum-команды за прошлый спринт и выявить любые возможности для улучшения, которые могут привести к лучшим результатам в будущем.
Применение Scrum
Одним из основных недостатков управления проектами является неопределенность результатов, поэтому сложно заранее гарантировать успех проекта до его завершения. Scrum обеспечивает итеративность, скорость и достаточную адаптивность, чтобы как можно скорее получить результаты в проекте, чтобы уменьшить разрыв между началом и окончанием.
Комментарии