Классификация и описание рискообразующих факторов при создании программных продуктов

УДК 004.05 Ю.П. Ехлаков

Классификация и описание рискообразующих факторов при создании программных продуктов

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

Ключевые слова: риски программных проектов, классификация и описание рискообразующих факторов.

В настоящее время доля 1Т-услуг составляет 20% в общем обороте 1Т-отрасли экономики России, а темп ежегодного прироста оценивается экспертами в 19%. Около 26% в общем объеме ІТ-услуг составляют услуги компаний малого и среднего бизнеса по разработке прикладных программных продуктов (ПП) [1]. В то же время только 35% проектов завершились в срок, не превысили запланированный бюджет и реализовали все требуемые функции и возможности; 46% проектов завершились с опозданием, расходы превысили запланированный бюджет, требуемые функции не были реализованы в полном объеме; 19% проектов были полностью неуспешны и не доведены до завершения [2, 3].

Такое положение дел на рынке прикладного программирования объясняется тем, что ПП как рыночный продукт имеет ряд особенностей:

• программный продукт нематериален, его нельзя увидеть в процессе конструирования и, следовательно, оперативно повлиять на его реализацию;

• жизненный цикл (ЖЦ) ПП в существующих стандартах описан в общем виде и прямо не ориентирован на специфику конкретного продукта, необходимо адаптировать стандарты под конкретные условия;

• программные продукты как результаты творческого труда не поддаются точному оцениванию как по времени создания, так и по требуемому бюджету и поэтому создаются в условиях повышенного риска;

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

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

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

Существует множество определений понятия «риск» [2-6]. Так, в [3] предлагается рассматривать понятие риска с трех точек зрения: риск как возможность угрозы бизнесу; риск как негативное событие, не позволяющее достичь в полной мере цели проекта; риск как неопределенность между возникающими неблагоприятными ситуациями и возможными действиями по их устранению. С учетом вышеизложенного под риском будем понимать наступление события, которое может возникнуть в процессе реализации программного проекта и негативно повлиять на степень достижения целей проекта. В табл. 1 для каждого из этапов ЖЦ ПП приведены цели проекта и формулировки возможных рисков.

Таблица 1

Соотношение целей и рисков программного проекта

Этапы ЖЦ Цели Риски

Инициализация Выбрать продуктово-рыночное направление и разработать концепцию будущего коммерческого ПП Ошибки в выборе функционала и как следствие невостребованность ПП в продуктово-рыночном направлении

Разработка Разработать коммерческий ПП с требуемым функционалом при ограничениях на сроки и бюджет проекта Наличие критических отклонений по срокам и бюджету проекта

Продвижение Обеспечить в определенном интервале времени заданный уровень объема продаж ПП при ограничении на бюджет рекламной компании Несоответствие между желаемыми и фактическими объемами продаж ПП. Наличие критических отклонений по бюджету программы продвижения

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

Появление каждого из рисков возможно при наличии процессов или явлений, способствующих их возникновению. Такие явления принято называть рискообразующими факторами [3]. Для классификации факторов риска с учетом введенного определения риска и его конкретного проявления на каждом из этапов жизненного цикла ПП будем использовать иерархический метод классификации, при котором множество рискообразующих факторов последовательно в соответствии с выбранными основаниями (признаками) классификации разбивается на подмножества (рис. 1).

Рис. 1. Классификация факторов риска программного проекта

На первом уровне классификатора в качестве основания классификации используется модель жизненного цикла программного проекта: инициализация - разработка - продвижение - внедрение.

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

На третьем уровне проявление внешних факторов обусловливается как политикой государства в отношении бизнеса малых ІТ-компаний, так и различными ситуациями на рынках. Набор внутренних факторов определяется составом системной модели деятельности: средствами деятельности, предметами деятельности, кадрами, технологией [7].

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

На основе предложенного классификатора и обобщения литературы [2-6, 8-13] в табл. 2 и 3 представлено множество рискообразующих факторов, свойственных программным проектам, без их

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

Таблица 2

Состав внутренних первичных факторов риска программных проектов______

Основания классификации Первичные факторы риска

1. Продукт 1. Недостаток финансирования проекта. 2. Нестабильное финансирование работ по проекту. 3. Высокие невозвратные издержки проекта. 4. Нереальные сроки выполнения проекта. 5. Частые изменения требований к проекту у заказчика. 6. Неполные или нечеткие требования к программному проекту. 7. Недостаточная поддержка проекта руководством заказчика. 8. Возможная смена руководства у заказчика. 9. Готовность заказчиков к внедрению ПП 10. Уровень сервисов интеграции ПП с существующими у заказчиков информационными системами

2. Персонал 1. Отсутствие у команды необходимых трудовых ресурсов. 2. Высокая текучесть кадров. 3. Отсутствие у команды опыта, необходимого для реализации проекта. 4. Разрыв в квалификации специалистов разных областей знаний. 5. Саботаж отдельных членов команды проекта

3. Технологии реализации продукта 1. Недостаточная зрелость технологий, применяемых в процессе реализации проекта. 2. Высокая скорость устаревания применяемых технологий. 3. Ошибки при выборе программно-аппаратной платформы и средств реализации продукта. 4. Использование при разработке ПП новых программных средств

4. Технология управления ПП 1. Отсутствие у разработчика эффективной методологии управления ПП. 2. Отсутствие опыта управления командой разработчиков. 3. Отсутствие адекватной методологии управления требованиями и изменениями. 4. Ошибки в расчетах финансовых затрат на разработку (продвижение) ПП. 5. Ошибки в оценках трудоемкости и сроков работ. 6. Несоблюдение стандартов при разработке (продвижении) ПП. 7. Недостатки в планировании проекта, появление «забытых» работ. 8. Недостатки во внутренней организации работ, неумение работать в реальном времени. 9. Недооценка взаимосвязи между работами по проекту. 10. Ошибки при выборе потребительских предпочтений пользователей. 11. Ошибочный выбор целевого сегмента. 12. Ошибки выбора каналов и инструментов коммуникаций. 13. Недостаточная проработка коммуникационных сообщений. 14. Отсутствие эффективного взаимодействия с заказчиком

Содержание каждого из факторов описывается по схеме: «условия возникновения ^ последствия проявления ^ влияние на результат». Фрагмент такого описания представлен в табл. 4.

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

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

1) выделить множества независимых рискообразующих факторов, оказывающих критическое влияние на результаты проекта;

2) оценить вероятности наступления и степени угрозы каждого из факторов;

3) провести анализ чувствительности результатов проекта при последовательном изменении критически значимых факторов;

4) провести комплексную оценку итогового риска программного проекта (высокорискованный проект, рискованный проект, среднерискованный проект, низкорискованный проект);

5) выбрать один из возможных вариантов управления итоговым риском: принять, уклониться, снизить, передать.

Таблица 3

______________Состав внешних первичных факторов риска программных проектов_______________

Основания классификации Первичные факторы риска

1. Государство 1. Изменение нормативно-правовых механизмов ведения бизнеса. 2. Изменение нормативного регулирования бизнес-процессов предметной области. 3. Отсутствие устоявшейся законотворческой практики по защите авторских и имущественных прав. 4. Изменение экономической ситуации в государстве, отрасли, регионе

2. Финансовый рынок 1. Колебания курса валют. 2. Изменение ставок по кредитам

3. Рынок труда 1. Отсутствие на рынке труда узкопрофильных специалистов

4. Продуктовый рынок

4.1. Потребители 1. Неполнота и неточность оценки потребностей потенциального рынка. 2. Несоответствие функциональных характеристик ПП потребностям потребителей. 3. Слабое влияние внедрения ПП на совершенствование бизнес-процессов компаний потребителей. 4. Несовместимость предлагаемого продукта с ПП компаний-потребителей. 5. Несоответствие нефункциональных характеристик ПП имеющимся у потребите- лей программно-аппаратным средствам и коммуникациям. 6. Ошибочные прогнозы объема продаж. 7. Несоответствие рыночной цены возможностям потенциальных потребителей. 8. Ухудшение финансовой ситуации компаний, являющихся потенциальными потребителями. 9. Невостребованность ПП рынком. 10. Скрытое противостояние специалистов-потребителей внедрению ПП. 11. Низкий уровень подготовки пользователей ПП

4.2. Партнеры 1. Появление на рынке новых аналогичных продуктов. 2. Непредсказуемое поведение конкурентов. 3. Дискредитация ПП со стороны конкурентов. 4. Пиратское распространение копий ПП. 5. Ненадежная работа аутсорсинговых компаний. 6. Изменение цен на услуги связи. 7. Изменение цен на размещение рекламы

Таблица 4

Описание первичных рискообразующих факторов __________________

Факторы Условие Последствия Воздействие на цели

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

2. Колебания курса валют Нестабильное соотношение рубля к иностранной валюте Возможное изменение цен на ПП и рекламу Сокращение объемов продаж. Увеличение бюджета программы продвижения

3. Появление новых аналогичных продуктов Выход на рынок новых аналогичных продуктов Усиление конкуренции Сокращение объемов продаж

4. Пиратское распространение копий ПП Появление в сети Интернет лицензионных ключей или «взломанных» версий ПП Незаинтересованность потенциальных потребителей в использовании легальных копий Сокращение объемов продаж

Таблица 5

Оценки воздействия рискообразующих факторов на результаты проекта_______

Показатели Шкалы

Вероятность наступления фактора Маловероятно Возможно Вероятно Очень вероятно

Менее 0,2 0,2-0,4 0,4-0,7 Более 0,У

Возможные убытки в объемах продаж, увеличение бюджета проекта Незначительные Умеренные Критичные Катастрофиче ские

Потери менее... 20 % Потери от 20 до 40 % Потери более 40% и менее 70% Потери более... У0%

Степень воздействия фактора, баллы Низкая Ниже среднего Средняя Умеренно высокая Высокая

0-1 2-4 З-6 7-8 9-10

Литература

1. О мерах по развитию ІТ-отрасли в РФ // Аналитическое исследование: ИТ-кадры. - 2010

[Электронный ресурс]. - Режим доступа: http://www.apkit.ru/committees/education/projects/

кса^2010.рЬр, свободный (дата обращения: 14.08.2013).

2. Архипенков С. Лекции по управлению программными проектами. - М., 2009. - 127 с. [Электронный ресурс]. - Режим доступа: http://www.arkhipenkov.ru/resources/sw_project_manage-ment.pdf (дата обращения: 24.09.2013).

3. Авдошин С.М. Информатизация бизнеса. Управление рисками / С.М. Авдошин, Е.Ю. Песоц-кая. - М.: ДМК Пресс, 2011. - 176 с.

4. Фатрелл Р.Т. Управление программными проектами. Достижение оптимального качества при минимуме затрат / Р.Т. Фатрелл, Д.Ф. Шафер, Л.И. Шафер. - М.: Изд. дом «Вильямс», 2004. - 1136 с.

5. Липаев В.В. Анализ и сокращение рисков проектов сложных программных средств. - М.: СИНТЕГ, 2005. - 224 с.

6. ДеМарко Т. Вальсируя с медведями: управление рисками в проектах по разработке программного обеспечения / Т. ДеМарко, Т. Листер. - М.: «p.m.Office», 2005. - 196 а

7. Перегудов Ф.И. Основы системного анализа: учебник / Ф.И. Перегудов, Ф.П. Тарасенко. - 2-е изд., доп. - Томск: Изд-во НТЛ, 1997. - 396 с.

8. Шапкин А.С. Экономические и финансовые риски / А.С. Шапкин, В. А. Шапкин. - М.: Дашков и К, 2008. - 543 с.

9. Фатхутдинов Р. А. Инновационный менеджмент: учебник для вузов. 6-е изд. - СПб.: Питер, 2008. - 448 с.

10. Гриффитс М. Основные пять рисков проектов разработки программного обеспечения [Электронный ресурс]. - Режим доступа: http://www.pmtoday.ru/project-management/risks/top-five-

risks.html, свободный (дата обращения: 07.09.2013).

11. Душкин Р. Методика управления рисками - обобщение моего опыта работы над проектами [Электронный ресурс]. - Режим доступа: http://habrahabr.ru/post/137645/, свободный (дата обращения: 10.02.2012).

12. Калугин А. Ужасы нашего городка: риски разработки для разработчиков ПО [Электронный ресурс]. - Режим доступа: http://pmarcor.com/2011/08/29/software-risks-horrors/, свободный (дата обращения: 18.09.2013).

13. Ключников В.О. Идентификация рисков ИТ-проектов // Государственное управление. -2011. - № 20 [Электронный ресурс]. - Режим доступа: http://e-journal.spa.msu.ru/im-

ages/File/2009/20/Klyuchnikov, свободный (дата обращения: 16.04.2011).

Ехлаков Юрий Поликарпович

Д-р техн. наук, профессор, зав. кафедрой автоматизации обработки информации ТУСУРа Тел.: 8 (383-2) 41-41-31 Эл. почта: upe@tusur.ru

Ekhlakov Yu.P.

Classification and description of risk-contributing factors in software development

The paper discusses the distinctive aspects of the software development process as a high-risk project. The paper reviews a range of risk-contributing factors, offers their classification and formats for description of their probability and negative effects.

Keywords: software project risks, classification and description of risk-contributing factors.