71
5.3. Планирование итераций
Следующим шагом после планирования выпуска версий является
деление версии на серию коротких итераций. Продолжительность итерации
определяется многими факторами, но, как правило, составляет две-три
недели.
Планирование итерации выполняется в основном разработчиками в
начале каждой итерации. Этот процесс может занимать от нескольких часов
до двух дней. Планирование итерации
состоит из тех же этапов, что и
планирование выпуска версии, и напоминает планирование выпуска версии в
миниатюре.
Этап исследования
На этапе исследования выполняются следующие работы:
• написание задачи – выбор пожеланий заказчика для итерации и
преобразование их в задачи.
• разделение задачи/комбинация задач.
Формально считается, что итерация начинается с совещания по
планированию итерации, на котором обсуждается, что было сделано в
процессе предыдущей итерации, и что должно быть реализовано в
рамках
следующей итерации. При этом заказчик учитывает мнение разработчиков и
опыт, приобретенный ими во время реализации предыдущей итерации. Затем
разработчики определяют общий технический подход, который будет
использоваться для реализации пожеланий заказчика в рамках следующей
итерации и решают, каким образом пожелания заказчика можно превратить в
набор конкретных задач, реализация которых занимает не
более одного-трех
дней работы. Пожелания заказчика обрабатываются в порядке уменьшения
приоритета. Если несколько пожеланий содержат схожие фрагменты, можно
выделить одну задачу для реализации нескольких пожеланий. Иногда в
итерацию включаются задачи, которые не связаны напрямую с каким-либо
пожеланием заказчика, например, может потребоваться задача для работы с
новой версией системного
программного обеспечения.
Если пожелание нельзя разделить на задачи, которые можно
реализовать в течение несколько дней, ее следует разделить на более мелкие
задачи. Если выполнение нескольких задач потребует всего несколько часов,
можно скомбинировать их в одну большую задачу.
При планировании итераций важно учитывать зависимости между
пожеланиями заказчика. Пожелание заказчика не может быть
включено в
итерацию, если оно зависит от пожелания, еще не включенного в план.
Большая часть времени команды будет уходить на реализацию
требований заказчика. Однако имеются еще и технические задачи, о
которых заказчики, как правило, ничего не знают, но которые вместе с тем
должны быть выполнены. К таким задачам можно отнести,
например,
переустановку системного и инструментального программного обеспечения,
рефакторинг сложного фрагмента программного кода, перепроектирование