Agile. Практическое руководство
Шрифт:
Однако применение итеративных и инкрементных подходов имеет известные ограничения. В случаях, когда высока степень неопределенности, как технической, так и связанной с требованиями (верхняя правая сторона на рис. 2–5), проект выходит за пределы «сложного» и становится «хаотическим». Чтобы иметь уверенность в возможности осуществления проекта, необходимо установить одну из переменных неопределенности.
3. Выбор жизненного цикла
Проекты могут иметь много форм, и существуют разнообразные способы их осуществления. Командам проектов нужно знать характеристики и имеющиеся варианты, из которых можно выбрать тот подход, который с наибольшей вероятностью обеспечит успех в данной ситуации.
В настоящем Руководстве речь идет о четырех типах жизненных циклов, которые можно
Предиктивный жизненный цикл. Относительно традиционный подход, который предусматривает осуществление основной части планирования до начала работы по проекту с его последующим исполнением за одинарный проход и последовательным процессом.
Итеративный жизненный цикл. Подход, позволяющий использовать обратную связь с целью доработки и уточнения незавершенной работы.
Инкрементный жизненный цикл. Подход, дающий конечные поставляемые результаты, которые заказчик может немедленно использовать.
Жизненный цикл agile. Подходы, которые являются итеративными и, в то же время, инкрементными и предназначены для уточнения элементов работы и частой поставки.
ЧТО МОЖНО НАЗВАТЬ ПОДХОДАМИ, НЕ ЯВЛЯЮЩИМИСЯ AGILE?
Единого универсального термина, который описывает не являющиеся agile подходы, не существует. Изначально в Практическом руководстве, чтобы подчеркнуть акцент на предварительное планирование с последующим исполнением, использовалось понятие подход на основе плана. Некоторые специалисты для описания этого жизненного цикла предпочитают использовать понятия водопад или последовательный. В конце концов мы остановили выбор на понятии предиктивный, поскольку оно используется в Руководстве к своду знаний по управлению проектом (Руководство PMBOK®) [3] и в Дополнении к Руководству PMBOK® по разработке программного обеспечения – пятое издание [4].
В практике многих организаций нет таких крайних позиций, и они просто занимают какое-то среднее положение. Это естественно, но нам все же необходимо определить, как называть крайние позиции этого диапазона понятий. Если подход agile находится на одном конце диапазона, то предиктивный подход – на другом.
3.1 Характеристики жизненных циклов проектов
В таблице 3–1 обобщены характеристики четырех категорий жизненных циклов, о которых идет речь в настоящем Руководстве.
Таблица 3–1. Характеристики четырех категорий жизненных циклов
Важно отметить, что все проекты имеют эти характеристики – ни в одном проекте нельзя полностью избавиться от соображений о требованиях, поставке, изменениях и целях. Какой жизненный цикл лучше всего подходит для использования в данном проекте, определяют внутренне присущие ему характеристики.
Еще один путь к пониманию различий жизненных циклов проектов состоит в использовании континуума в диапазоне от предиктивных циклов на одном конце до циклов agile на другом, где те или иные итеративные или инкрементные циклы занимают среднее положение между ними.
На рис. Х3-1 в приложении Х3 к Руководству PMBOK® – Шестое издание данный континуум представлен линией. Данное представление подчеркивает смещение характеристик из одного конца в другой. Еще одним способом визуализации данного континуума является двумерный квадрат, который показан на рис. 3–1.
Рис. 3–1. Континуум жизненных циклов проектов
Ни один жизненный цикл не может идеально подходить для всех проектов. Напротив, каждому проекту соответствует определенная точка континуума, которая обеспечивает оптимальный баланс характеристик для его контекста. А именно:
Предиктивные жизненные циклы. Используются преимущества того, что известно
Итеративные жизненные циклы. Позволяют использовать обратную связь в отношении частично завершенной или незавершенной работы с целью ее доработки и уточнения.
Инкрементные жизненные циклы. Дают конечные поставляемые результаты, которые заказчик может немедленно использовать.
Жизненные циклы agile. Используют преимущества как итеративных, так и инкрементных характеристик. При использовании командой подходов agile продукт производится итерациями в виде создания готовых поставляемых результатов. Команда получает обратную связь уже на раннем этапе и обеспечивает заказчику наглядность, уверенность и контроль в отношении продукта. Поскольку команда может выпустить продукт раньше, проект может обеспечить окупаемость инвестиций в более короткие сроки, так как команда в первую очередь производит имеющую наибольшую ценность работу.
ПЛАНИРОВАНИЕ ОСУЩЕСТВЛЯЕТСЯ ПРИ ЛЮБЫХ ОБСТОЯТЕЛЬСТВАХ
Когда речь идет о жизненных циклах, следует всегда помнить, что в каждом из них присутствует элемент планирования. Разница между жизненными циклами состоит не в том, осуществляется ли планирование в принципе, а в том, в каком объеме и на каком этапе проекта это происходит.
На предиктивном конце континуума работы производятся по плану. Планирование в максимально возможном объеме производится заблаговременно. Требования выясняются настолько подробно, насколько это возможно. Команда оценивает, когда она будет в состоянии поставить каждый из поставляемых результатов и выполняет закупочную деятельность в полном объеме.
В случае с применением итеративных подходов планирование выпуска прототипов и проведения испытаний также производится, однако полученные результаты предназначены для уточнения первоначальных планов. Анализ незавершенной работы на ранних этапах помогает получить информацию для использования при производстве последующих работ по проекту.
С другой стороны, в инкрементных инициативах планируется последовательная поставка промежуточных результатов проекта в целом. Команды заранее могут планировать несколько последовательных поставок или только по одной поставке за один раз. Такие поставки обеспечивают информацию для использования при производстве последующих работ по проекту.
Планирование в проектах agile также осуществляется. Основным отличием является то, что команда планирует и пересматривает планы по мере поступления новой информации, получаемой по результатам периодических поставок. Любой проект требует планирования, независимо от типа его жизненного цикла.
3.1.1 Характеристики предиктивных жизненных циклов
Предиктивные жизненные циклы предполагают использование преимуществ от высокой определенности твердо установленных требований, стабильного состава команды и низкого уровня риска. Как следствие, операции проекта во многих случаях исполняются в определенной последовательности, как показано на рис. 3–2.
Чтобы иметь возможность использовать этот подход, команде необходимо иметь подробные планы, которые определяют, какие производятся поставки и как. Такие проекты завершаются успешно, когда для других потенциальных изменений (например, изменений в требованиях; члены команды проекта вносят изменения в поставки) установлены ограничения. В предиктивном проекте руководитель стремится свести объем изменений к минимуму.
Когда команда определяет подробные требования и разрабатывает планы в самом начале проекта, ограничения можно сформулировать. В последующем команда может использовать эти ограничения для управления рисками и затратами. В процессе постепенной реализации подробного плана команда осуществляет мониторинг и контроль изменений, которые могут оказать влияние на содержание, расписание или бюджет проекта.
В предиктивном проекте поставка бизнес-ценности производится лишь в конце проекта из-за сосредоточенности на эффективности подразделений и на установленной последовательности производства работы. Если в ходе предиктивного проекта возникают изменения или расхождения с требованиями, или техническое решение перестает быть очевидным, осуществление проекта будет связано с непредвиденными затратами.