538 Глава 11
Заказчик, работая параллельно с программистами, определяет один или не-
сколько автоматизированных приемочных тестов. Группа реализует эти тесты и
использует их для функционального тестирования. К концу итерации все тесты для
отдельных модулей и все функциональные тесты должны работать. Эти тесты со-
храняются для последующего тестирования.
После завершения итерации начинается планирование следующей (выбира-
ются новые истории) и цикл продолжается до готовности полной версии системы.
После выпуска очередной версии выбираются следующие истории и т.д.
Архитектура системы постоянно эволюционирует, а текущий проект транс-
формируется, при условии сохранения гарантии правильного выполнения тестов.
Процесс XP в высшей степени неформален, но требует высокого уровня са-
модисциплины, в противном случае он мгновенно превращается в хаотичный и не-
контролируемый. Это процесс разработки с наиболее высокой степенью риска, по-
скольку другие методы снижения коммерческих рисков, кроме опоры на «челове-
ческий фактор», в XP просто отсутствуют [34].
11.7.3. Методология SCRUM
Другая, менее известная в Украине, Agile-методология разработки ПС -
SCRUM (дословно (в регби)– «схватка вокруг мяча») - гибкая методика управления
проектом фирмы Advanced Development Methods, Inc., представленная впервые в
1995 году. Ныне применяется в более чем 50 организациях, включая Fuji-Xerox,
Canon, Honda, NEC, Epson, Brother, 3M, Xerox and Hewlett-Packard и др.[37, 38].
В отличие от методологий, ориентированных на каскадную, спиральную или
итеративную модель ЖЦ, предполагающих фиксированный, четко определенный
предсказуемый процесс разработки с линейной последовательностью действий
(возможно, в цикле) - анализ требований, проектирование, программирование,
тестирование - SCRUM трактует процесс разработки как «черную коробку» с
контролируемыми параметрами. Фактически наблюдается смещение парадигмы
«определенный и повторяемый процесс» к парадигме - «контролируемый процесс».
SCRUM не требует «линейности» (внутри «коробки») и допускает, в зависи-
мости от текущих условий выполнения проекта, переключение с одного действия
на другое в любой момент разработки, что обеспечивает гибкость проекта. Таким
образом, преодолеваются три основных препятствия успешной разработки:
- требования определены изначально не четко и/или не полностью,
- требования изменяются в ходе проекта,
- высокая степень непредсказуемости проекта при изменении условий среды
разработки, использовании новых инструментов и методов.
Для гибкого управления проектом с такими особенностями в SCRUM приме-
няются специальные методы (приемы) работы на стадиях проекта и механизмы
регуляции (рычаги регулирования) при управлении непредсказуемым процессом.
С самого начала проекта требования к ПС преобразуются в списки функций,
свойств или выполняемых работ, образуя Портфель заказов (Бэклог, Backlog).
Требования декомпозируются до такого уровня, чтобы их можно было реализовать
за один день, что улучшает прослеживаемость хода проекта. Содержимое Портфеля
распределяется между командами проекта.
Команды проекта действуют как спортивные команды, где каждый член иг-
рает независимо от остальных, но всех игроков объединяет общая цель. В команде