Заинтересованные лица: Термин "заинтересованные лица" - это общий термин. Данное понятие объединяет руководителей и других людей, которые распоряжаются деньгами и определяют стратегическое направление. В жизненном цикле для заинтересованных лиц необходимо предусмотреть особые точки принятия решений, в которых они должны выразить свое одобрение/неодобрение хода выполнения проекта.
Фазы: Фазы взяты из RUP и учитывают контрольные точки, которые ввел Барри Боэм (Barry Boehm) в своей модели развития по спирали.
Жизненный цикл проекта предоставляет заинтересованным лицам механизмы контроля, обеспечения прозрачности и наблюдения, позволяющие управлять финансированием, масштабом проекта, его подверженностью риску, поставляемой потребительской ценностью и другими аспектами процесса.
Каждая итерация на выходе имеет промежуточный продукт, который позволяет заинтересованным лицам понять, какая потребительная ценность была создана и насколько хорошо они отслеживают проект. Кроме того, он также позволяет коллективу разработчиков внести в проект изменения для оптимизации конечного результата.
В OpenUP итерации организуются как набор фаз. Каждая фаза завершается контрольной точкой, предназначенной для обеспечения контроля путем постановки и ответов на ряд вопросов, которые обычно являются важными для заинтересованных лиц:
- Начальная фаза. Согласованы ли масштаб и задачи проекта; следует ли продолжить работу над проектом?
- Фаза уточнения. Согласована ли архитектура исполнения, которая будет использоваться для разработки приложения? Являются ли созданная на данный момент потребительская ценность и риск приемлемыми?
- Фаза конструирования. Получили ли мы достаточно близкое к завершению приложение; можно ли переключить внимание коллектива на настройку, окончательную отделку и обеспечение гарантии успешного развертывания?
- Фаза передачи. Готово ли приложение к выпуску?
Отказ от проекта: Все процессы гибкой разработки обеспечивают определенную степень видимости в конце каждой итерации. Однако следует отметить, что необходимо предусмотреть и ряд дополнительных явно обозначенных точек принятия решений. В IBM мы принимали документируемые решения в каждой контрольной точке проекта путем голосования по всем аспектам маркетинга, сервиса, продаж, разработки, финансирования, юридическим аспектам и т. п.
Если на приведенные выше вопросы в отчете по данной фазе получен ответ "да", то разработка проекта продолжается согласно плану. В случае ответа "нет" сроки данной фазы продлеваются (обычно путем добавления дополнительной итерации) до тех пор, пока не будет получен удовлетворительный ответ или заинтересованные лица не примут решение об отказе от проекта.
Одной из задач жизненного цикла проекта является концентрация внимания на двух мотивах заинтересованных лиц: снижении риска и создании потребительской ценности. Фазы OpenUP нацеливают рабочую группу на снижение риска в соответствии с ответами на вопросы в конце каждой фазы с одновременным отслеживанием процесса создания потребительской ценности, как показано на рисунке 3.
Рисунок 3. Снижение риска (красная кривая) и создание потребительской ценности (зеленая кривая) на протяжении жизненного цикла проекта
Риск: Я полагаю, что большинство процессов гибкой разработки недостаточно нацелены на снижение рисков или, по меньшей мере, это не отражено в них достаточно явным образом. Большинство из нас работают в средах, в которых мы вынуждены делать обоснованные прогнозы, чтобы позволить остальным подразделениям организации эффективно функционировать. Прогнозы всегда будут иметь определенную степень приближения, но огромное значение имеет возможность сделать их более точными на более ранних стадиях, а не на более поздних.
OpenUP: на данном этапе в семействе OpenUP два представителя: это базовый процесс OpenUP и базовый процесс OpenUP с рядом дополнительных расширений, взятых из процесса DSDM, который мы называем OpenUP/DSDM. Различные организации планируют создание и других расширений.
Риск - это выражение вероятности возникновения непредвиденных событий в ходе выполнения проекта; риск препятствует созданию потребительской ценности. Размер риска прямо пропорционален неточности предварительной оценки, при этом заинтересованные лица обычно хотят узнать, какую потребительскую ценность сможет поставить проект за оговоренное время, как можно раньше. Во многих случаях риск будет ниже, если потребительская ценность создается путем реализации и тестирования большей части критически важных функций. Тем не менее, возможны ситуации, в которых снижение риска и создание промежуточной потребительской ценности дополняют друг друга. Рассмотрим пример. По окончании фазы уточнения необходимо снизить технические риски, насколько это возможно, и представить на рассмотрение стабильную архитектуру. Члены рабочей группы должны показать, что у них есть выполнимая архитектура с несколькими готовыми к выполнению избранными сценариями и со списком рисков, в котором отражено понижение многих ключевых технических и прочих рисков. Необходимо найти равновесие между снижением рисков и потребительской ценностью исполняемого кода. То, что для одного проекта будет искомым равновесием, для другого проекта может оказаться неприемлемым.
Влияние Eclipse Way, XP и RUP на OpenUP
Типы: Как уже говорилось ранее, IBM планирует предоставить ряд расширений, которые войдут в состав будущих версий RUP.
Семейство процессов OpenUP предназначено для выполнения широкого диапазона типов проектов, имеющих общие особенности. В основу OpenUP положены следующие основные принципы:
- Совместная работа с целью согласования интересов и достижения общего понимания;
- Развитие с целью непрерывного обеспечения обратной связи и совершенствования проекта;
- Концентрация на архитектурных вопросах на ранних стадиях для минимизации рисков и организации разработки;
- Выравнивание конкурентных преимуществ для максимизации потребительской ценности для заинтересованных лиц.
Процессы из семейства OpenUP создаются как расширения базового процесса OpenUP, использующего прагматичную, динамичную философию с концентрацией на коллективном характере разработки программного обеспечения. Базовый процесс OpenUP является независимым от инструментов, малорегламентированным процессом, который может быть расширен для удовлетворения потребностей широкого диапазона типов проектов.
Посредством добавления подключаемых модулей можно создавать расширения процесса OpenUP, предназначенные для решения различных вопросов разработки, например, сервис-ориентированной архитектуры (service-oriented architecture, SOA), территориальной рассредоточенности, управляемой моделями разработки и встраиваемых систем. В процесс можно добавить справку по конкретным технологиям, например, руководство по Java 2 Enterprise Edition (J2EE), и различные инструменты для разработки. Одни из расширений могут иметь весьма специализированное назначение, например, добавлять к процессу всего лишь справку по конкретному инструменту для решения имеющихся задач, а другие могут быть достаточно сложными и создавать процессы, существенно расширяющие масштаб проектов при помощи новых или модифицированных артефактов, задач или ролей.
Как уже говорилось выше, для того, чтобы процессы расширения можно было отнести к семейству OpenUP, они должны соответствовать основным принципам OpenUP и быть написанными в форме расширений базового процесса OpenUP.
Расширения OpenUP могут:
- Использоваться в пределах организации;
- Предоставляться в качестве открытого исходного кода в составе проекта EPF;
- Распространяться свободно вне сферы действия открытых лицензий Eclipse (EPL, см. http://www.eclipse.org/legal/epl-v10.html);
- Распространяться на коммерческой основе.
Ссылки по теме