Обычно безуспешными являются попытки организации реализовать управляемый процесс (уровень 4) до внедрения определенного процесса, поскольку определенные процессы формируют общую основу для интерпретации измерений. Хотя сбор данных может вестись для отдельных проектов, лишь немногие измерения оказываются значимыми для всех проектов и они не могут существенно повлиять на понимание производственного процесса в рамках организации. В отсутствие определенных процессов сложно идентифицировать значимые измерения из-за отклонений в измеряемых процессах.
   Успешное внедрение оптимизирующего процесса (уровень 5) без наличия управляемого процесса (уровень 4) также маловероятно из-за недостаточного понимания влияния, вносимого изменениями процессов.
   Без контролирования процесса в узких статистических границах (т. е. с малыми отклонениями количественных показателей процесса), его данные содержат слишком много шума, чтобы можно было объективно определить эффект, производимый конкретным усовершенствованием процесса. Принятие решений может вылиться в религиозные войны, поскольку для рациональных и обоснованных решений недостаточно количественной информации.
   Работа по усовершенствованию процесса должна быть нацелена прежде всего на нужды организации в контексте ее бизнес-среды. Возможность реализовать процессы более высоких уровней вовсе не означает, что организация может перейти на произвольный уровень зрелости.

ГЛАВА 3. РАБОЧЕЕ ОПРЕДЕЛЕНИЕ МОДЕЛИ ЗРЕЛОСТИ ПРОЦЕССОВ РАЗРАБОТКИ ПО

   Модель СММ является структурой, представляющей последовательность усовершенствований, которые рекомендуются для организаций-разработчиков, желающих повысить продуктивность своего производственного процесса. Это рабочее определение СММ предназначено для поддержки разнообразных способов использования этой модели. В нем учитываются, по крайней мере, четыре способа использования СММ:
   Группы внутренней оценки могут использовать СММ для выявления сильных и слабых сторон своей организации.
   Группы внешней оценки могут использовать СММ для выявления рисков, связанных с выбором различных подрядчиков, и отслеживания выполнения договоров.
   Менеджеры и технические сотрудники с помощью СММ могут изучить действия по планированию и реализации программы усовершенствования производственного процесса своей организации.
   Группы, связанные с усовершенствованием процесса (например, группа инженерии производственного процесса), могут использовать СММ в качестве руководства по определению и усовершенствованию производственного процесса организации.
   Из-за разнообразия способов своего использования модель СММ должна быть разбита на части, позволяющие вывести рекомендации для конкретного процесса, исходя из структуры уровней зрелости. Такое разбиение также обозначает процессы и их структуру, характеризующие зрелость производственного процесса и его продуктивность.

3.1. Внутренняя структура описания уровней зрелости

   Каждое описание уровней зрелости разбивается на составные части. Разбиение каждого уровня зрелости, кроме первого, варьируется от кратких обзоров уровня до его рабочего определения в ключевых практиках, как показано на рис. 3.1. Описание каждого уровня зрелости состоит из нескольких групп ключевых процессов. Каждая группа ключевых процессов разбита на пять разделов. В разделах приводятся ключевые практики, при совместном выполнении которых достигаются цели группы ключевых процессов.
 
 
   Рис. 3.1. Структура CMM

3.2. Уровни зрелости

   Уровень зрелости представляет собой четко определенную стадию эволюции организации на пути к зрелому производственному процессу, соответствует уровню продуктивности производственного процесса, как это проиллюстрировано на рис. 2.1. Например, при переходе на уровень 2 характер производственного процесса меняется с уникального на упорядоченный, благодаря созданию слаженной системы средств управления проектом.

3.3. Группы ключевых процессов

   Каждый уровень зрелости, кроме первого, состоит из нескольких групп ключевых процессов, указывающих на области концентрации усилий по совершенствованию производственного процесса организации. Группы ключевых процессов определяют круг проблем, которые необходимо решить для достижения следующего уровня зрелости.
   Каждая группа ключевых процессов определяет блок связанных работ, после выполнения которых достигается совокупность целей, значимых для повышения продуктивности производственного процесса. Группы ключевых процессов определяются таким образом, что они целиком входят в один уровень зрелости, как показано на рис. 3.2. Способ достижения целей группы ключевых процессов может различаться от проекта к проекту в зависимости от различий в предметной области или среде, однако все эти цели являются обязательными для организации. После того, как эти цели будут реализованы на постоянной основе для всех проектов, можно будет сказать, что организация установила уровень продуктивности своего производственного процесса, характеризующийся данной группой ключевых процессов.
   Прилагательное «ключевые» подразумевает, что существуют процессы и группы процессов, которые не являются ключевыми для достижения уровня зрелости. Модель СММ не описывает подробно все группы процессов, касающиеся разработки и сопровождения ПО. В ней описаны лишь те группы, которые определены в качестве ключевых определяющих факторов продуктивности производственного процесса.
   Хотя производительность процесса зависит от многих факторов, группы ключевых процессов выделяются по своей эффективности в повышении продуктивности производственного процесса организации. Их можно рассматривать, как требования для достижения уровня зрелости. На рис. 3.2 показаны группы ключевых процессов для каждого уровня. Для достижения определенного уровня зрелости необходимо реализовать соответствующие группы ключевых процессов, для чего, в свою очередь, требуется достижение всех целей соответствующих групп. Цели подытоживают ключевые практики группы и могут служить критерием эффективной реализации группы ключевых процессов в организации. Они выражают объем, границы и смысл каждой группы ключевых процессов (Список целей каждой группы ключевых процессов приводится в Приложении).
 
 
   Рис. 3.2. Распределение групп ключевых процессов по уровням зрелости
   Конкретные практики, подлежащие выполнению в каждой группе ключевых процессов, эволюционируют по мере достижения организацией более высоких уровней зрелости. Например, многие средства оценки проекта, описанные в группе ключевых процессов «Планирование проекта» на уровне 2, должны быть модернизированы для обработки дополнительных данных по проекту, доступных на уровнях 3–5. «Интегрированное управление разработкой ПО» на уровне 3 является развитием групп «Планирование проекта» и «Отслеживание хода проекта и контроль над ним» уровня 2, поскольку управление проектом осуществляется с использованием определенного производственного процесса.
   Группы ключевых процессов модели СММ представляют единый способ описания развития организаций. Эти группы были определены на основании многолетнего опыта управления разработкой ПО, а также пятилетнего опыта в проведении внутренних и внешних оценок производственного процесса.
   Группы ключевых процессов уровня 2 связаны в основном с вопросами создания основных средств управления проектом. Ниже приводятся описания всех групп ключевых процессов уровня 2.
   Цель группы ключевых процессов «Управление требованиями» — согласование требований, выдвигаемых к проекту разработки ПО заказчиком и разработчиком. Это соглашение с заказчиком является основой для планирования (группа ключевых процессов «Планирование проекта») проекта разработки и управления им (группа «Отслеживание хода проекта и контроль над ним»). Контроль над взаимоотношениями с заказчиком зависит от эффективности последующего процесса управления изменениями (группа «Управление конфигурацией ПО»).
   Цель группы ключевых процессов «Планирование проекта» — создание обоснованных планов разработки ПО и управления выполнением проекта разработки. Эти планы формируют необходимую основу для управления проектом (группа «Отслеживание хода проекта и контроль над ним»). Без реалистичных планов невозможно эффективно управлять проектом.
   Цель группы ключевых процессов «Отслеживание хода проекта и контроль над ним» — обеспечение адекватного обзора фактического выполнения проекта, позволяя руководству предпринимать эффективные меры при значительном отклонении хода проекта от планов разработки.
   Цель группы ключевых процессов «Управление производственным субподрядом» — выбор квалифицированных производственных субподрядчиков и эффективное управление ими. Она объединяет аспекты групп «Управление требованиями», «Планирование проекта» и «Отслеживание хода проекта и контроль над ним», касающиеся создания основного инструмента управления, описывает необходимую координацию с процессами из групп «Обеспечение качества ПО» и «Управление конфигурацией ПО» и применяет этот инструмент по отношению к субподрядчику.
   Цель группы ключевых процессов «Обеспечение качества ПО» заключается в том, чтобы дать руководству адекватное представление о ходе процесса разработки и о создаваемых продуктах. Обеспечение качества ПО является неотъемлемой частью большинства процессов, связанных с инженерией разработки и управлением ею.
   Цель группы ключевых процессов «Управление конфигурацией ПО» — обеспечение целостности продуктов проекта разработки ПО в течение всего жизненного цикла проекта. Управление конфигурацией ПО является неотъемлемой частью большинства процессов, связанных с инженерией разработки и управлением ею.
   Группы ключевых процессов уровня 3 связаны с вопросами, касающимися как отдельного проекта, так и организации в целом, поскольку организация внедряет инфраструктуру, устанавливающую эффективные процессы разработки ПО и управления для всех проектов. Ниже приводятся описания всех групп ключевых процессов уровня 3.
   Цель группы ключевых процессов «Координация производственного процесса организации» — установление организационной сферы ответственности за выполнение мероприятий, совершенствующих общие производственные возможности организации. Основным результатом работ этой группы является набор основных средств производственного процесса, описанных в группе ключевых процессов «Определение производственного процесса организации». Эти основные средства затем используются в проектах разработки (группа «Интегрированное управление разработкой ПО»).
   Цель группы ключевых процессов «Определение производственного процесса организации» — разработка и поддержка практичного набора основных средств производственных процессов, которые улучшают показатели выполнения процессов в различных проектах и в итоге дают организации долгосрочные экономические преимущества. Эти основные средства обеспечивают стабильный фундамент разработки, который внедряется с помощью таких механизмов, как обучение (группа «Программа обучения»).
   Цель группы ключевых процессов «Программа обучения» — рост квалификации и знаний сотрудников, позволяющий им выполнять свои роли более рационально и эффективно. Обучение входит в корпоративную сферу ответственности, но для каждого проекта разработки следует определить его квалификационные потребности и обеспечить необходимое обучение в тех случаях, когда эти потребности уникальны.
   Цель группы ключевых процессов «Интегрированное управление разработкой ПО» — интеграция операций разработки и управления в последовательный и определенный производственный процесс, полученный путем адаптации СППО и связанных с ним основных средств, описанных в группе «Определение производственного процесса организации». Эта адаптация основывается на бизнес-среде и технических потребностях проекта (группа «Инженерия разработки программного продукта»). Группа ключевых процессов «Интегрированное управление разработкой ПО» является развитием групп второго уровня «Планирование проекта» и «Отслеживание хода проекта и контроль над ним».
   Цель группы ключевых процессов «Инженерия разработки программного продукта» — последовательное выполнение четко определенного процесса, интегрирующего все операции разработки в целях рационального и эффективного создания качественных и надежных программных продуктов. В этой группе описываются технические работы проекта, такие как анализ требований, проектирование, кодирование и тестирование.
   Цель группы ключевых процессов «Межгрупповая координация» — установление средств активного взаимодействия разработчиков с другими инженерными группами в целях более эффективного и рационального удовлетворения потребностей заказчика. Межгрупповая координация представляет собой междисциплинарный аспект интегрированного управления разработкой ПО, распространяющийся за пределы инженерии разработки. Интеграции подлежит не только процесс разработки — взаимодействия разработчиков с другими группами также должны координироваться и контролироваться.
   Цель группы ключевых процессов «Экспертные оценки» — эффективное устранение дефектов в промежуточных программных продуктах на ранних стадиях разработки. Важным следствием этого является улучшение понимания промежуточных программных продуктов и дефектов, которые могут быть предотвращены. Экспертная оценка является важным и эффективным инженерным методом, который используется в инженерии разработки в виде инспекций программ по методу Фагана [Fagan 86], структурированных технических разборов или различных других методов коллегиальных проверок [Freedman 90].
   Группы ключевых процессов уровня 4 нацелены на установление количественного понимания производственного процесса и создаваемых промежуточных программных продуктов. Как показано ниже, группы ключевых процессов этого уровня «Количественное управление процессом» и «Управление качеством ПО» являются в высшей степени взаимозависимыми.
   Цель группы ключевых процессов «Количественное управление процессом» — установление количественного контроля над производительностью процесса проекта разработки. Производительность отражает реальные результаты, достигаемые при выполнении производственного процесса. Работы этой группы концентрируются на выявлении особых причин отклонений внутри стабильного (в целом) процесса и, по мере необходимости, коррекции ситуаций, ведущих к возникновению этих временных отклонений. Количественное управление процессом добавляет детализированную программу измерений к практикам групп «Определение производственного процесса организации», «Интегрированное управление разработкой ПО», «Межгрупповая координация» и «Экспертные оценки».
   Цель группы ключевых процессов «Управление качеством ПО» — развитие количественного понимания качества программных продуктов проекта и достижение определенных показателей качества. Управление качеством ПО подвергает тщательным измерениям промежуточные программные продукты, описанные в группе «Инженерия разработки программного продукта».
   Группы ключевых процессов уровня 5 охватывают вопросы, решаемые как организацией, так и отдельными проектами при реализации непрерывного и измеряемого усовершенствования производственного процесса. Ниже приводятся описания всех групп ключевых процессов уровня 5.
   Цель группы ключевых процессов «Предотвращение дефектов» — выявление причин дефектов и предотвращение их повторного появления. В ходе проекта разработки проводится анализ обнаруженных дефектов, определяются их причины и вносятся соответствующие изменения в производственный процесс проекта (группа «Интегрированное управление разработкой ПО»). Изменения процесса, имеющие общий характер, переносятся на другие проекты разработки (группа «Управление изменениями процесса»).
   Цель группы ключевых процессов «Управление технологическими изменениями» — выявление новых полезных технологий (т. е. инструментов, методов и процессов) и их организованного внедрения в организации (группа «Управление изменениями процесса»). Управление технологическими изменениями нацелено на эффективное внедрение новшеств в условиях постоянно меняющейся среды.
   Цель группы ключевых процессов «Управление изменениями процесса» — непрерывное усовершенствование производственных процессов, используемых в организации, с целью улучшения качества производимого ПО, повышения производительности и сокращения цикла разработки продукта. Эта группа процессов использует последовательные усовершенствования и новшества, вносимые в рамках групп «Предотвращение дефектов» и «Управление технологическими изменениями», и распространяет их на всю организацию.

3.4. Разделы

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

Обязательства по выполнению

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

Необходимые предпосылки

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

Выполняемые операции

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

Измерения и анализ

   Раздел «Измерения и анализ» описывает, что необходимо для измерения процесса и анализа результатов измерений. В этом разделе обычно приводятся примеры измерений, с помощью которых можно определить статус и эффективность выполняемых операций.

Проверка внедрения

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

3.5. Ключевые практики

   Каждая группа ключевых процессов выражается ключевыми практиками, выполнение которых способствует достижению целей группы. Ключевые практики описывают инфраструктуру и операции, которые дают наибольший вклад в эффективное внедрение и установление группы ключевых процессов.
   Каждая ключевая практика состоит из одного предложения, часто раскрываемое более подробным описанием, в которое могут входить примеры и уточнения. Ключевые практики, иногда называемые ключевыми практиками верхнего уровня, устанавливают основные политики, процедуры и операции для группы ключевых процессов. Компоненты подробного описания часто называются подпрактиками. На рис. 3.3 приводится пример структуры, в которую входит ключевая практика из группы ключевых процессов «Планирование проекта».
   Как показано на рис. 3.3, чтобы обеспечить последовательную реализацию цели, заключающейся в документировании оценок для планирования и отслеживания проекта, организация должна установить документированную процедуру получения оценок объема ПО. Если эти оценки выводятся не на основании документированной процедуры, их разброс может быть слишком велик, поскольку разницу в предположениях объема вряд ли удастся сгладить. Подробное описание ожидаемого содержания такой процедуры включает в себя использование статистических данных по объему, документирование предположений и рассмотрение оценок. Эти критерии позволяют судить о рациональности используемой процедуры оценки объема.
   Ключевые практики описывают, «что» необходимо сделать, но их не следует воспринимать в виде догм, устанавливающих, «как» нужно достигать целей. Цели группы ключевых процессов можно реализовать с помощью альтернативных практик. Интерпретация ключевых практик должна быть разумной, допускающей достижение целей группы ключевых процессов эффективным, хотя, возможно, и отличающимся способом. Ключевые практики вместе с рекомендациями по их интерпретации содержатся в документе «Key Practices of the Capability Maturity Model, Version 1.1» («Ключевые практики модели зрелости процессов разработки, версия 1.1») [Paulk 93b], который входит во вторую часть данной книги.
 
 
   Рис. 3.3. Построение структуры CMM: пример ключевой практики

ГЛАВА 4. ИСПОЛЬЗОВАНИЕ СММ

   Модель СММ устанавливает набор общедоступных критериев, описывающих характеристики зрелых организаций-разработчиков. Эти критерии могут использоваться организациями для усовершенствования своих процессов разработки и сопровождения ПО, либо государственными или коммерческими организациями для оценки рисков, возникающих при заключении с какой-либо компанией договора о разработке ПО.
   Эта глава описывает два метода, разработанных институтом SEI для оценки зрелости производственного процесса организации-разработчика, — внутренней и внешней оценки производственного процесса.
   Внутренние оценки производственного процесса используются для определения состояния текущего производственного процесса организации, выявления приоритетных задач, связанных с производственным процессом, а также для получения организационной поддержки усовершенствования производственного процесса.
   Внешние оценки производственного процесса используются для выявления подрядчиков, достаточно квалифицированных для выполнения разработки, или же для отслеживания состояния производственного процесса, используемого в текущих проектах разработки.
   Этот обзор сам по себе недостаточен читателям для проведения внутренних или внешних оценок производственного процесса. Желающим применить модель СММ с использованием этих двух методов потребуется дополнительное обучение.
   СММ является общим основанием для проведения как внутренних, так и внешних оценок процесса. Однако цели и способы применения этих методов существенно отличаются друг от друга. Оба метода основаны на модели и продуктах, получаемых в рамках этой модели. Модель СММ в сочетании со своими продуктами обеспечивает надежное и последовательное применение этих методов.

4.1. Методы внутренней и внешней оценки производственного процесса

   Внутренние оценки нацелены на выявление приоритетных направлений усовершенствования производственного процесса организации. Группы внутренней оценки руководствуются СММ для выявления таких направлений и определения их приоритета. Полученные данные вместе с инструкциями из ключевых практик СММ используются (например, группой инженерии производственного процесса) для планирования стратегии усовершенствования организации.
   Внешние оценки производственного процесса нацелены на выявление рисков конкретного проекта или договора, связанных с разработкой качественного ПО в срок и в рамках бюджета. Такие оценки могут выполняться по отношению к подрядчикам в ходе процесса обеспечения поставок. Поскольку данные оценок структурированы моделью СММ, их можно использовать для определения рисков при выборе конкретного подрядчика. С помощью внешних оценок также можно отследить выполнение процессов для существующих договоров с целью выявления потенциальных усовершенствований производственного процесса подрядчика.
   СММ устанавливает общую структуру, на которую можно ссылаться при проведении как внутренних, так и внешних оценок производственного процесса. Хотя цели этих методов различны, оба они опираются на СММ при оценке зрелости производственного процесса. На рис. 4.1 приведено краткое описание общих шагов обоих методов.
   Первым шагом является выбор оценивающей группы. Эта группа должна пройти обучение фундаментальным концепциям СММ, а также специфическим особенностям метода внутренних либо внешних оценок производственного процесса. Члены группы должны обладать профессиональными знаниями в области инженерии и управления разработкой.