- •Марк Паулк, Билл Куртис, Мэри Бет Хриссис, Чарльз в. Вебер, Сьюзен м. Гарсия, Мерилин Буш cmmi Product Team модель зрелости процессов разработки программного обеспечения предисловие
- •Глава 1. Основные понятия зрелости производственных процессов
- •1.1. Зрелые и незрелые организации-разработчики по
- •1.2. Фундаментальные концепции, лежащие в основе понятия зрелости производственных процессов
- •1.3. Обзор модели зрелости процессов разработки
- •Глава 2. Пять уровней зрелости производственного процесса
- •2.1. Поведенческие характеристики уровней зрелости
- •2.1.1. Уровень 1 — начальный уровень
- •2.1.2. Уровень 2 — повторяемый уровень
- •2.1.3. Уровень 3 — определенный уровень
- •2.1.4. Уровень 4 — управляемый уровень
- •2.1.5. Уровень 5 — оптимизирующий уровень
- •2.2. Понимание концепций уровней зрелости
- •2.2.1. Понимание концепции начального уровня
- •2.2.2. Понимание повторяемого и определенного уровней
- •2.2.3. Понимание управляющего и оптимизированного уровней
- •2.3. Представление о производственном процессе
- •2.4. Продуктивность процесса и прогнозирование производительности
- •2.5. Пропуск этапов развития организации
- •Глава 3. Рабочее определение модели зрелости процессов разработки по
- •3.1. Внутренняя структура описания уровней зрелости
- •3.2. Уровни зрелости
- •3.3. Группы ключевых процессов
- •3.5. Ключевые практики
- •Глава 4. Использование смм
- •4.1. Методы внутренней и внешней оценки производственного процесса
- •4.2. Различия между внутренними и внешними оценками производственного процесса
- •4.3. Другие способы использования cmm при усовершенствовании производственного процесса
- •Глава 5. Будущие направления развития смм
- •5.1. Что находится вне области рассмотрения cmm
- •5.2. Ближайшие задачи
- •5.3. Долговременные задачи
- •5.4. Заключение
- •Глава 6. Использование страниц описания ключевых практик
- •7.2. Интерпретация разделов
- •7.2.1. Обязательства по выполнению Положения политики
- •Лидерство
- •7.2.2. Необходимые предпосылки Ресурсы и финансирование
- •Обучение
- •Ориентация
- •Начальные условия
- •7.2.3. Выполняемые операции
- •Типы планов
- •Формальные планы
- •Неформальные планы
- •В соответствии с документированной процедурой
- •Отнесенные к по системные требования
- •Отношения типа «поставщик — заказчик»
- •Отслеживание процесса разработки по с принятием корректирующих мер в сравнении с управлением ходом работ
- •Контроль в сравнении с экспертной оценкой
- •Помещение в систему управления конфигурацией в сравнении с управлением и контролем
- •7.2.4. Измерения и анализ
- •7.2.5. Проверка внедрения
- •Регулярный надзор со стороны высшего руководства
- •Регулярный и событийный надзор со стороны руководства проекта
- •Действия по обеспечению качества по
- •7.3. Интерпретация определения производственного процесса
- •7.3.1. Концепции определения процесса
- •7.3.2. Концепции, касающиеся основных средств производственного процесса организации Основные средства производственного процесса организации (ппо)
- •Стандартный производственный процесс организации (сппо)
- •Архитектура производственного процесса
- •Элемент производственного процесса
- •Утвержденное описание жизненных циклов по
- •Инструкции и критерии адаптации
- •База данных производственного процесса организации
- •Библиотека документации по производственному процессу
- •7.3.3. Концепции, связанные с производственным процессом проекта Описание производственного процесса проекта
- •Операции
- •Промежуточные программные продукты (результаты проекта)
- •Программные продукты
- •7.3.4. Взаимосвязь между производственным процессом проекта и планом разработки по
- •7.3.5. Жизненные циклы и cmm
- •7.3.6. Технология и cmm
- •7.3.7. Документация и cmm
- •7.3.8. Сбор и анализ данных процесса
- •7.4. Организационная структура и роли
- •7.4.1. Организационные роли
- •Менеджер
- •Руководитель высшего звена
- •Менеджер проекта
- •Производственный менеджер проекта
- •Линейный менеджер
- •Ведущий специалист
- •Персонал, разработчики, сотрудники
- •7.5. Применение профессиональной оценки
- •Глава 8. Уровень 2: повторяемый уровень
- •8.1. Управление требованиями
- •Обязательства по выполнению
- •Необходимые предпосылки
- •Выполняемые операции
- •Измерения и анализ
- •Проверка внедрения
- •8.2. Планирование проекта
- •Обязательства по выполнению
- •Необходимые предпосылки
- •Выполняемые операции
- •Измерения и анализ
- •Проверка внедрения
- •8.3. Отслеживание хода проекта и контроль над ним
- •Обязательства по выполнению
- •Необходимые предпосылки
- •Выполняемые операции
- •Измерения и анализ
- •Проверка внедрения
- •8.4. Управление производственным субподрядом
- •Обязательства по выполнению
- •Необходимые предпосылки
- •Выполняемые операции
- •Измерения и анализ
- •Проверка внедрения
- •8.5. Обеспечение качества по
- •Обязательства по выполнению
- •Необходимые предпосылки
- •Выполняемые операции
- •Измерения и анализ
- •Проверка внедрения
- •8.6. Управление конфигурацией по
- •Обязательства по выполнению
- •Необходимые предпосылки
- •Выполняемые операции
- •Измерения и анализ
- •Проверка внедрения
- •Глава 9. Уровень 3: определенный уровень
- •9.1. Координация производственного процесса организации
- •Обязательства по выполнению
- •Необходимые предпосылки
- •Выполняемые операции
- •Измерения и анализ
- •Проверка внедрения
- •9.2. Определение производственного процесса организации
- •Обязательства по выполнению
- •Необходимые предпосылки
- •Выполняемые операции
- •Измерения и анализ
- •Проверка внедрения
- •9.3. Программа обучения
- •Обязательства по выполнению
- •Необходимые предпосылки
- •Выполняемые операции
- •Измерения и анализ
- •Проверка внедрения
- •9.4. Интегрированное управление разработкой по
- •Обязательства по выполнению
- •Необходимые предпосылки
- •Выполняемые операции
- •Измерения и анализ
- •Проверка внедрения
- •9.5. Инженерия разработки программного продукта
- •Обязательства по выполнению
- •Необходимые предпосылки
- •Выполняемые операции
- •Измерения и анализ
- •Проверка внедрения
- •9.6. Межгрупповая координация
- •Обязательства по выполнению
- •Необходимые предпосылки
- •Выполняемые операции
- •Измерения и анализ
- •Проверка внедрения
- •9.7. Экспертные оценки
- •Обязательства по выполнению
- •Необходимые предпосылки
- •Выполняемые операции
- •Измерения и анализ
- •Проверка внедрения
- •Обеспечение качества по
- •Управление конфигурацией по
- •Оглавление
Менеджер проекта
Роль менеджера проекта обладает сферой ответственности, которая включает в себя все деловые аспекты целого проекта. Менеджер проекта направляет, контролирует, администрирует и регулирует проект разработки программной или программно-аппаратной системы. На нем лежит конечная ответственность перед заказчиком.
В проектно-ориентированной организационной структуре большинство сотрудников, работающих над проектом, подотчетны менеджеру проекта, хотя в некоторых областях могут существовать матричные отношения отчетности. В матричной организационной структуре менеджеру проекта подотчетен только бизнес-персонал, а в инженерных группах применяются матричные отношения отчетности.
Производственный менеджер проекта
В сферу ответственности входят все производственные действия проекта. Он является лицом, взаимодействующим с менеджером проекта по вопросам производственных обязательств и контролирующим все производственные ресурсы проекта.
Производственному менеджеру проекта подотчетны проектные группы разработчиков, хотя некоторые действия, такие как разработка инструментария, могут иметь матричные отношения отчетности.
В крупном проекте производственный менеджер является обычно менеджером второго, третьего или четвертого звена. В небольшом проекте или в проектном подразделении производственный менеджер может быть менеджером первого звена (линейным менеджером) или находиться на более высоком уровне.
Линейный менеджер
В сферу ответственности линейного менеджера входит непосредственное управление (включая техническое руководство и администрирование персонала и зарплаты) персоналом и действиями отдельной организационной единицы (например, отдела или проектной группы), состоящей из инженеров-разработчиков и других сотрудников.
Ведущий специалист
Играет роль лидера технической группы по конкретной задаче, который несет техническую ответственность и обеспечивает техническое руководство персоналом, работающим над выполнением этой задачи.
Ведущий специалист обычно подотчетен тому же линейному менеджеру, что и другие сотрудники, выполняющие данную задачу.
Персонал, разработчики, сотрудники
В СММ используется несколько терминов для обозначения исполнителей различных технических ролей, описанных в ключевых практиках СММ. К персоналу относятся те сотрудники, включая ведущих специалистов, которые несут ответственность за выполнение назначенных функций, таких как разработка ПО или управление конфигурацией ПО, но не являются менеджерами.
К разработчикам относятся технические сотрудники (например, аналитики, программисты, инженеры), включая ведущих специалистов, которые выполняют в проекте действия по разработке и сопровождению ПО, но не являются менеджерами.
Термин «сотрудники» в ключевых практиках определяется и ограничивается контекстом своего использования (например, «сотрудник, задействованный в управлении производственным субподрядом»).
Подобное распределение ролей может быть определено и для других инженерных групп, таких как группы системного проектирования и системного тестирования.
Некоторые проекты или организации не нуждаются во взаимно однозначном соответствии между ролями и сотрудниками. Один человек может играть несколько ролей, а каждая роль может выполняться несколькими сотрудниками.
Например, в небольшом, исключительно программном проекте один человек может играть даже шесть ролей: линейный менеджер по системному проектированию, проектный менеджер по системному проектированию, производственный линейный менеджер, производственный менеджер проекта, менеджер проекта и менеджер по управлению конфигурацией ПО.
В несколько более крупном проекте один сотрудник может быть одновременно линейным менеджером по системному проектированию, проектным менеджером по системному проектированию и менеджером проекта, а другой — совмещать роли производственного линейного менеджера и производственного менеджера проекта. Эти два менеджера могут работать в одной или в различных организациях второго звена.
В крупном проекте многие роли, особенно руководящие, обычно выполняются отдельными сотрудниками.
7.4.2. Организационная структура
Для правильной интерпретации ключевых практик, входящих в модель зрелости процессов разработки, необходимо разобраться в фундаментальных концепциях организации, проекта и группы. Ниже дается определение использования этих концепций в СММ.
Организация
Представляет собой единицу компании или другой сущности (например, государственное учреждение или обслуживающий филиал), целиком управляющую многими проектами. Все проекты внутри организации подчиняются общему руководителю высшего уровня и общим политикам.
Проект
Является предприятием, которое требует совместных усилий, сосредоточенных на разработке и/или сопровождении конкретного продукта. Продукт может включать в себя оборудование, программное обеспечение и другие компоненты. Обычно проект имеет собственное финансирование, отчетность и график поставок.
Группа
Представляет собой совокупность отделов, менеджеров и сотрудников, которые несут ответственность за набор задач или операций. Состав группы может варьироваться от одного или нескольких совместителей из различных отделов до нескольких сотрудников, занятых этой деятельностью полный рабочий день.
Ниже описаны группы, наиболее часто встречаемые в СММ.
Группа разработки ПО
Представляет собой коллектив сотрудников (руководителей и технических специалистов), которые несут ответственность за проектные операции по разработке и сопровождению ПО (т. е. анализ требований, проектирование, кодирование и тестирование).
В группу разработки не входят группы, косвенно связанные с разработкой, такие как группы обеспечения качества ПО, управления конфигурацией ПО и инженерии производственного процесса. Эти группы входят в число «групп, связанных с разработкой ПО».
Группы, связанные с разработкой ПО
Представляет собой коллектив сотрудников (руководителей и технических специалистов), чьи обязанности заключаются не в непосредственном участии в процессах разработки и сопровождения ПО, а в их поддержке.
Примерами подобных инженерных областей могут служить обеспечение качества ПО и управление конфигурацией ПО.
Группа инженерии производственного процесса
В группу входят специалисты, занимающиеся определением, сопровождением и улучшением производственного процесса организации. В ключевых практиках эта группа обычно называется «группой, ответственной за операции ППО».
Группа системного проектирования
Является коллективом сотрудников (руководителей и технических специалистов), которые несут ответственность за определение системных требований; отнесение этих требований к оборудованию, ПО и другим компонентам; определение интерфейсов между оборудованием, ПО и другими компонентами; мониторинг проектирования и разработки этих компонентов, обеспечивающий их соответствие техническим требованиям.
Группа системного тестирования
Группа системного тестирования представляет собой коллектив сотрудников (руководителей и технических специалистов), которые несут ответственность за планирование и выполнение независимого системного тестирования ПО, проводимого в целях проверки программного продукта на соответствие требованиям.
Группа обеспечения качества ПО
Представляет собой коллектив сотрудников (руководителей и технических специалистов), которые несут ответственность за планирование и проведение проектных мероприятий по обеспечению качества, поддерживающих соответствие этапам и стандартам производственного процесса. Организационные вопросы обеспечения качества ПО обсуждаются в разделе 4.4.3.
Группа управления конфигурацией ПО
Представляет собой коллектив сотрудников (руководителей и технических специалистов), которые несут ответственность за планирование, координацию и реализацию формальных действий по управлению конфигурацией проекта разработки ПО.
Группа обучения
Состоит из сотрудников (руководителей и технических специалистов), отвечающих за координацию и проведение учебных мероприятий организации. Эта группа обычно готовит и проводит большинство учебных курсов и координирует использование других средств обучения.
7.4.3. Независимость и организационная структура
Организация должна следить за корректностью интерпретации и выполнения ключевых практик, реализующих концепцию независимости. Это имеет особенно большое значение для небольших проектов и организаций. Если технические или организационные пристрастия могут повлиять на качество продукта или проектные риски, ключевые практики рекомендуют использовать концепцию независимости. Два примера подобных практик:
Группа обеспечения качества (SQA) имеет канал отчетности перед старшим руководством, который независим от менеджера проекта, группы разработки ПО и других групп, связанных с разработкой (обязательство 1.2 из раздела «Обеспечение качества ПО»).
Системные и приемочные тестовые сценарии и процедуры планируются и готовятся группой тестирования, которая независима от разработчиков ПО (действие 7.3 из раздела «Инженерия разработки программного продукта»).
Необходимость независимого системного и приемочного тестирования обусловлена техническими факторами. Эта независимость гарантирует, что сотрудники группы тестирования не подвергнутся влиянию решений, принятых разработчиками или специалистами по технической поддержке ПО при его проектировании и реализации.
Независимость группы обеспечения качества диктуется тем, что график и бюджет проекта не должны влиять на работу членов этой группы. Отсутствие организационной независимости может значительно усложнить обеспечение эффективной оперативной независимости. Например, сотрудник, подотчетный менеджеру проекта, может быть вынужден прервать тестирование несмотря на существование серьезных проблем с совместимостью продукта.
Организации должны определить такую организационную структуру, которая поддерживала бы независимость операций, подобных обеспечению качества, в контексте своих стратегических бизнес-целей и бизнес-среды.
Независимость должна:
обеспечивать сотрудникам группы обеспечения качества организационную свободу, позволяющую им быть «глазами и ушами» старшего руководства проекта;
исключить вынесение оценки работы сотрудников группы обеспечения качества со стороны руководства того проекта, о котором они подают отчет;
обеспечить уверенность старшего руководства в объективности получаемых отчетов о производственном процессе и продуктах проекта.
Поскольку ключевые практики допускают различные трактовки критериев независимости, организация должна получить профессиональную оценку их соответствия целям группы ключевых процессов.
