Оглавление
Введение
1. Сравнительный анализ методик управления требованиями
1.1 Процессы управления требованиями в REBOK
.2 Процессы управления требованиями в PMBOK
.3 Процессы управления требованиями в RUP
.4 Процессы управления требованиями в ITIL
.5 Процессы управления требованиями в BABOK
.6 Процессы управления требованиями в SWEBOK
.7 Особенности разработки заказного программного обеспечения
.8 Критерии сравнения методик
.9 Выбор методики для проектов заказной разработки программного обеспечения
2. Разработка показателей эффективности процессов управления требованиями
2.1 Описание профиля компании
.2 Описание типового проекта разработки заказного программного обеспечения
.3 Процессы управления требованиями в проектах компании
.4 Теоретические основы по разработке показателей эффективности
.5 Состав показателей эффективности процессов управления требованиями
3. Оценка текущих процессов в компании и разработка рекомендаций
3.1 Оценка процессов управления требованиями в реализованных проектах компании
.2 Рекомендации по повышению качества процессов управления требованиями в компании
Заключение
Список литературы
ПРИЛОЖЕНИЯ
Введение
Одним из важных аспектов при реализации проектов внедрения информационных систем является управление требованиями Заказчика.
Наличие понятного и хорошо спланированного подхода к управлению требованиями гарантирует минимизацию рисков совершения ошибок во время исполнения проекта, способствует расстановке приоритетов и формированию четко определенного плана осуществления проекта. Недостаточно серьезное отношение к вопросу управления требованиями, в свою очередь, создает риски возникновения барьеров на пути исполнения проектов и грозит превышением объема финансирования, срывов обозначенных сроков и даже отменой проекта без получения итогового, удовлетворяющего первоначальным требованиями результата.
Правильно сформированный набор требований - это своего рода «залог» достижения поставленных перед проектом целей. Для основной доли систем объем требований может быть достаточно значительным, более того, следует отметить, что в ходе реализации проекта требования чаще всего подвергаются изменениям [1].
К наиболее явным причинам сложности задачи управления требованиями [2, 4, 5, 6] можно отнести:
· значительное количество потенциальных заинтересованных сторон в проекте, требования которых следует выявлять и фиксировать;
· широкий диапазон типов требований, при этом, каждое из них требует особого описания, наличия собственных атрибутов, своей степени проработки;
· потребность формирования и поддержания сложной иерархической структуры требований;
· необходимость в трассировке требований, установлении связей между ними;
· требования подвергаются изменениям в ходе реализации проекта, что часто происходит в связи с изменением внешнего окружения, требованиями бизнеса.
Типичными причинами срыва сроков и бюджета проектов, как правило, являются [5, 7, 8]:
· плохо сформулированные требования;
· не все требования были выявлены;
· сложности в отслеживании изменений требований.
Широко распространены ситуации, в которых устранение ошибок требований представляет собой достаточно амбициозную задачу, требующих немалых временных и финансовых усилий. Устранение ошибки в требованиях на стадии сопровождения готового программного продукта обходится, как правило, в среднем в 200 раз дороже, нежели на этапе формирования спецификации требований. Это значение можно сравнить со стоимостью ошибки в требованиях, выявляемой на поздних фазах проекта - такая ошибка, как правило, приводит к 30-40% превышению бюджета проекта [9].
С учетом сказанного трудно не согласиться с утверждением о том, что актуальность задачи управления требованиями является очевидной и важной задачей в реалиях сегодняшнего дня, задачей, которая должна быть на виду у любой организации, осуществляющей разработку программного обеспечения (ПО).
С подобными проблемами сталкивается и рассмотренная в данной работе ИТ-компания, занимающаяся разработкой заказного программного обеспечения. Не основательно проработанные процессы управления требованиями являются основной проблемой компании. Превышение бюджета проекта, срыв сроков, общая неудовлетворенность Заказчика результатами проведенной работы - всё это можно отнести к очевидным следствиям некачественной, проще говоря, неэффективной организации процессов управления требованиями.
Вопросы формирования, документирования, анализа, управления требованиями были изучены и проанализированы в работах отечественных и зарубежных авторов. Среди них следует отметить труды таких авторов, как: Вигерс К., Коберн А., Халл Э., Леффингуэлл Д., Мацяшек Л., Орлик С., Уидриг Д., Меняев М.Ф., Булуй Ю., Липаев В.В. Так, книга Вигерс К. «Подходы к управлению требованиями» посвящена разработке качественных требований к программному продукту. В ней представлен ряд методов формирования, проверки, анализа, тестирования требований к программному обеспечению. В работе Халл Э. «Подходы к управлению требованиями» рассмотрен процесс разработки и управления требованиями.
На текущий момент существует значительное количество нормативных документов, регламентирующих работу с требованиями к программному продукту. Среди них стоит отметить разработки IEEE: IEEE 1233 «Guide for Developing System Requirements Specifications», IEEE Guide to the Software Engineering Body of Knowledge - SWEBOK, «IEEE Recommended Practice for Software Requirements Specifications». Кроме этого нельзя не упомянуть отечественные стандарты, включая: ГОСТ 34.601-90. Информационная технология. Автоматизированные системы. Стадии создания, ГОСТ 19.201-78. Единая система программной документации. Техническое задание. Требования к содержанию и оформлению, ГОСТ 34.602-89. Информационная технология. Техническое задание на создание автоматизированной системы. Вопросы работы с требованиями затронуты в следующих методологиях: Requirements Engineering Body Of Knowledge (REBOK), Rational Unified Process (RUP), Microsoft Solutions Framework (MSF), Project Management Body of Knowledge (PMBoK), Agile software development [10].
Тем не менее, управление требованиями продолжает оставаться заметной причиной неудач внушительного количества проектов внедрения информационных систем. Согласно информации исследования Института по Управлению Проектами (PMI) в 47% причиной провала проектов является плохое управление требованиями.
В качестве объекта исследования настоящей работы выступает ИТ-компания, которая занимается созданием программного обеспечения на заказ. Если говорить о предмете исследования, то в данном случае его роль играет оценка и повышение качества процессов управления требованиями в проектах создания программного обеспечения на заказ.
Цель представленной работы - оценка эффективности процессов управления требованиями для проектов разработки заказного программного обеспечения и разработка рекомендаций по их улучшению.
Набор задач, который был сформирован для достижения обозначенной цели, включает в себя:
· Определение критериев для сравнения методик управления требованиями;
· Сравнительный анализ методик управления требованиями по выбранным критериям и выбор наиболее подходящей методики для проектов заказной разработки программного обеспечения;
· Описание структуры проектов заказной разработки программного обеспечения и выделение процессов управления требованиями в компании;
· Разработка показателей эффективности для выделенных процессов управления требованиями;
· Оценка проектов компании по разработанным показателям;
· Формирование рекомендаций по повышению качества процессов управления требований в компании.
Гипотезой исследования настоящей магистерской диссертации является предположение о том, что существует такие процессы управления требованиями для проектов создания программного обеспечения на заказ, которые представляются наиболее подходящими такого вида проектам.
Основу теоретической базы исследования формируют концепции работы с требованиями, проанализированные в работах российских и зарубежных авторов, а также принципы процесса управления требованиями, рассмотренные в широко известных стандартах, методологиях, нормативных документах.
В исследовании использованы такие общенаучные методы, как: анализ, метод анализа иерархий, методы дедукции и индукции, сравнение.
Научная новизна работы заключается в рекомендациях для организации процессов управления требованиями Заказчика в проектах заказной разработки программного обеспечения, которые будут способствовать обеспечению успешной реализации проектов и удовлетворенности Заказчика итоговым продуктом.
Практический результат представленной работы заключается в рекомендациях по повышению эффективности процессов управления требованиями в проектах разработки программного обеспечения на заказ. Сформированный набор критериев, обеспечивающий выбор методики управления требованиями вполне возможно применять в процессе сравнения других альтернатив. Разработанный набор показателей эффективности процессов управления требованиями может использоваться в других компаниях такого профиля с аналогичным набором процессов.
Работа включает в себя три главы. Первая глава дает описание процессов управления требованиями в шести различных методиках, осуществляется выбор критериев для сравнения методик и выбор наиболее подходящей методики для проектов заказной разработки программного обеспечения.
Вторая глава представляет описание профиля компании, которая занимается созданием программного обеспечения на заказ. В данной главе содержится описание структуры проектов компании, существующие процессы, наличие связей с управлением требованиями. Разработан набор показателей, характеризующий эффективность процессов.
В третьей главе приводится оценка проектов компании по разработанным во второй главе показателям эффективности. Также, данная глава содержит выводы по результатам оценки и рекомендации по повышению качества управления требованиями в компании.
Итоговым результатом работы является оценка процессов управления требованиями в ИТ-компании, занимающейся разработкой заказного программного обеспечения и разработка рекомендаций по повышению качества этих процессов.
Ключевые слова
Требования к программному продукту, управление требованиями, управление
изменениями, управление проектом, методика, методология, свод знаний, лучшие
практики, REBOK, PMBOK, RUP, ITIL, BABOK, SWEBOK,
заказное программное обеспечение, метод анализа иерархий, показатель
эффективности, принцип SMART
1. Сравнительный анализ методик управления требованиями
Работа с требованиями в своде знаний REBOK (Requirements Engineering Body Of Knowledge) представлена в двух процессах: Формирование требований (Requirements Development) и Управление требованиями (Requirement Management).
В процессе Формирования требований можно выделить следующие этапы:
· Выявление требований (Requirements Elicitation). Основные цели: определение всех потребных характеристик, функций будущего программного продукта, детализация требований и подробное описание функций системы.
· Анализ требований (Requirements Analysis). Основные моменты данного этапа: определение и разрешение конфликтов в требованиях, обозначение границ проекта, преобразование пожеланий Заказчика в программные и системные требования.
· Спецификация требований (Requirements Specification). Спецификации содержат такую информацию: пользовательские требования, ограничения проекта, критерии приемки результатов проекта.
· Моделирование (Solution and System Modeling). Базовыми являются такие модели: концептуальная модель, модель решения, модель требований.
· Утверждение и проверка требований (Requirements Validation and Verification). Данные активности должны быть запланированы в начале проекта. Следует выполнять проверку документации требований на соответствие стандартов, а также утверждать разработанные модели на этапах анализа и спецификации [11].
Процесс формирования требований представлен на рисунке 1.
Рисунок 1 - Процесс формирования требований (Process for Requirements Development)
Процесс управления требованиями согласно REBOK состоит из следующих этапов:
· Отслеживание требований (Tracking of Requirements). Данный этап помогает проверить все ли важные цели процесса разработки выполнены;
· Управление изменениями (Change Management). Управление изменениями включает в себя следующие процедуры:
o Идентификация потенциальных изменений;
o Регистрация запроса на изменения;
o Анализ запросов на изменения;
o Оценка изменений;
o Планирование выполнения изменений;
o Реализация изменений;
o Обзор и закрытие изменений.
· Обеспечение качества (Quality Assurance). Основные функции этого этапа:
o Организация системы управления качеством, проведение обучения специалистов;
o Проведение аудита и последующих корректирующих действий;
o Оценка и анализ инжиниринга требований;
o Совершенствование процесса инжиниринга требований.
В своде знаний по управлению проектами PMBOK подход к требованиям описан в главе «Общее управление изменениями» [12]. Согласно PMBOK общее управление изменениями включает в себя следующие операции:
· Идентификация изменений;
· Рассмотрение и утверждение изменений;
· Управление изменениями;
· Поддержка целостности базовых планов, а также поддержка их конфигурации и плановой документации;
· Проверка и одобрение корректирующих и предупреждающих действий;
· Контроль и обновление содержания, стоимости, бюджета, расписания проекта и требований к качеству;
· Документирование выполненных изменений;
· Санкционирование исправлений дефектов;
· Контроль качества проекта по стандартам.
Общий вид процесса управления изменениями согласно PMBOK представлен на рисунке 2.
Рисунок 2 - Общее управление изменениями (входы, выходы, процессы)
Согласно RUP (Rational Unified Process), управление требованиями - это систематический подход к выявлению, организации и документированию требований к системе, а также установка и поддержание соглашения между клиентом и группой разработки по поводу изменений требований к системе [13].
В состав действий по управлению требованиями включаются:
· Формирование плана управления требованиями. Данный план описывает общие подходы к управлению требованиями в проекте: как собираются требования, как отслеживаются изменения и т.д.;
· Сбор требований;
· Разработка документов концепции (Vision);
· Создание сценариев использования (Use Cases). Сценарии использования - это форма для описания функциональных требований, представляет собой описание системы в терминах последовательности действий. Сценарии использования: