Основа фреймворка Scrum была представлена в 1986 году Хиротакой Такеучи и Икуджиро Нонакой в статье Harvard Business Review под названием «Новая новая игра в разработку продуктов». Авторы описали два подхода к управлению разработкой продукта. Некоторые команды работают как бегуны на эстафете по прямой, передавая эстафету по мере продвижения. Другие команды действуют как игроки в регби в одном матче, передавая мяч туда и обратно по мере необходимости.
Такеучи и Нонака пришли к выводу, что метод эстафеты, используемый в поэтапной системе планирования NASA, устарел. Они утверждали, что модель регби предоставит компаниям инструменты, необходимые для конкуренции в глобальном коммерческом мире.
В 1993 году Джефф Сандерс, Джон Скамниоталес и Джефф Маккенна провели эксперимент по разработке программного обеспечения по методу Scrum в компании по разработке программного обеспечения Easel Corp. В 1995 году Кен Швабер и Сандерс, а также другие, включая Маккенна и Скамниоталеса, опубликовали статью под названием «Процесс разработки Scrum». Это привело к значительным изменениям, заставив разработчиков сомневаться в эффективности классической модели разработки программного обеспечения по методу «водопад».
В ноябре 2020 года Сандерс и Швабер выпустили обновленную версию «Руководства по Scrum», содержащую официальное определение Scrum.
Связь между Scrum и Agile
Agile — это подход к разработке и планированию проектов. Как объяснено в манифесте Agile, он имеет общую философию или рамочную основу, которая направляет методы, лежащие в его основе. Scrum — один из нескольких методов Agile.
Scrum можно рассматривать как практический способ реализации Agile. Как и Agile, Scrum включает набор ценностей и принципов. Команды разработки интегрируют Scrum в свою стратегию Agile, чтобы добавить уровень конкретики.
Один из принципов гибкой разработки заключается в том, чтобы члены команды регулярно обсуждать, как повысить эффективность, и соответствующим образом корректировать свое поведение. Scrum включает формальный процесс, который помогает командам это делать. Ежедневные встречи позволяют команде проанализировать, что нужно сделать в ближайшие 24 часа, и адаптировать свой подход с учетом ожиданий или возникших препятствий.
Еще один принцип гибкой разработки признает, что лучшая работа получается от самодостаточных команд. Скрам-мастер играет здесь ключевую роль. Он обеспечивает команду всем необходимым для выполнения работы и предоставляет свободу выбирать собственный путь. Затем он выступает в роли лидера-слуги, направляя команду в решении проблем, достижении целей и разрешении конфликтов.
Краеугольные камни и ценности Scrum
Три краеугольных камня Scrum — это адаптация, проверка и прозрачность.
- Адаптация. Команды постоянно корректируют свой подход к решению проблем и внедряют новые методы при возникновении новых вопросов.
- Проверка. Команды последовательно анализируют и оценивают свою собственную работу.
- Прозрачность. Команда работает в открытой среде, где все члены понимают процессы друг друга и осведомлены о трудностях, с которыми сталкиваются другие.
Пять основных ценностей Scrum
Эти ценности поддерживают три краеугольных камня:
- Преданность делу. Команда самодостаточна, и каждый член предан выполнению согласованной работы.
- Храбрость. Команда действует как единое целое — достигает успеха или сталкивается с неудачей вместе. Члены команды поступают правильно и решают сложные вопросы.
- Фокус. Отвлекающие факторы ограничены, и команда сосредоточена на работе, которая должна быть выполнена сегодня.
- Открытость. Команда уделяет время обсуждению того, что идет хорошо, и того, что требует улучшения.
- Уважение. У членов команды разные сильные стороны, и сильные стороны каждого уважаются. Никого не винят при поиске способов решения проблем.
Scrum — это рамочная модель управления проектами, которая акцентирует внимание на командной работе, ответственности и постепенном продвижении к четко определенным целям. Рамочная модель начинается с простой предпосылки: начинать с того, что можно увидеть или знать. Затем отслеживать прогресс и при необходимости вносить корректировки.
Scrum обычно является частью гибкой разработки программного обеспечения. Название происходит от футбольной формации, в которой каждый играет свою роль. Роли Scrum в разработке программного обеспечения включают:
- Владелец продукта — Этот человек выступает посредником между командой разработки и клиентом. Владелец продукта обеспечивает согласованность и передачу ожиданий относительно готового продукта.
- Мастер Scrum — Известен как координатор проекта. Он обеспечивает соблюдение лучших практик Scrum. Он должен быть отличным лидером и менеджером проектов, обладающим навыками сотрудничества, разрешения конфликтов и улучшения процессов.
- Команда разработки — Члены команды разработки Scrum совместно работают над созданием и тестированием поэтапных версий конечного продукта. Разработчики должны понимать Scrum и практики гибкой разработки.

Что такое процесс Scrum?
Процесс Scrum побуждает практикующих использовать то, что у них есть, и постоянно оценивать, что работает, а что нет. Хорошая коммуникация является обязательной и осуществляется через встречи (называемые «события»).
События Scrum включают следующее:

- Ежедневный стендап (ежедневный Scrum) — Это короткая ежедневная встреча, проводимая ежедневно в одно и то же время и в одном и том же месте. На этих встречах команда обсуждает, что было выполнено в предыдущий день, и планирует действия на ближайшие 24 часа. Это время, когда члены команды обсуждают любые проблемы, которые могут помешать завершению проекта.
- Спринт — Спринт — это фиксированный временной интервал (обычно 30 дней), в течение которого должна быть завершена работа. Новый спринт начинается немедленно после окончания предыдущего.
- Встреча по планированию спринта — На этих встречах каждый участвует в установлении целей. По крайней мере, результатом является хотя бы один инкремент — пригодная к использованию часть программного обеспечения.
- Обзор спринта — Это время для демонстрации инкремента.
- Ретроспектива спринта — Ретроспектива спринта — это встреча, проводимая после окончания спринта. В ходе этой встречи все участники анализируют процесс. Также могут быть включены командообразующие упражнения. Одна из ключевых целей этого мероприятия — непрерывное улучшение.
Что такое артефакты Scrum?
Полезно обсудить артефакты Scrum на встречах по планированию спринта. Артефакты Scrum включают следующее:

- Продуктовый бэклог — Это список работ, которые еще предстоит выполнить. В ходе сессий по уточнению продуктового бэклога команда разработки работает с владельцем бизнеса для приоритизации бэклога. Продуктовый бэклог может быть уточнён в процессе, называемом уточнением бэклога.
- Бэклог спринта — Это список задач, которые необходимо выполнить до передачи выбранных элементов продуктового бэклога. Они разбиваются на пользовательские истории с фиксированным временем.
- Инкремент продукта — Это представляет собой то, что было завершено в рамках спринта — все элементы продуктового бэклога, завершенные в этом спринте, плюс всё, что было создано в предыдущих спринтах. Инкремент продукта отражает достигнутый прогресс.
- График сгорания — Диаграмма сгорания — это визуальное представление объема оставшейся работы. На оси Y отображается объем работы, а на оси X — время. В идеале график показывает убывающую тенденцию, поскольку оставшаяся работа со временем уменьшается до нуля.
Преимущества метода Scrum
Основные преимущества Scrum включают:
- Высококачественные продукты — Часть процесса Scrum, называемая ретроспективой спринта, основана на обратной связи и непрерывном улучшении. В результате команды разработки, использующие этот метод, могут предоставлять продукты высокого качества.
- Работа в команде — Scrum создает сплоченные команды разработки программного обеспечения, которые эффективно общаются, соблюдают сроки и совместно решают проблемы. Члены команды доверяют и уважают друг друга, понимая, что время имеет ценность. Это может означать ограничение ежедневных встреч строгими временными рамками. Некоторые команды программистов включают в свой процесс «хак-спринт», позволяя разработчикам исследовать новые концепции, тестировать идеи и брать на себя ответственность за продукт.
- Гибкость — При использовании Scrum команды должны адаптировать свои инструменты и процессы к новым обстоятельствам. Определение продукта может развиваться по мере продвижения разработки, а эффективные команды реализуют эти изменения в течение нескольких итераций. Регулярные встречи по списку продуктов позволяют команде пересматривать приоритеты до того, как элементы войдут в спринт.
- Снижение рисков — Scrum делает акцент на предсказуемой, устойчивой скорости доставки и постоянной обратной связи, предоставляя командам возможность снижать риски на ранних этапах и часто. Если идея не работает, короткие спринты позволяют команде быстро провалиться, делая провал управляемым.
- Сокращение времени вывода на рынок — Scrum разработан для выпуска продуктов и функций в предсказуемых интервалах с использованием хорошо определенных спринтов. Выпуск функций не требует завершения всего продукта. Спринты разработаны таким образом, чтобы с каждым этапом добавлять отладочную функциональность. Полный продукт, состоящий из этих функций, называется сложным продуктом.
- Более высокая отдача от инвестиций (ROI) — Совокупные преимущества Scrum приводят к более высокой отдаче от инвестиций. Постоянная обратная связь снижает дорогостоящие ошибки на поздних этапах процесса и приводит к лучшему качеству продукта с меньшим количеством дефектов. Сокращение времени вывода на рынок и поэтапный выпуск позволяют быстрее получать доход.