Особенности управления рисками распределенной разработки программного обеспечения - Статья

бесплатно 0
4.5 156
Риски распределенной разработки. Классификации различных рисков, возникающих в процессе разработки программного обеспечения. Распределенная разработка – тип разработки, позволяющий членам команды находиться в различных местах во время жизненного цикла ПО.


Аннотация к работе
Особенности управления рисками распределенной разработки программного обеспечения Одним из подходов к разработке программного обеспечения является распределенная разработка, при которой команда сталкивается с рядом специфических проблемам. Также в статье упоминаются существующие методики управления риском, исследуется их возможность удовлетворять запросам управления рисками распределенных разработок.Институт программной инженерии (SEI) определяет риск как "вероятность понести ущерб" [1] и определяет ущерб в проектах по разработке как "влияние на проект, которое выражается в ухудшении качества конченого продукта, увеличении затрат, задержке сроков окончания проекта, потери доли рынка, провале проекта" [1]. Для каждого риска существует два аспекта: вероятность возникновения риска и ущерб от реализации риска. Оценка рисков не является простой задачей и не может быть выполнена со стопроцентной точностью (в противном случае, по определению, исчезает сам риск). В проектах по разработке программного обеспечения (ПО) существует немало рисков, наиболее типичными и значимыми из которых являются [2]: - Дефицит сотрудников Одним из существующих определений является: Распределенная разработка ПО - это тип разработки, позволяющий членам команды находиться в различных местах во время жизненного цикла ПО, что, таким образом, образует сеть из удаленных подгрупп разработки [4]. риск программный разработкаВ статье был проведен обзор особенностей распределенной разработки ПО, к одним из которых следует отнести специфические проблемы, а именно - проблемы управления и взаимодействия, технические проблемы.

Введение
Институт программной инженерии (SEI) определяет риск как "вероятность понести ущерб" [1] и определяет ущерб в проектах по разработке как "влияние на проект, которое выражается в ухудшении качества конченого продукта, увеличении затрат, задержке сроков окончания проекта, потери доли рынка, провале проекта" [1].

Для каждого риска существует два аспекта: вероятность возникновения риска и ущерб от реализации риска. Эти аспекты используется для оценки влияния или воздействия риска (risk impact) [2], формулу которого можно представить как:

где RI - влияние риска, X - неблагоприятное событие

P(X) - вероятность неблагоприятного события, L(X) - потери/ущерб при наступлении неблагоприятного события.

Оценка рисков не является простой задачей и не может быть выполнена со стопроцентной точностью (в противном случае, по определению, исчезает сам риск).

В проектах по разработке программного обеспечения (ПО) существует немало рисков, наиболее типичными и значимыми из которых являются [2]: - Дефицит сотрудников

- Нереалистичное планирование и бюджетирование

- Неправильная разработка функций ПО

- Неправильный интерфейс пользователя

- Недостатка производительности в реальном времени

- Плохая прослеживаемость

- Недостаточная валидация и верификация

- Сложность системы

- Неудовлетворенность клиента от реализации проекта

- Попытки снижения риска приводят к возникновению новых.

Разные авторы определяют и предлагают к классификации различные риски, возникающие в процессе разработки программного обеспечения. Это означает, что количество и элементы программных рисков не являются фиксированными и строго определенными. С течением времени неизбежно возникают новые риски, появляются их новые типы и источники.

Новые типы рисков порождают новые подходы к разработке ПО. Одним из таких подходов является распределенная разработка. Этот подход все чаще начинает встречаться на рынке разработке ПО. Однако стоит отметить, что идея данного подхода отнюдь не нова. Тренд распределенной разработки программного обеспечения начался еще в начале 1990-х годов. За этими трендом стояли определенные факторы, такие как сокращение стоимости разработки и привлечение квалифицированных специалистов в команду [3].

Для дальнейшего описания особенностей управления рисками распределенной разработки следует определить само его понятие. Одним из существующих определений является: Распределенная разработка ПО - это тип разработки, позволяющий членам команды находиться в различных местах во время жизненного цикла ПО, что, таким образом, образует сеть из удаленных подгрупп разработки [4]. риск программный разработка

Распределенные программные проекты обычно разрабатываются группами, работающими совместно по различным каналам связи, как правило, в разных странах. Компании-разработчики ПО все чаще рассматривают распределенную разработку как стратегию для снижения затрат и повышения производительности своих проектов [5].

Проблемы распределенной разработки ПО

Несмотря на преимущества использования распределены разработки, оно сопряжено с целым рядом проблем, которые могут стать источниками риска для данного типа разработки. Примерами таких проблем являются: · Стратегические вопросы: организационное "сопротивление" изза перекоса в управлении между различными уровнями управления;

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

· Вопросы коммуникации: слабые формальные и неформальные связи изза отсутствия встреч лицом к лицу, опаски нарушения прав интеллектуальной собственности и тому подобное;

· Технические вопросы: медленные сети;

· Вопросы проектного управления: отсутствие должной синхронизации;

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

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

Таблица 1 - Проблемы распределенной разработки ПО [6]

Проблемы управления

Инициация и планирование: Выполнение и контроль: Лидерство: Стратегические вопросы; распределение работ; определение процессов; резервирование средств; Контроль за удаленными действиями; риск-менеджмент Вопросы лидерства

Проблемы взаимодействия

Коммуникации и координирование: Осведомленность: Отсутствие общего контекста; различные организационные культуры; сложность выявления опыта и выбора членов команды

Вопросы доверия; языковые различия; неформальное общение; задержки; изоляция

Технические проблемы

Конфигурации: Инструменты и среда: Инжиниринг требований; изменчивая архитектура; вопросы интеграции; управление знаниями; изменения конфигураций; несовместимые требования Стандарты; инфраструктура; Вопросы ИБ; вопросы форматов;

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

Потенциальные риски распределенной разработки ПО

Согласно проведенному исследованию [7], которое нацелено на выявление слабых сторон распределенной (виртуальной) команды, распределенная разработка порождает следующие риски: недостаточная передача знаний, отсутствие сплоченности проектной команды, сложность в мотивации, культурные или языковые различия, недостаточные технические ресурсы, незрелость компании и ее процессов, потеря ключевых ресурсов и другие [7].

В исследовании показано существенное различие в важности риска между распределенным и традиционным типом разработки ПО.

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

Требования к управлению рисками

Управление рисками в разработке программного обеспечения по-прежнему развивается, что следует из непрерывного потока новых методик управления рисками и высокой интенсивности отказов в проектах по разработке программного обеспечения [8]. Как правило, причинами введения новых методик являются недостатки или неадекватность существующих, или необходимо покрытие новых условий. Все эти причины, как представляется, действительны и для управления рисками распределенной разработки. Распределенная разработка является быстро развивающейся областью разработки ПО, и большинство разработчиков зависят от традиционных методологий управления рисками, характерными для традиционных команд, или используют модифицированные подходы для управления своими рисками. Распределенная разработка включает в себя некоторые уникальные характеристики, проблемы и риски, которые создают определенные потребности для методики риск-менеджмента: - Возможность меняться и подстраиваться, чтобы приспособиться к непрерывной и быстрой эволюции распределенной разработки.

- Полный учет особенностей среды распределенной разработки, проблем, характеристик, рисков и факторов.

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

Существующие методики управления рисками имеют ряд недостатков для распределенной разработки. В таблице 2 представлено сравнение некоторых из них.

Таблица 2 - Методики управления рисками [9,10].

Методика Преимущества Недостатки

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

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

PMBOK RM Process Рассматриваются процессы разработки программного обеспечения. Методика включает в себя управление рисками как часть управления проектами. Весьма общая для удовлетворения каких-либо конкретных потребностей, многие аспекты распределенной разработки (удаленное управление социальные вопросы и пр.) не рассматриваются

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

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

- Они не являются достаточно гибкими и предлагают только глубокий тип управления рисками. Упрощенное управление рисками не предлагается.

- Отсутствуют механизмы обработки нетипичных рисков

- Отсутствует мониторинг проектов и связанных с ними рисков.

- Большинство подходов сосредоточены на теоретических аспектах и не дают четкие ориентиры для практики.

Вывод
В статье был проведен обзор особенностей распределенной разработки ПО, к одним из которых следует отнести специфические проблемы, а именно - проблемы управления и взаимодействия, технические проблемы. Так же в качестве другой особенности распределенной разработки выделены риски, связанные с разработкой ПО. В результате проделанной работы, мы приходим к выводу о том, что такие проблемы и риски не характерны для традиционного подхода, что дает основания для уточнения методик управления рисками применительно к распределенной разработке. Нами рассмотрены такие методики управления рисками как SOFTRISK, CMMI-RSKM, PMBOK RM Process, GDPS RM Framework.

Список литературы
1.Williams R., Pandelios G., Behrens S. Software Risk Evaluation (SRE) Method Description (Version 2.0) Software Engineering Institute (SEI) December 1999.

2. Boehm B. W. Software Risk Management: Principles and Practices IEEE Software, vol. 8, 1991, pp. 32-41.

3. Krishna S., Sahay S., Walsham G. Managing cross-cultural issues in global software outsourcing // Commun. ACM, vol. 47, no. 4, pp. 62-66, 2004.

4. Jimenez M., Piattini M., Vizcaino A. Challenges and improvements in distributed software development: A systematic review // Advances in Software Engineering, vol. January, no. 3, pp. 1-14, 2009.

5. Yadav V. A Flexible Management Approach for Globally Distributed Software Projects // Global Journal of Flexible Systems Management, March 2016, Volume 17, Issue 1, pp 29-40

6. Keshlaf, A. and Riddle, S. Risk Management for Web and Distributed Software Development Projects, The Fifth International Conference on Internet Monitoring and Protection (ICIMP10), IEEE Computer Society, May 9 - 15, Spain, pp. 22-28, 2010.

7. Хусаинова А.Т. Понятие, сильные и слабые стороны виртуальных команд и их отличие от традиционных команд проекта // Вестник КАЗНУ, Сер. Экономическая, 2015. т.№2.-С.165-169

8. Николаенко В.С. Внедрение риск-менеджмента в ИТ-проекты // Государственное управление. Электронный вестник. 2016. №54 С.63-88.

9. Keshlaf, A. and Riddle, S. Web and Distributed Software Development Risks Management: WEDRISK Approach // International Journal on Advances in Software, vol. 3 no. 3 - 4, pp 447-460, 2010.

10. Кияев В.И. Стандартизация, метрология и качество разработки программного обеспечения и информационных технологий. - Монография. - СПБ: Изд-во СПБГЭУ, 2016. - 475 С.

Размещено на .ru
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?