Классификация методологий, моделей и стандартов управления разработкой ПО
Выбор проектных методологий, моделей ЖЦ ПО, метрик проектов и других инструментальных средств управления ПО представляет собой достаточно сложную задачу для компаний-разработчиков ПО и проектных команд. На практике они рассматривают их ограниченный набор, подходят к решению проблемы выбора без учета специфики компании и проекта. Полезным инструментом для решения задачи выбора является классификация. В статье представлена классификация методов, моделей и стандартов управления разработкой ПО, в основе которой их содержание и область применения. Зачем нужны методологии? Подходы к выбору методологий, моделей и стандартов зависят от предполагаемой цели использования. Удалось определить следующие основные способы использования:
Выбор методологий. Менеджмент и участники проектных команд должны сформировать единое понимание в отношении целей и методов управления ИТ-проектами и ИТ-компанией. Решение проблемы выбора требует двух типов компетенций:
Классификации. Полезным инструментом для решения задачи выбора является классификация. Для создания классификации методов, моделей и стандартов определены различные признаки группировки и выделены группы по этим признакам. По характеру обоснования рекомендаций: концептуальные и эмпирические. Концептуальные модели получены рационально-логическим методом, а эмпирические - чувственно-опытным. В основе концептуальных инструментальных средств лежат концепции теории менеджмента, такие как процессное управление и ре-инжиниринг бизнес-процессов, управление проектами, управление качеством. Универсальные концепции адаптируются к особенностям управления разработкой ПО, которую отличают проектный характер деятельности, технологическая гибкость процесса разработки, неопределенность требований в отношении ожидаемого результата и высокие риски. Примером концептуальной модели является модель зрелости технологических процессов SEI (Capability Maturity Model, CMM). Концептуальной является методология PRINCE и рациональный унифицированный процесс (Rational Unified Process, RUP). Эмпирические методологии разработаны на основе теоретического обобщения успешных практик ИТ-проектов. Примерами эмпирической модели служат SCRUM, XP, Crystal. В зависимости от назначения: модели зрелости и процессные модели, проектные методологии и индивидуальные и групповые практики. Модель зрелости CMMI, модель оценки процессов SPICE и стандарт ISO 9000 используются для управления ИТ-компанией (подразделением). Проектные методологии: MSF, SCRUM, XP, используются для управления ИТ-проектами разработки ПО. Методологии внедрения информационных систем используются для организации проекта внедрения. Командные и индивидуальные практики (PSP, Personal Software process; TSP, Team Software process) служат для непрерывного повышения эффективности работы команд и индивидуальных разработчиков. В зависимости от условий реализации проекта: прогнозируемые и адаптивные. Прогнозируемые методологии основываются на предпосылке о возможности и целесообразности детального планирования будущего. Для ИТ-проекта формулируются требования к разрабатываемой системе, формируется план проекта и определяется потребность в ресурсах. Изменения в плане проекта и требованиях считаются нежелательными. Проектные методологии этого класса используют каскадную модель жизненного цикла. Адаптивные методологии нацелены на преодоление ожидаемой неполноты требований и их постоянного изменения. В основе адаптивных методологий лежит итерационная модель жизненного цикла. Примером адаптивных методологий являются Scrum, Crystal, Extreme Programming. Адаптивные методологии учитывают психологические особенности процесса разработки ПО. Одним из значимых факторов успеха использования адаптивных методологий является высокая квалификация специалистов, в первую очередь - разработчиков. По характеру знаний и фокусу: инженерные, управленческие и интегрированные. Инженерные инструменты (software engineering) основываются на технологических принципах и направлены на совершенствование конечных продуктов, таких как программный код, тестовые примеры, прототипы, документация. Инженерные инструментальные необходимы квалифицированному разработчику. Управленческие инструментальные средства (software project management and process management) основываются на принципах теории управления (менеджмента), в их основе лежат такие концепции, как тотальное управление качеством, управление проектами, управление знаниями. Интегрированные инструментальные средства объединяют инженерные концепции и концепции управления. Проектные методологии находятся в центре теории управления разработкой ПО, поэтому для них можно предложить расширенный набор групп на основе различных характеристик проекта. В зависимости от проектных рисков (предложено А. Коберном). В зависимости от характера потерь в случае неудовлетворительной работы ПО выделяются проекты с различными видами рисков:
В зависимости от технологии проекта (для проектных методологий): универсальные, структурные, объектные и метрологии для сервисно-ориентированной архитектуры (SOA). На Рис. 1. представлена предлагаемая нами классификация инструментальных средств управления разработкой ПО. В центр классификации помещены две группы методологий: методологии управления разработкой ПО и методологии внедрения информационных систем (ИС). Методологии содержат рекомендации по использованию отдельных инструментов: метрик, технических стандартов, языков графического моделирования. Методологии включают в себя описание рекомендуемой модели жизненного цикла разработки (внедрения) ПО, модель команды проекта и ролей, а также используемых методик, техник. В зависимости от лежащей в основе методологии управления проектом разработки ПО модели жизненного цикла, проектные методологии варьируют от классической каскадной до итеративных методологий. Методологий внедрения информационных систем представляют собой набор методологий, разработанных специально для внедрения той или иной информационной системы. В некоторых случая для одной системы может существовать несколько альтернативных методологий внедрения. Методологии управления ИТ-проектами формируются на основе теории управления проектами. Модели управления ИТ-компаниями опираются на концепции тотального управления качеством и процессного управления. В левой части классификации представлены универсальные концепции менеджмента: всеобщее управление качеством (TQM), процессное управление и реинжиниринг безнес-процессов (BPR) и управление проектами (PM), а также различные вычислительные техники. Самостоятельную группу образуют управленческие стандарты, среди которых наиболее известен стандарт ISO 9000. Универсальные концепции менеджмента аккумулируют опыт и лучшие управленческие практики, которые стали основой методологий совершенствования деятельности компаний-разработчиков, таких как модели зрелости (CMM/CMMI), стандарты оценки и улучшения процессов (SPICE), и TickIT. Эти модели и стандарты регламентируют организационно-управленческую и технологическую среду, в условиях которой применяются проектные методологии. Самостоятельный кластер представляют собой индивидуальные техники, среди которых выделяется собственный процесс разработки (PSP). В основе индивидуальных техник также лежат концепции управления. Вычислительные техники представляют собой алгоритмы оценки, анализа и оптимизации, используемые в управлении компанией и отдельными проектами. В правой части представлены метрики и языки моделирования. Метрики служат для получения фактических и плановых количественных оценок для процессов, проектов и продуктов. Использование метрик является косвенным признаком применения концепций управления качеством в разработке ПО и зрелости организации процессов разработки. Языки графического моделирования используются для создания понятных и согласованных требований и проектных решений. Универсальный язык моделирования (UML) позволяет однозначно транслировать графические нотации в проектный код, а также порождать графические описания на основе программного кода. Развитие графических нотаций, как составной части автоматизированного проектирования, оказывает влияние на проектные методологии. В управлении проектами разработки ПО существует набор стандартных (типовых) задач, которые могут решаться одинаково, вне зависимости от технических и организационных особенностей проекта и выбранной для него методологии. Для решения этих задач предназначены методики. Методика служат для решения одной задачи и включают в себя описание области применения, алгоритмы использования, описание необходимых исходных данных. Методики могут предусматривать использование определенных метрик, языков моделирования и стандартов. Методики содержат полные рекомендации по решению отдельных проектных задач, таких как управление рисками, или оценка трудоемкости проекта. Примерами методик служат SEI Risk Evaluation Method или COCOMO. В нижней части классификации представлены группы стандартов, регламентирующих различные аспекты разработки ПО. Стандарты разрабатываются международными и государственными организациями по стандартизации, отраслевыми комитетами, исследовательскими институтами, крупными компаниями, такие как ISO (International Organization for Standardization), SEI (Software Engineering Institute), DoD (Department of Defense USA), IEEE (Институт Электронной и Электротехнической Инженерии, Institute of Electrical and Electronics Engineers), МЭК (Международная Электротехническая комиссия), а так ИТ-компании: Bell, Hewlett Packard, Sun Microsystems, IBA, Oracle, Microsoft и др. Стандарты, регламентирующие требования к процессам разработки и выходным продуктам, дополняют методологии управления разработкой ПО. Объектами стандартизации в сфере ИТ являются:
Модели и стандарты, регламентирующие процессы и жизненный цикл, лежат в основе системы менеджмента качества компании, используются при разработке проектных планов. Методологии. В результате анализ методологий управления разработкой ПО были выявлены две группы методологий, которые отличаются целью их использования, историей создания и назначением. Первая группа представляет собой методологии, целью которых является успешное выполнение отдельного проекта. К этой группе относится большинство проектных методологий, и практически все адаптивные методологии. Логика успешного функционирования организации выглядит как рост компетенций, создание технических активов за счет последовательного выполнения успешных проектов. Вторая группа включает в себя методологии, обеспечивающие устойчивое функционирование компании-разработчика ПО, нацелены на последовательное развитие компетенций. К этой группе относятся модели зрелости (CMM, CMMI). Логика успешного функционирования предполагает создание, контроль и непрерывное улучшение способностей организации к выполнению проектов, и, как следствие, успешное выполнение проектов. Две выделенные группы отличаются не только целью использования, но и историей создания и развития, а также практикой использования. Проектные методологии представляют собой ядро теории управления разработкой ПО. К существующей классификации в зависимости от используемой в ней модели жизненного цикла (водопадные (каскадные) и итерационные методологии) добавилась более общая классификация на прогнозируемы и адаптивные методологии. К адаптивным относятся все методологии, которые удовлетворяют требованиям, сформулированным в Манифесте адаптивной разработки. Прогнозируемые (предикативные) методологии фокусируются на детальном планировании будущего. Известны запланированные задачи и ресурсы на весь срок проекта. Команда с трудом реагирует на возможные изменения. План оптимизирован исходя из состава работ и существующих требований. Изменение требований может привести к существенному изменению плана, а также дизайна проекта. Часто создается специальный комитет по «управлению изменениями» (change control board) чтобы в проекте учитывались только самые важные требования (ГОСТ 19, 32). Адаптивные методологии нацелены на преодоление ожидаемой неполноты требований и их постоянного изменения. Когда меняются требования, команда разработчиков тоже меняется. Команда, участвующая в адаптивной разработке, с трудом может предсказать будущее проекта. Существует точный план лишь на ближайшее время. Более удаленные во времени планы существуют лишь как декларации о целях проекта, ожидаемых затратах и результатах. Среди адаптивных методологий: (Scrum, Crystal, Extreme Programming, Adaptive Software Development, DSDM, Feature Driven Development, Lean software development). Предлагаемая классификация структурирует дальнейшую работу по определению подходов к выбору методов моделей и стандартов в следующих направлениях:
Анализ должен подтвердить или опровергнуть следующие гипотезы:
В основе каждой методологии лежит набор «принципов», которые могут быть истинными или ложными для проекта и (или) организации.
Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=6373 |