Урок 6: Agile-манифест и Scrum
Agile — это лёгкий, ориентированный на людей (а не на план) подход к разработке, родившийся из Agile-манифеста, опубликованного в 2001 году. В этом уроке, открывающем модуль Agile, мы познакомимся с четырьмя ценностями и духом двенадцати принципов манифеста, поймём, что такое итеративная и инкремент
Вкратце: Agile предпочитает людей, работающее ПО, сотрудничество с заказчиком и реагирование на изменения. Scrum — это фреймворк для его применения: самоорганизующаяся команда, которая работает короткими циклами (спринтами), встречается на 15 минут ежедневно и в конце каждого цикла показывает работающее ПО и совершенствуется.
- Agile-манифест
- Документ, опубликованный в 2001 году 17 авторами (среди них Кент Бек и Мартин Фаулер) через Agile Alliance; он формулирует четыре ценности и двенадцать принципов лёгкой, ориентированной на людей (а не на план) разработки ПО.
- Четыре ценности
- Люди и взаимодействие важнее процессов и инструментов; работающее ПО важнее исчерпывающей документации; сотрудничество с заказчиком важнее согласования условий контракта; и реагирование на изменения важнее следования плану. То, что справа, имеет ценность, но предпочтительнее то, что слева.
- Итеративность и инкрементальность
- Разработка короткими повторяющимися циклами (от недель до месяцев, предпочтительнее короче), где каждый цикл (итерация) добавляет работающую, накапливающуюся часть к итоговому продукту. Это стиль разработки Scrum.
- Scrum
- Итеративный и инкрементальный agile-фреймворк разработки, основанный на самоорганизующейся команде и обеспечивающий быструю адаптацию к изменениям; название взято из регби — вся команда «идёт дистанцию как единое целое, передавая мяч туда и обратно».
- Роли Scrum (R&R)
- Scrum Master (направляет команду по правилам Scrum и устраняет препятствия); Product Owner (формально отвечает от имени заинтересованных сторон и приоритизирует бэклог продукта); команда (самоорганизуется для достижения целей спринта); заказчик; и руководство (окончательные решения).
- Спринт
- Одна итерация в цикле разработки Scrum — фиксированной, заранее заданной длительности до 30 календарных дней (на практике обычно 1-4 недели), заканчивающаяся полностью протестированным, полностью работающим ПО для демонстрации.
- Бэклог продукта (Product Backlog)
- Текущий, приоритизированный список всей оставшейся по продукту работы; из него каждый спринт выбираются элементы для бэклога спринта. За его приоритизацию отвечает Product Owner.
- Daily Scrum
- Короткая ежедневная статус-встреча, ограниченная 15 минутами, в одном и том же месте и в одно и то же время; каждый участник отвечает на три вопроса (что сделано со вчерашнего дня? что запланировано на сегодня? есть ли препятствия?). Препятствия разрешаются вне встречи.