Управление инженерией ПО (Software Engineering Management)
Управление инженерией ПО (менеджмент) – руководство работами команды разработчиков ПО в процессе выполнения плана проекта, определение критериев и оценка процессов и продуктов проекта с использованием общих методов управления, планирования и контроля работ.
Как любое управление, менеджмент ПО предполагает планирование, координацию, измерение, контроль и отчет по процессу управления проектом; представляет собой системную, дисциплинированную и измеряемую разработку ПО. Координацию людских, финансовых и технических ресурсов при реализации задач проекта выполняет менеджер проекта, аналогично тому, как это делается в технических проектах. В его обязанности входит соблюдение запланированных бюджетных и временных характеристик и ограничений, стандартов и сформулированных требований. Общие вопросы управления проектом содержится в ядре знаний РMBOK [19] в разделе Management Process Activities, а также в стандарте ISO/IEC 12207 – Software life cycle processes [14], где управление проектом рассматривается как дополнительный и организайионный процесс ЖЦ,
Область знаний «Управление инженерией ПО (Software Engineering Management)» состоит из следующих разделов:
– организационное управление (Organizational Management),
– управление процессом и проектом (Process/Project Management),
– измерение инженерии ПО (Software Engineering Measurement).
Организационное управление – это планирование и составление графика работ, оценка стоимости работ, подбор и управление персоналом, контроль за выполнением работ согласно принятых стандартов и планов. Главными проблемами организационного управления проектом являются: управление персоналом (обучение, мотивация и др.), коммуникации между сотрудниками и средой (сценарии, встречи, презентации и др.), а также риски (минимизация риска, техники определения риска, выбор решений по их предотвращению и др.). Для управления проектом создается такая структура коллектива, специалисты которой могут выполнить проект, они распределяются по работам и все вместе реализуют задачи проекта под руководством менеджеру проекта.
Задачам проекта сопоставляется оборудование, средства и исполнители. Проводится распределение обязанностей специалистов и их выполнение с учетом заданной стоимости и срока разработки проекта.
Процесс управления проектом включает: составление плана проекта, построение графиков работ (сетевых или временных диаграмм) исходя из имеющихся ресурсов, а также распределение персонала по работам с учетом сроков и стоимости их выполнения и др.; анализ финансовой, технической, операционной и социальной политики организации для выбора правильной стратегии выполнения плана; контроль процесса управления планами и продуктами на процессах.
Управление продуктомзаключается в уточнении требований и проверки (валидацию) их на соответствие, в просмотре и ревизии требований на соответствие заданным спецификациям качества, а также в проверке (верификации) правильности реализованных функций в отдельных продуктах проекта. Процесс управления проектом базируется на заданных сроках выполнения работ, их начала и окончания. Результаты планирования отображаются в сетевых диаграммах (PERT – Program Evaluation and Review Technique, CРM – Сritical Path Method и др.), предназначенных для отображения полного комплекса работ, времени их выполнения и зависимостей между разными работами.
Сетевая диаграмма PERT является графом, в вершинах которого располагаются работы, а дуги задают взаимные связи между этими работами. Такой граф является наиболее распространенным представлением сети для управления разными видами работ на сегодняшний день. Другой тип сетевой диаграммы является событийным, когда в ее вершинах указываются события, а работы задаются линиями между двумя узлами–событиями. Ожидаемое время выполнения работы для сетевых диаграмм оценивается с помощью среднего весового значения трех оценок: оптимистической, пессимистической и ожидаемой – вероятностной. Эти оценки берутся из заданного времени на разработку и заключений экспертов, оценивающих отдельные работы и в комплексе. Есть и другие методы оценок.
После составления плана решается вопрос управления и контроля проекта согласно плану, выбранного процесса и сущности проекта. Корректно составленный план обеспечивает выполнение требований и целей проекта. Процесс контроля более всего направлен на внесение изменений в проект, оценку риска и оценка принимающих решений.
Управление рискамиявляется важной проблемой выполнения проекта и представляет собой процесс определения рисков и разработки мероприятий по уменьшению их влияния на ход выполнения проекта.
Риск – вероятность проявления неблагоприятных обстоятельств, которые могут повлиять негативно на реализацию качества проекта и на управление разработкой (например, увольнение сотрудника и отсутствие замены для продолжения работ и др.). Для управления риском проводится идентификация и анализ риска, оценка критических рисков и планирование непредвиденных ситуаций, касающихся рисков. Предотвращение риска заключается в выполнении действий, которые снимают риск (например, увеличение времени разработки и др.), уменьшают вероятность появления нового риска при реорганизации проекта, БД или транзакций, а также при выполнении ПО.
Измерение в инженерии ПО проводится для определения отдельных характеристик объектов инженерии (продуктов, процессов и т.п.) и их измерение. Проводится комплекс работ, связанных с выбором метрик для оценки качества процессов и продуктов, а также обстоятельств и зависимостей, влияющих на их измерение. К ним относятся: совершенствование процессов управления проектом; оценки временных затрат и стоимости ПО, их регулирование; определение категорий рисков и отслеживание факторов для регулярного расчета вероятностей их возникновения; проверка заданных в требованиях показателей качества отдельных продуктов проекта и проекта в целом [15].
Проведение разного рода измерений является важным принципом любой инженерной деятельности, а в программном проекте оно положительно влияет на результат выполнения и создания ПО, необходимого заказчику и потребителям. Без измерений в инженерии ПО процесс управления становится неэффективным и превращается в самоцель.
Таким образом,рассмотрение основных принципов формирования команды разработчиков, методов планирования работ и оценки процессов создания ПО и самого продукта позволяет менеджеру коллектива разработчиков проекта сосредоточится на планировании работ, оценках трудозатрат, распределения ресурсов и управления изменениями и рисками.