Scrum, что в переводе с английского означает «схватка» — это метод гибкой разработки программного обеспечения, созданный для контроля над процессом работы.
Помимо управления задачами по созданию ПО, Scrum используют в работе групп поддержки программного обеспечения.
В сущности, Scrum — это инструмент планирования, который позволяет в конкретные фиксированные промежутки времени, получившие название спринт (sprint), предоставлять заказчику, в порядке определения приоритета, действующее программное обеспечение, обладающее новыми возможностями.
В начале действий по спринту планируются возможности ПО к реализации, этот план не изменяется до конца осуществления спринта. Поскольку его длительность не велика и строго фиксирована по времени, процесс разработки становится предсказуемым и гибким.
Команды, созданные для разработки различного ПО, могут подбирать продолжительность спринта в соответствии со спецификой работы, опытом программистов и требованиями заказчиков.
Установленная в процессе предварительного планирования жестко зафиксированная длительность одного спринта варьируется от 2 до 6 недель.
Принято считать, что чем короче спринт, тем более гибким становится процесс разработки. Это значит, что релизы появляются чаще, быстрее поступают отзывы от потребителя, следовательно, можно избежать ошибок и непродуктивной траты времени.
Но не стоит забывать, что при планировании достаточно длительных спринтов у группы разработчиков есть время на решение возникших в процессе работы проблем. Одновременно заказчик ПО тратит меньше времени на различные совещания с демонстрацией продукта.
В ходе разработки программного обеспечения с использованием Scrum ведутся журналы пожеланий проекта и пожеланий спринта.
В Журнале пожеланий проекта (Project backlog) содержится перечень требований к функционалу, открытый для редактирования всеми участниками скрам-процесса. В нем требования ранжируются по приоритету. Элементы этого перечня называются пользовательскими историями (user story) или элементами беклога (backlog items).
В Журнале пожеланий спринта (Sprint backlog) заказчик проекта помещает разбитый по задачам с определением приоритета функционал, выбранный из Журнала пожеланий проекта. В журнале группа разработчиков ежедневно оценивает результаты работы, показывает свои действия и определяет время, оставшееся до завершения спринта.