От управленческого Agile перейдем к инженерному. Экстремальное программирование (Extreme Programming, XP), как и большинство других гибких методологий, — скорее философия, чем набор инструментов.
Модель рабочего процесса по XP выглядит как частая последовательность выпусков продукта. Настолько частая, насколько это возможно. Но при этом обязательно, чтобы в выпуск входила новая атомарная функциональность. «Атомарная» означает, что нужно продемонстрировать хоть и маленький, но новый и полностью рабочий функционал.
Разбить функционал на атомарный не так просто, как кажется. В самом начале разработки клиентского приложения такси-сервиса мы решили использовать такой подход и провели несколько дней за размышлениями, как можно разбить функционал приложения на атомарный. В итоге в первый спринт была создана иконка приложения, по клику на которую оно запускалось и открывалась карта. Во втором спринте на карту была добавлена метка с текущим местоположением пользователя, а еще появилась возможность масштабировать карту. В третьей итерации появилась строка адреса, и при движении пользовательской отметки по карте автоматически считывался текущий адрес, и т.д. В каждой итерации добавлялся атомарный функционал.