Марк Паулк - Модель зрелости процессов разработки программного обеспечения
Операции
Операция представляет собой любой шаг или функцию, чье мысленное или физическое выполнение имеет поставленную цель. Операции включают в себя всю работу руководителей и технического персонала по выполнению задач проекта и организации.
Промежуточные программные продукты (результаты проекта)
Результаты действий и задач обычно состоят из промежуточных продуктов разработки. Промежуточный продукт разработки представляет собой любой артефакт, созданный в результате определения, сопровождения или выполнения производственного процесса, включая его описания, планы, процедуры и компьютерные программы с соответствующей документацией, которые могут предназначаться или не предназначаться для поставки заказчику или конечному пользователю. Промежуточные продукты являются входной информацией для следующего шага процесса или предоставляют архивную информацию по проекту разработки для ее использования в будущих проектах.
Примеры промежуточных программных продуктов включают в себя планы, оценки, данные по фактической работе, документацию по корректирующим действиям и документы требований. Те из них, которые поставляются заказчику или конечному пользователю, носят название программных продуктов.
Программные продукты
Представляют собой полный набор (или любой из его элементов) компьютерных программ, процедур, соответствующей документации и данных, который предназначен для поставки заказчику или конечному пользователю [IEEESTD-610].
Все программные продукты являются также промежуточными продуктами разработки. Однако промежуточный продукт разработки, не предназначенный для поставки заказчику или конечному пользователю, не является программным продуктом.
7.3.4. Взаимосвязь между производственным процессом проекта и планом разработки ПО
Описание производственного процесса проекта бывает, как правило, недостаточно конкретным для непосредственного выполнения. Хотя описание обычно определяет такие понятия, как роли (т. е. исполнители задач) и необходимые для выполнения задачи виды промежуточных программных продуктов, оно не определяет ни конкретных исполнителей ролей, ни конкретные создаваемые промежуточные продукты, ни график выполнения задач и действий.
Проектный план разработки ПО (либо в виде отдельного документа, либо в виде совокупности планов, совместно называемых планом разработки ПО) связывает производственный процесс проекта (что и как должно быть сделано) с конкретным выполнением проекта (например, кто из сотрудников должен создать какой промежуточный программный продукт и по какому графику). Комбинация производственного процесса проекта и плана разработки ПО дает возможность действительного выполнения процесса.
7.3.5. Жизненные циклы и CMM
Ключевые практики не ограничивают выбор жизненного цикла ПО. Те пользователи, которые активно использовали какой-либо определенный жизненный цикл ПО, могут быть более склонны к восприятию элементов именно этого цикла в организации и структуре ключевых практик. Однако использование ключевых практик не подразумевает ни стимулирование, ни ограничение применения какого-либо конкретного жизненного цикла.
Термин «стадия» используется для определенной части проекта разработки, но не должен увязываться с каким-либо конкретным жизненным циклом ПО. В ключевых практиках этот термин может означать строго последовательные или перекрывающиеся и итеративные стадии.
7.3.6. Технология и CMM
Ключевые практики не ограничивают и не требуют применения конкретных технологий разработки ПО, таких как создание прототипов, объектно-ориентированное проектирование, или повторное использование требований к ПО, его архитектуры, кода или других элементов.
7.3.7. Документация и CMM
Ключевые практики описывают несколько документов, связанных с процессом, каждый из которых охватывает определенные области содержания. Ключевые практики не требуют соответствия «один к одному» между этими документами и реальными промежуточными продуктами организации или проекта. Также не подразумевается подобное соответствие и с документами, определенными военным ведомством, или такими стандартами, как DOD-STD-2167A или IEEE. Ключевые практики требуют лишь того, чтобы применимое содержание этих документов входило в документированные промежуточные продукты организации или проекта.
В ракурсе структуры документа содержимое документа, на который ссылаются ключевые практики, может быть частью большего документа. Например, в план разработки ПО организации могут входить наиболее существенные части плана управления рисками.
Альтернативным образом содержимое документа, упоминаемого в ключевых практиках, может распределяться по набору документов, отличному от указанного в практиках набора. Например, в проекте могут быть разработаны три документа — план разработки ПО, план управления ПО и иерархическая последовательность проектных работ, — соответствующие требованиям практик в отношении управления рисками проекта, обеспечения качества и плана разработки ПО.
7.3.8. Сбор и анализ данных процесса
Ключевые практики для сбора и анализа данных процесса развиваются по уровням зрелости.
На уровне 2 данные в основном относятся к размеру промежуточных продуктов проекта, объему работ и графику. Эта информация идентифицируется, собирается и хранится отдельно по каждому проекту. Проекты могут совместно использовать данные с помощью неформальных механизмов коммуникации.
На уровне 3 каждый проект имеет свой производственный процесс, полученный путем адаптации СППО. Данные, связанные с этим процессом, собираются и хранятся в базе данных ППО. Собранные данные могут различаться по каждому проекту, но они должны быть четко определены внутри базы данных ППО.
На уровне 4 организация определяет на основании СППО стандартный набор измерений. Все проекты собирают этот стандартный набор данных измерений, а также других специфических проектных данных и сохраняют их в базе данных ППО. Данные используются в проектах для их понимания на количественном уровне и стабилизации выполнения проектных производственных процессов. Эта информация также используется организацией для установления базовой линии для СППО.
На уровне 5 данные используются для выбора областей возможного усовершенствования технологии и процессов, планирования этих усовершенствований и оценки их влияния на продуктивность производственного процесса организации.
7.4. Организационная структура и роли
Хотя модель СММ независима от конкретных организационных структур и моделей, практики СММ необходимо выражать единообразно, используя в отношении организационных структур и ролей терминологию, которая может отличаться от используемой в конкретной организации. Следующие разделы описывают различные концепции, которые касаются организаций, проектов, ролей и необходимы для интерпретации ключевых практик СММ.
7.4.1. Организационные роли
Роль представляет собой элемент определенной сферы ответственности, присваиваемый одному или нескольким лицам. В ключевых практиках часто используются следующие описания ролей:
Менеджер
Роль менеджера заключается в техническом и административном руководстве и контроле над лицами, выполняющими задачи и действия внутри сферы ответственности менеджера. К традиционным функциям менеджера относятся планирование, распределение ресурсов, организация, управление и контроль в пределах сферы его ответственности.
Руководитель высшего звена
Выполняет управляющую роль на достаточно высоком организационном уровне, более концентрируясь на вопросах длительной жизнеспособности организации, чем на сиюминутных проблемах проектов и контрактов. Обычно руководитель высшего звена по разработке несет ответственность за несколько проектов. Он также предоставляет и поддерживает ресурсы для долгосрочного усовершенствования производственного процесса (например, для группы инженерии производственного процесса).
По терминологии СММ роль руководителя высшего звена может принадлежать любому менеджеру, который удовлетворяет этому описанию, вплоть до главы всей организации. В ключевых практиках термин «руководитель высшего звена» должен интерпретироваться в контексте рассматриваемой группы ключевых процессов, проектов и организации. Это позволит учесть именно тех руководителей, которые нужны для выполнения лидирующей и контролирующей ролей, необходимых для достижения целей данной группы ключевых процессов.