Agile. Практическое руководство - Коллектив авторов 3 стр.


Однако применение итеративных и инкрементных подходов имеет известные ограничения. В случаях, когда высока степень неопределенности, как технической, так и связанной с требованиями (верхняя правая сторона на рис. 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.

Чтобы иметь возможность использовать этот подход, команде необходимо иметь подробные планы, которые определяют, какие производятся поставки и как. Такие проекты завершаются успешно, когда для других потенциальных изменений (например, изменений в требованиях; члены команды проекта вносят изменения в поставки) установлены ограничения. В предиктивном проекте руководитель стремится свести объем изменений к минимуму.

Когда команда определяет подробные требования и разрабатывает планы в самом начале проекта, ограничения можно сформулировать. В последующем команда может использовать эти ограничения для управления рисками и затратами. В процессе постепенной реализации подробного плана команда осуществляет мониторинг и контроль изменений, которые могут оказать влияние на содержание, расписание или бюджет проекта.

В предиктивном проекте поставка бизнес-ценности производится лишь в конце проекта из-за сосредоточенности на эффективности подразделений и на установленной последовательности производства работы. Если в ходе предиктивного проекта возникают изменения или расхождения с требованиями, или техническое решение перестает быть очевидным, осуществление проекта будет связано с непредвиденными затратами.

Рис. 3–2. Предиктивный жизненный цикл

3.1.2 Характеристики итеративных жизненных циклов

Итеративные жизненные циклы позволяют улучшать продукт или результат посредством последовательного создания прототипов или подтверждения концепции. Результатом каждого нового прототипа становятся новая информация от обратной связи с заинтересованными сторонами и углубление понимания командой предметной области. Затем команда внедряет полученные новые знания, повторяя одну или несколько операций в проекте в ходе следующего цикла. Команды могут ограничить временные рамки для данной итерации несколькими неделями, собрать важную информацию и после этого произвести доработку операции на основе этих новых знаний. Таким образом, итерации помогают выявить и снизить уровень неопределенности в проекте.

Преимущества от использования итеративного жизненного цикла проект получает в тех случаях, когда он имеет высокую сложность, в нем часто происходят изменения или его содержание зависит от различий в точках зрения заинтересованных сторон на желаемый конечный продукт. Итеративные жизненные циклы могут занимать больше времени, поскольку их назначение состоит в получении знаний, а не в сокращении сроков поставки.

На рис. 3–3 показаны некоторые элементы итеративного жизненного цикла проекта для единичной поставки продукта.

Рис. 3–3. Итеративный жизненный цикл

Приходилось ли вам участвовать когда-либо в проекте, когда, по вашим ощущениям, требования изменялись ежедневно, и вам казалось: «Мы узнаем требования, когда поставим прототип, который получит одобрение предприятия»? Если «да», то это был проект, в котором могло бы помочь использование подходов agile. Прототип служит стимулом обратной связи и помогает лучше понять требования, которые могут быть исполнены в каждом поставляемом результате.

3.1.3 Характеристики инкрементных жизненных циклов

Оптимизация некоторых проектов осуществляется с целью сокращения сроков поставки. Многие предприятия и инициативы не имеют возможности дожидаться, когда работы будут завершены полностью, и в таких случаях заказчики желают предварительно получить составную часть общего решения. Частую поставку поставляемых результатов меньшего объема называют «инкрементный жизненный цикл» (см. рис. 3–4).

Рис. 3–4. Жизненный цикл с поставкой инкрементов разного объема

ПОЛЕЗНЫЙ СОВЕТ

У вас нет уверенности в том, как новая бизнес-услуга может работать на практике? Разработайте обоснование концепции, предусматривающее критерии оценки, для анализа желаемых конечных результатов. Используйте итеративные подходы, когда есть основания ожидать, что требования будут изменяться по результатам обратной связи с заказчиком.

Инкрементные жизненные циклы оптимизируют работу для поставки ценности спонсору или заказчики часто, а не однократно, в виде конечного продукта. Команды планируют поставляемые результаты до начала работы и приступают к работе по созданию первого поставляемого результата как можно раньше. Поставка ценности в некоторых проектах agile происходит в течение нескольких дней с момента его инициации. В других проектах для этого требуется больше времени – от 1 до нескольких недель.

По ходу исполнения проекта команда может отклоняться от изначальных представлений. Команда может управлять отклонениями, так как она осуществляет поставку в более короткие сроки. Не так важна степень изменений и вариаций, как поставка клиентам ценности до окончания проекта.

Поставка заказчику отдельного свойства или законченной части работ является примером инкрементного подхода.

Например, у строителей может возникнуть потребность показать заказчику завершенное помещение или этаж в здании до продолжения работ в остальной его части. В этом случае они могут полностью выполнить работы на этаже с установкой недвижимого оборудования, завершением отделочных и прочих работ, которые должны быть произведены на данном этаже для приемки, прежде чем переходить к работам на следующем этаже. Заказчик может осмотреть и принять стиль, цвет и другие элементы, что дает возможность внести какие-то изменения до того, как будут произведены дальнейшие затраты рабочего времени и денежных средств. Это сокращает объемы возможной доработки и/или степень неудовлетворенности заказчика.

Завершенность и поставка являются субъективными понятиями. Команде может требоваться обратная связь в отношении прототипа, после чего она может принять решение о поставке минимально приемлемого продукта (minimum viable product, MVP) части заказчиков. Обратная связь с заказчиками помогает команде узнать, что из свойств конечного готового продукта ей необходимо обеспечить в последующих поставках.

Ключевое отличие agile-команды заключается в том, что она поставляет бизнес-ценность часто. При условии постепенного расширения набора свойств продукта и круга его потребителей, можно сказать, что его поставка осуществляется инкрементно.

3.1.4 Характеристики жизненных циклов agile

В среде agile команда ожидает, что в требованиях будут происходить изменения. Итеративные и инкрементные подходы обеспечивают обратную связь, которая позволяет лучше планировать следующую часть проекта. Однако в проектах agile инкрементная поставка выявляет скрытые или неправильно понятые требования. На рис. 3–5 наглядно представлены два возможных способа осуществления инкрементной поставки так, чтобы проект был согласован с потребностями заказчика и при необходимости мог быть адаптирован.

Рис. 3–5. Итерационный и потоковый жизненные циклы agile

В случае итерационного жизненного цикла agile команда работает в рамках итераций (временные рамки имеют одинаковую длительность) с целью поставки завершенных свойств. Команда работает над наиболее важным свойством для его завершения силами всей команды. Затем команда приступает к работе над следующим по важности свойством и полностью завершает его. Команда может принять решение вести работу по нескольким свойствам сразу, но она не занимается всей работой для данной итерации одновременно (т. е. не занимается всеми требованиями по результатам всех анализов и т. д.).

В потоковом agile команда берет для работы свойства из бэклога в зависимости от своей ресурсной возможности начать работу, а не по основанному на итерациях расписанию. Команда определяет для себя поток работ с помощью столбцов доски задач и управляет незавершенными работами в каждом столбце. Для завершения работы по каждому свойству может требоваться разное время. Команды сохраняют небольшой объем незавершенных работ, чтобы было легче определить проблемы на раннем этапе и сократить объем доработок при возникновении необходимости внести изменения. Поскольку для определения точек планирования и контроля уже не используются итерации, команда и заинтересованные стороны со стороны бизнеса определяют наиболее целесообразное расписание для планирования, анализа продукта и ретроспективного анализа.

Назад Дальше