2009 г.
Лекции по управлению программными проектами
С. Архипенков
Назад Содержание Вперёд
Лекция 3. Инициация проекта
Управление приоритетами проектов
Эффективные процессы инициации программного проекта минимум наполовину определяют его будущую успешность. Недостаточное внимание именно этой фазе проекта неизбежно приводит к существенным проблемам при планировании, реализации и завершении проекта.
Инициация состоит из процессов, способствующих формальной авторизации начала нового проекта или фазы проекта. Процессы инициации часто выполняются вне рамок проекта и связаны с организационными, программными или портфельными процессами. В ходе процесса инициации уточняются первоначальное описание содержания и ресурсы, которые организация планирует вложить. На этом этапе также выбирается менеджер проекта, если он еще не назначен, и документируются исходные допущения и ограничения. Эта информация заносится в Устав проекта и, если он одобряется, проект официально авторизуется.
Устав проекта [1] — документ, выпущенный инициатором или спонсором проекта, который формально узаконивает существование проекта и предоставляет менеджеру проекта полномочия использовать организационные ресурсы в операциях проекта.
В российской практике данный документ чаще называется Концепция проекта. Концепция (от лат. conceptio — понимание, система), определённый способ понимания, трактовки какого-либо предмета, явления, процесса, основная точка зрения на предмет и др., руководящая идея для их систематического освещения.
В компании, которая принимает решение о старте того или иного проекта разработки ПО, должна существовать единая система критериев для оценки его значимости. Система критериев должна позволять из множества возможных для реализации проектов выбрать наиболее приоритетные для компании.
Приоритет любого проекта должен определяться на основе оценки трех его характеристик:
- Финансовая ценность.
- Стратегическая ценность.
- Уровень рисков.
Шкала оценки финансовой ценности проекта может выглядеть следующим образом:
- Высокая. Ожидаемая окупаемость до 1 года. Ожидаемые доходы от проекта не менее чем в 1.5 раз превышают расходы. Все допущения при проведении этих оценок четко обоснованны.
- Выше среднего. Ожидаемая окупаемость проекта от 1 года до 3 лет. Ожидаемые доходы от проекта не менее чем в 1.3 раза превышают расходы. Большинство допущений при проведении этих оценок имеют под собой определенные основания.
- Средняя. Проект позволяет улучшить эффективность производства в Компании и потенциально может снизить расходы компании не менее чем на 30%. Проект может иметь информационную ценность или помочь лучше контролировать бизнес.
- Низкая. Проект немного снижает расходы компании не менее чем на 10% и дает некоторые улучшения производительности производства.
Например. Финансовая ценность проектов разработки ПО, проектов внедрения или сопровождения, которые выполняются в соответствие с заключенными коммерческими договорами, может быть оценена как высокая. Проект планового развития функциональности продуктов в соответствии с требованиями рынка, инициируемое менеджером продукта на основе анализа предложений отделов маркетинга, консалтинга, продаж и технической поддержки, может получить оценку финансовой ценности выше среднего, а проекты изменения технологических процессов или проекты внутренней автоматизации могут иметь среднюю финансовую ценность.
Одной финансовой ценности для определения приоритета проекта недостаточно. Например, ни одна компания разработчик ПО не возьмется за автоматизацию нелегального оборота наркотиков, если это не соответствует стратегии ее бизнеса. Поэтому, важным показателем приоритета проекта является его соответствие стратегическим целям компании.
Шкала оценки стратегической ценности проекта может иметь следующий вид:
- Высокая. Обеспечивает стратегическое преимущество, дает устойчивое увеличение рынка или позволяет выйти на новый рынок. Решает значительные проблемы, общие для большинства важных клиентов. Повторение конкурентами затруднено или потребует от 1 до 2 лет.
- Выше среднего. Создает временные конкурентные преимущества. Выполнение обязательств перед многими важными клиентами. Конкурентное преимущество может быть удержано в течение 1 года.
- Средняя. Поддерживается доверие рынка к компании. Повышает мнение клиентов о качестве предоставляемых услуг или способствует выполнению обязательств перед несколькими клиентами. Конкуренты уже имеют или способны повторить новые возможности в пределах года.
- Низкая. Стратегическое воздействие отсутствует или незначительно. Влияние на клиентов несущественно. Конкуренты могут легко повторить результаты проекта.
Третьим обязательным показателем приоритета проекта должна быть оценка уровня его риска. Ни один проект, который имеет даже самую высокую оценку финансовой выгодности, не будет запущен в производство, если достижение этой сверхвыгоды имеет минимальные шансы.
Примерная шкала оценки уровня рисков проекта может иметь следующий вид:
- Низкий. Цели проекта и требования хорошо поняты и документированы. Масштаб и рамки проекта заданы четко. Ресурсы требуемой квалификации доступны в полном объеме. Разрабатываемые системы не потребуют новой технологической платформы.
- Средний. Цели проекта определены более-менее четко. Хорошее понимание требований к системе. Масштаб и рамки проекта заданы достаточно хорошо. Ресурсы требуемой квалификации доступны в основном. Системы создаются на новой, но стабильной технологической платформе.
- Выше среднего. Цели проекта недостаточно четки. Задачи системы или бизнес-приложения поняты недостаточно полно. Понимание масштаба и рамок проекта недостаточно. Ресурсы требуемой квалификации сильно ограничены. Системы создаются на новой технологической платформе, сомнения в рыночной стабильности платформы.
- Высокий. Цели проекта нечетки. Основные функциональные компоненты системы не определены. Масштаб и рамки проекта непонятны. Ресурсы требуемой квалификации практически отсутствуют. Системы создаются на новой технологической платформе, в отношении которой крайне мало ясности. Технологии имеют неподтвержденную стабильность.
Если компания уделяет мало внимания управлению приоритетами своих проектов, то это приводит к переизбытку реализуемых проектов, перегруженности исполнителей, постоянным авралам и сверхурочным работам и, как следствие, к низкой эффективности производственной деятельности. При старте нового проекта с высоким приоритетом, компания должна остановить или закрыть менее значимые проекты, чтобы обеспечить новый проект необходимыми ресурсами, а не пытаться сделать все и сразу за счет интенсификации работ, как правило, это не получается.
Концепция проекта
У каждого проекта должна быть концепция. Если проект небольшой, то для изложения концепции часто достаточно несколько абзацев. Однако, стартовать проект без концепции, это все равно, что отправлять корабль в плавание, не определив для него пункт назначения.
Концепция проекта разрабатывается на основе анализа потребностей бизнеса. Главная функция документа — подтверждение и согласование единого видения целей, задач и результатов всеми участниками проекта. Концепция определяет что и зачем делается в проекте.
Концепция проекта это ключевой документ, который используется для принятия решений в ходе всего проекта, а также на фазе приемки — для подтверждения результата. Она содержит, как правило, следующие разделы:
- Название проекта
- Цели проекта
- Результаты проекта
- Допущения и ограничения
- Ключевые участники и заинтересованные стороны
- Ресурсы проекта
- Сроки
- Риски
- Критерии приемки
- Обоснование полезности проекта
В качестве примера, который позволит иллюстрировать теоретическое изложение основ управления проектами, возьмем реальный проект разработки ПО для автоматизации одного из подразделений крупной производственной компании. Назовем его «Автоматизированная система продажи документации».
Краткая легенда проекта. Заказчик ОАО «XYZ» является одним из ведущих производителей сложных технических изделий. Отдел «123», входящий в ОАО «XYZ», отвечает за продажу дополнительной сопроводительной документации для клиентов ОАО.
Дополнительная документация не входит в стандартную поставку, поскольку владелец этого технического изделия не всегда сам его эксплуатирует, а передает в эксплуатацию другой компании, которая становится клиентом «XYZ», и закупает у нее эксплуатационную документацию. Ремонт и техобслуживание конкретного изделия может выполнять третья компания, которой уже потребуется детальная техническая документация по ремонту и обслуживанию. Она также становится клиентом «XYZ» и закупает у нее требуемую продукцию.
Основная функция отдела «123» — получение и обработка заказов на дополнительную документацию, согласно ежегодно рассылаемому каталогу. В связи с переездом отдела «123» в новое здание, была поставлена задача на разработку и поставку системы, автоматизирующей основную деятельность отдела «123».
Текст документа Концепция проекта, который будет приводиться в качестве примера, будем выделять цветом фона.
Цели и результаты проекта
Цели проекта должны отвечать на вопрос, зачем данный проект нужен. Цели проекта должны описывать бизнес-потребности и задачи, которые решаются в результате исполнения проекта. Целями проекта могут быть:
- Изменения в Компании. Например, автоматизация ряда бизнес-процессов для повышения эффективности основной производственной деятельности
- Реализация стратегических планов. Например, завоевание значительной доли растущего рынка за счет вывода на него нового продукта.
- Выполнение контрактов. Например, разработка программного обеспечения по заказу.
- Разрешение специфических проблем. Например, доработка программного продукта в целях приведения его в соответствие с изменениями в законодательстве.
Цели должны быть значимыми (направленными на достижение стратегических целей Компании), конкретными (специфичными для данного проекта), измеримыми (т.е иметь проверяемые количественные оценки), реальными (достижимыми). Четкое определение бизнес-целей важно, поскольку существенно влияет на все процессы и решения в проекте. Проект должен быть закрыт, если признается, что достижение цели невозможно или стало нецелесообразным. Например, если реальные затраты на проект будут превосходить будущие доходы от его реализации.
Результаты проекта отвечают на вопрос, что должно быть получено после его завершения. Результаты проекта должны определять:
- Какие именно бизнес-выгоды получит заказчик в результате проекта.
- Какой продукт или услуга. Что конкретно будет произведено по окончании проекта.
- Высокоуровневые требования. Краткое описание и при необходимости ключевые свойства и/или характеристики продукта/услуги.
Следует помнить, что результаты проекта должны быть измеримыми. Это означает, что при оценке результатов проекта должна иметься возможность сделать заключение достигнуты оговоренные в концепции результаты или нет.
Соответствующий раздел документа концепция проекта создания «Автоматизированной системы продажи документации» будет выглядеть следующим образом.
- Цели и результаты проекта
1.1. Целью проекта является повышение эффективности основной производственной деятельности отдела «123».
1.2. Дополнительными целями проекта являются:
1.2.1. Установление долгосрочных отношений с важным заказчиком ОАО «XYZ».
1.2.2. Выход на новый перспективный рынок современных B2C систем.
- Результаты проекта должны обеспечить:
2.1. Снижение затрат на обработку заявок.
2.2. Снижение сроков обработки заявок.
2.3. Повышение оперативности доступа к информации о наличии продукции.
2.4. Повышение оперативности доступа к информации о прохождении заявок.
2.5. Повышение надежности и полноты хранения информации о поступивших заявках и результатах их обработки.
- Продуктами проекта являются:
3.1. Прикладное ПО и документация пользователей.
3.2. Базовое ПО.
3.3. Оборудование ЛВС, рабочие станции, сервера и операционно-системное ПО.
3.4. Проведение пуско-наладочных работ и ввод в опытную эксплуатацию.
3.5. Обучение пользователей и администраторов системы.
3.6. Сопровождение системы на этапе опытной эксплуатации.
3.7. Передача системы в промышленную эксплуатацию.
- Система должна автоматизировать следующие функции:
4.1. Авторизация и аутентификация пользователей.
4.2. Просмотр каталога продуктов.
4.3. Поиск продуктов по каталогу.
4.4. Заказ выбранных продуктов.
4.5. Просмотр информации о статусе заказа.
4.6. Информирование клиента об изменении статуса заказа.
4.7. Просмотр и обработка заказов исполнителями из службы продаж.
4.8. Просмотр статистики поступления и обработки заказов за период.
4.9. Подготовка и сопровождение каталога продукции.
Допущения и ограничения
Данный раздел описывает исходные допущения и ограничения. Допущения, как правило, тесно связаны с управлением рисками, о котором мы будем говорить далее. В разработке ПО часто приходится формулировать риски в виде допущений, тем самым передавая его заказчику. Например, оценивая проект разработки и внедрения по схеме с фиксированной ценой, мы должны записать в допущения предположение о том, что стоимость лицензий на стороннее ПО не изменится, до завершения проекта.
Ограничения, как правило, сокращают возможности проектной команды в выборе решений. В частности они могут содержать:
- Специфические нормативные требования. Например, обязательная сертификация продукта, услуги на соответствие определенным стандартам.
- Специфические технические требования. Например, разработка под заданную программно-аппаратную платформу.
- Специфические требования к защите информации.
В этом разделе также уместно сформулировать те требования к системе, которые могут ожидаться заказчиком по умолчанию, но не включаются в рамки данного проекта. Например, в данный раздел может быть включен пункт о том, что разработка программного интерфейса (API) для будущей интеграции с другими системами заказчика не входит в задачи данного проекта.
Содержание этого раздела для нашего проекта-примера выглядит следующим образом.
- Допущения и ограничения
5.1. Проектирование прикладного ПО выполняется с использованием UML1.
5.2. Средством разработки ПО является Symantec Visual Cafe for Java2.
5.3. В качестве промежуточного ПО сопровождения и поддержки каталога используется ОО БД «Poet»3.
5.4. Нагрузка на систему не должна быть более 100 одновременно работающих пользователей.
5.5. В рамки проекта не входят:
5.5.1. Защита системы от преднамеренного взлома.
5.5.2. Разработка B2B API и интеграция с другими системами.
Ключевые участники и заинтересованные стороны
Одна из задач фазы инициации проекта это выявить и описать всех его участников. Согласно [1] к участникам проекта относятся все заинтересованные стороны (stakeholders), лица и организации, например заказчики, спонсоры, исполняющая организация, которые активно участвуют в проекте или чьи интересы могут быть затронуты при исполнении или завершении проекта. Участники также могут влиять на проект и его результаты поставки.
К ключевым участникам программного проекта, как правило, относятся:
- Спонсор проекта — лицо или группа лиц, предоставляющая финансовые ресурсы для проекта в любом виде.
- Заказчик проекта — лицо или организация, которые будут использовать продукт, услугу или результат проекта. Следует учитывать, что заказчик и спонсор проекта не всегда совпадают.
- Пользователи результатов проекта.
- Куратор проекта — представитель исполнителя, уполномоченный принимать решение о выделении ресурсов и изменениях в проекте.
- Руководитель проекта — представитель исполнителя, ответственный за реализацию проекта в срок, в пределах бюджета и с заданным качеством.
- Соисполнители проекта. Субподрядчики и поставщики.
Содержание этого раздела в концепции-примере будет иметь вид.
- Ключевые участники и заинтересованные стороны
6.1. Спонсор проекта — директор Департамента информатизации ОАО «XYZ» В.Васильев.
6.2. Заказчик — начальник Отдела «123» Ф.Федотов
6.3. Пользователи автоматизированной системы:
6.4. Клиенты ОАО «XYZ» (поиск и заказ документации).
6.5. Руководство ОАО «XYZ» (анализ деятельности Отдела «123»).
6.6. Сотрудники производственных департаментов ОАО «XYZ» (сопровождение каталога).
6.7. Сотрудники Отдела «123» (обработка заявок и поставка документации).
6.8. Сотрудники департамента информатизации ОАО «XYZ» (администрирование системы).
6.9. Куратор проекта — начальник отдела заказных разработок И.Иванов.
6.10. Руководитель проекта — ведущий специалист отдела заказных разработок МП П.Петров.
- Соисполнители:
7.1. Поставщик оборудования и операционно-системного ПО — ООО «Альфа».
7.2. Поставщик базового ПО — ООО «Бета».
Ресурсы
Для того чтобы понять, сколько будет стоить реализация программного проекта, требуется определить и оценить ресурсы необходимые для его выполнения:
- Людские ресурсы и требования к квалификации персонала.
- Оборудование, услуги, расходные материалы, лицензии на ПО, критические компьютерные ресурсы.
- Бюджет проекта. План расходов и, при необходимости, предполагаемых доходов проекта с разбивкой по статьям и фазам/этапам проекта.
Специфика программного проекта заключается в том, что людские ресурсы вносят основной вклад в его стоимость. Все остальные затраты, как правило, незначительны, по сравнению с этим расходами. О том, как следует подходить к оценкам трудозатрат на реализацию проекта разработки ПО, мы будем подробно говорить в следующих лекциях. На фазе инициации хорошей считается оценка трудозатрат с точностью от -50% до +100% [2].
Необходимо помнить, что помимо непосредственно программирования в проекте разработки ПО есть много других процессов, которые требуют ресурсы соответствующей квалификации, а само программирование составляет лишь четверть всех затрат. Распределение трудозатрат по основным производственным процессам при современном процессе разработки ПО выглядит в среднем следующим образом:
Рисунок 14.Распределение трудозатрат по основным производственным процессам при разработке ПО
Поэтому, если по вашей оценки для реализации требуемой функциональности в проекте необходимо написать 10 KSLOC (тысяч строк исходного программного кода), а ваши программисты пишут в среднем по 100 SLOC в день, то общие трудозатраты на проект будут не 100 чел.*дней, а не менее чем 400 чел.*дней. Остальные ресурсы потребуются на анализ и уточнение требований, проектирование, документирование, тестирование и другие проектные работы.
Прежде, чем определять численность и состав проектной команды для нашего примера, нам необходимо сделать оценку трудоемкости разработки ПО. В нашем случае такая экспертная оценка составила с учетом затрат на гарантийное сопровождение на этапе опытной эксплуатации 9000 чел.*час. Исходя из эмпирической кривой Б. Боэма (Рисунок 15), численность команды, близкая к оптимальной, составила 10 человек, из них
- Ресурсы проекта
8.1. Требования к персоналу
8.1.1. 1 — руководитель проекта,
8.1.2. 1 — технический лидер (архитектура, проектирование),
8.1.3. 1 — системный аналитик (требования, тест-дизайн, документирование),
8.1.4. 4 — программисты (с учетом работ по конфигурационному управлению),
8.1.5. 3 — тестировщика.
8.2. Материальные и другие ресурсы
8.2.1. Сервер управления конфигурациями и поддержки системы контроля версий
8.2.2. 2 серверных комплекса (для разработки и тестирования):
8.2.3. Сервер приложений с установленным BEA Weblogic AS
8.2.4. Сервер оперативной БД с установленной Oracle RDBMS
8.2.5. Сервер каталога с установленной OODB "Poet"
8.3. Лицензии на средства разработки и тестирования:
8.3.1. Oracle Designer — 1 лицензия
8.3.2. Symantec Visual Cafe for Java — 5 лицензий.
8.3.3. IBM Rational Test Robot (1 лицензия разработчика + неограниченная лицензия на клиент).
8.4. Расходная часть бюджета проекта4
8.4.1. Разработка и сопровождение прикладного ПО:
8.4.1.1. 9000 чел.*час. * $40 = $360 000
8.4.2. Поставка оборудования и операционно-системного ПО:
8.4.2.1. 3 сервера * $10 000 = $30 000
8.4.3. Поставка базового ПО:
8.4.3.1. BEA Weblogic AS $20 000
8.4.3.2. Oracle RDBMS $20 000
Итого: $430 000
1 Проект стартовал в 2000 году, тема UML тогда была на слуху и даже оставались те, кто верил, что из модели на UML можно будет генерировать исходный код.
2 Таково было требование Заказчика, поскольку этот инструмент использовали его программисты, которым предполагалось передавать систему на сопровождение.
3 Еще один пример горячей темы и не оправдавшихся надежд — это объектно-ориентированные базы данных. У заказчика проекта уже были закуплены лицензии на эту базу данных и он очень хотел получить возврат от этих инвестиций. Поэтому ее использование в проекте стало одним из требований. К счастью, нам удалось быть достаточно убедительными и обосновать необходимость дополнительно использовать RDBMS Oracle для решения транзакционных задач. О том, к чему это привело, я подробно рассказал в своей книге: С. Архипенков, "Руководство командой разработчиков программного обеспечения. Прикладные мысли", Москва, 2008.
4 Мы в данном разделе оцениваем себестоимость проекта. Определение продажной цены проекта не входит в рамки данного курса.
Назад Содержание Вперёд