Аннотация: Данный текст является переводом на русский язык описания одного из самых популярных стандартов постановки процесса разработки программного обеспечения (ПО). Я публикую книгу на своем сайте в открытом доступе для того, чтобы все интересующиеся данным вопросом могли прочитать ее и получить необходимую информацию совершенно свободно и бесплатно. Причина в том, что те методики, которые описаны в данном стандарте, как я считаю, просто обязаны взять на вооружение те разработчики ПО, которые этим занимаются серьёзно. По крайней мере, это касается 2-го и 3-го уровней CMM, так как применение этих практик дает существенное повышение в производительности и устойчивости процесса разработки ПО. --------------------------------------------- Марк Паулк, Билл Куртис, Мэри Бет Хриссис, Чарльз В. Вебер, Сьюзен М. Гарсия, Мерилин Буш CMMI Product Team МОДЕЛЬ ЗРЕЛОСТИ ПРОЦЕССОВ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПРЕДИСЛОВИЕ Книга, которую вы держите в руках, издается на русском языке впервые. Поводом к ее выпуску послужил стремительно растущий в последнее время интерес в нашей стране к информационным технологиям, а также постоянный спрос среди специалистов на современные методы разработки программного обеспечения, в большой мере обусловленный стремлением российских ИТ компаний выйти на мировой рынок. Не секрет, что до недавнего времени типичный способ разработки ПО в России был ориентирован на программистов-одиночек, программистов-кустарей. Интереса к индустриальному производству ПО почти не было из-за низкого платежеспособного спроса на сложные программные комплексы. Разработка программного обеспечения велась спонтанно, не уделялось особого внимания вопросам организации самого процесса: планированию, тестированию, межгрупповому взаимодействию, управлению конфигурацией. Однако в последние годы наблюдается взросление экономики страны, а вслед за ней и технологий производства. Возросшая конкуренция на внутреннем рынке и попытки выхода на мировой резко повысили интерес к повышению производительности труда в экономике России, рост которой сейчас напрямую связывают с информатизацией. Возросла ценность программного обеспечения и, таким образом, интерес к постановке индустриального процесса разработки ПО заметно усилился. Отрасль производства программного обеспечения растет и переходит от кустарных разработок к промышленным методам, так как первые просто становятся невыгодны экономически. Кроме того, активно развивается отрасль “оффшорного” программирования, при которой непосредственно производство программ передается в страну, имеющую квалифицированных недорогих специалистов. Таким образом, конкуренция и работа с западными заказчиками стали подталкивать отечественных программистов к совершенствованию своих методов работы. На сегодняшний день существует множество разнообразных методологий построения процесса разработки ПО, и у каждой из них есть свои плюсы и минусы, области применения, в которых определенные из них наиболее эффективны. Все эти методологии преследуют своей первой целью улучшение производственного процесса, который позволил бы наиболее эффективно и качественно производить программные продукты. Кроме того, некоторые из них предоставляют методику оценки уже существующего технологического процесса, для того чтобы объективно сравнивать разные компании-разработчики по их уровню и производительности. Такие методики оценки используются компаниями-заказчиками для определения уровня исполнителей для своих проектов при принятии решения о заключении контракта. Одной из наиболее популярных, востребованных и весомых методик на сегодняшний день является модель построения зрелых процессов разработки программного обеспечения SW-CMM (Capability Maturity Model for Software). До сих пор эта модель, разработанная Институтом программной инженерии при Университете Карнеги-Меллон (США), была почти неизвестна в России. Основной причиной этого было отсутствие материалов по этому стандарту на русском языке. Данный перевод текстов стандарта SW-CMM призван устранить этот пробел и предназначается для всех ИТ специалистов: топ-менеджеров компаний, руководителей проектов, а также рядовых разработчиков. Мы надеемся, что изложенный в книге материал о модели SW-CMM и изложенный в ней опыт успешных и развитых компаний помогут отечественным специалистам повысить эффективность своей работы, выстроить процессы разработки ПО в соответствии с современными требованиями рынка, лучше взаимодействовать с заказчиками и отвечать их запросам. В заключение хотелось бы персонально поблагодарить тех, кто помогал нам делать данный перевод: сотрудникам компании “Аджаст Медиа”, особенно Наталье Сапрыкиной, подготовившей первую версию глоссария в соответствии с принятой в России стандартной терминологией, а также участникам форума на интернет сайте: Игорю Овсянику (EPAM Systems, Минск), Виктору Малькову (Тэлма, Нижний Новгород), Юрию Назаренко (TelesensKSCL Ukraine Itd.), Михаилу Сабурову, Максиму Локтухину, Алексею Пичкурову, Павлу Можаеву (БНТП, Москва), Александру Бузуну (Тэлма, Нижний Новгород), Александру Ефимову, Batbold Dulguun (The World Bank Junior Professional Associate), активно участвовавших в обсуждении и адаптации перевода основных терминов SW-СММ. Владимир Рябикин, www.ryabikin.com ГЛАВА 1. ОСНОВНЫЕ ПОНЯТИЯ ЗРЕЛОСТИ ПРОИЗВОДСТВЕННЫХ ПРОЦЕССОВ Спустя два десятилетия, проведенных в ожидании роста производительности и качества ПО вследствие применения новых технологий и методик разработки, промышленные и правительственные организации начали осознавать фундаментальную проблему, с которой они столкнулись: невозможность управления процессом разработки ПО [DoD 87]. Стало очевидным, что преимущества, возникшие вследствие применения наилучших инструментальных средств и методов разработки, сводятся к нулю при работе в рамках неорганизованного, хаотического проекта. Многие организации отмечают, что завершение проектов зачастую слишком запаздывает, а затраченный бюджет вдвое перекрывает запланированный [Siegel 90]. Как правило, подобные неудачи вызваны тем, что организации не предоставляют своим группам разработчиков необходимой инфраструктуры и поддержки. Тем не менее случается и так, что даже в недисциплинированной организации отдельные проекты дают превосходные результаты. Успешное завершение подобных проектов, как правило, требует героических усилий со стороны энтузиастов-разработчиков, в отличие от итеративного повторения проверенных методов со стороны организации, обладающей зрелыми производственными процессами. В отсутствие единого для всей организации производственного процесса, повторение достигнутых результатов определяется исключительно участием тех же сотрудников, которые были задействованы в предыдущем проекте. Таким образом, подобный успех определяется участием высококвалифицированных энтузиастов, а не наличием у организации фундамента, способного обеспечить устойчивую, долговременную производительность труда и непрерывное улучшение качества разработок. Достижение же последнего может произойти только в результате сфокусированных и непрерывных усилий, направленных на построение инфраструктуры процессов эффективной программной инженерии и управления. 1.1. Зрелые и незрелые организации-разработчики ПО Постановка осмысленных целей, направленных на улучшение производственных процессов, требует понимания различий между зрелыми и незрелыми организациями-разработчиками ПО. В незрелых организациях-разработчиках производственный процесс, как правило, импровизируется исполнителями и их руководством. Даже при наличии указаний по определенной организации производственного процесса ими не руководствуются. Незрелая организация-разработчик противодействует любым изменениям, а управляющее звено обычно сфокусировано на решении неотложных проблем (деятельность, известная как «пожаротушение»). Графики работ и бюджеты обычно превышаются вследствие того, что они не основаны на реальных оценках. По мере приближения к критическим срокам сдачи проекта приходится идти на компромисс между сроками выполнения, функциональностью и качеством продукта. В незрелых организациях не существует объективной основы для вынесения решения о качестве продукта или для решения проблем, связанных с процессами и разрабатываемым продуктом. Вследствие этого качество разработанного программного продукта является трудно предсказуемым. Работы, нацеленные на улучшение качества, такие как экспертные оценки и тестирование, зачастую урезаются или вообще отбрасываются по мере того, как проект выходит за пределы своего графика. С другой стороны, зрелые организации-разработчики обладают широкими возможностями по управлению процессами разработки и сопровождения ПО. Сферы ответственности внутри производственного процесса точно распределены как среди имеющихся, так и недавно принятых сотрудников, а все работы проводятся в соответствии с запланированным процессом. Установленные процессы пригодны для использования [Humphrey 91b] и соответствуют реально применяемым способам проведения работ. По мере необходимости эти определенные процессы обновляются, а усовершенствования разрабатываются с помощью контролируемого пилотного тестирования и/или анализа затрат и прибылей. Распределение ролей и сфер ответственности в пределах определенного процесса четко определено на протяжении всего проекта и в рамках всей организации. В зрелой организации, управляющее звено непрерывно следит за качеством программного продукта и за тем, удовлетворен ли заказчик созданным решением. Существует объективная, количественная основа для вынесения решения о качестве продукта, а также анализа проблем, возникающих с продуктом или процессом. План-графики и бюджеты реалистичны и основаны на показателях производительности предыдущих проектов; как правило, достигаются ожидаемые результаты по затратам, срокам разработки, функциональности и качеству продукта. Кратко говоря, соблюдается точное следование упорядоченному процессу, так как все участники проекта понимают важность его соблюдения, а для поддержки процесса разработки существует необходимая инфраструктура. Реализация этих наблюдений о зрелых и незрелых организациях требует создания структуры, обеспечивающей достижение зрелости производственных процессов. Эта структура предназначена для описания эволюционного пути от специально создаваемых, хаотических процессов к зрелым, упорядоченным производственным процессам. Без этой структуры программы улучшения процессов могут стать неэффективными, вследствие отсутствия необходимых предпосылок для поддержки последовательных усовершенствований. Структура поддержки зрелости производственных процессов представляет собой интеграцию концепций самого производственного процесса, его возможностей, производительности и зрелости. Каждая из этих концепций будет обсуждена далее. 1.2. Фундаментальные концепции, лежащие в основе понятия зрелости производственных процессов Согласно словарю Вебстера, процесс является «системой операций для производства чего-либо… последовательностью действий, изменений или функций, предназначенных для достижения окончания или результата». Комитет IEEE определяет процесс как «последовательность шагов, выполняемых для достижения заданной цели» [IEEE-STD-610]. Производственный процесс может быть определен как набор операций, методов, практик и преобразований, используемых разработчиками для создания и сопровождения ПО и связанных с ним продуктов (например, планов проекта, проектных документов, кодов, сценариев тестирования и руководств пользователя). По мере того, как организация становится более зрелой, ее производственный процесс становится все более четко определенным и последовательно применяемым в рамках всей организации. Продуктивность производственного процесса описывает совокупность ожидаемых результатов, которые могут быть достигнуты при следовании производственному процессу. Эта концепция позволяет организации-разработчику прогнозировать наиболее вероятные результаты будущего проекта разработки ПО. Производительность производственного процесса представляет реальные результаты, достигаемые при соблюдении требований производственного процесса. Таким образом, производительность фокусируется на достигаемых результатах, в то время как его продуктивность опирается на ожидаемые результаты. В зависимости от атрибутов конкретного проекта и его контекста, фактическая производительность выполнения проекта может не отражать полную продуктивность производственного процесса организации, т. е. потенциал проекта ограничивается его средой. Например, радикальные изменения в разрабатываемом приложении или в используемой технологии могут потребовать длительного обучения сотрудников, что снизит продуктивность и производительность выполнения данного проекта в сравнении с полной продуктивностью производственного процесса организации. Уровень зрелости производственного процесса — это степень, до которой тот или иной процесс определен, управляем, измеряем, контролируем и эффективен. Зрелость подразумевает потенциал для роста продуктивности и отражает как полноту производственного процесса организации, так и постоянство, с которым организация применяет этот процесс во всех своих проектах. Производственный процесс достаточно хорошо понимается персоналом зрелой организации, обычно благодаря разработанной документации и проведенному обучению, и этот процесс постоянно контролируется и улучшается участвующими в нем сотрудниками. Продуктивность зрелого процесса разработки всегда хорошо известна. Зрелый производственный процесс подразумевает возможность постепенного улучшения качества своих результатов и производительности за счет стабильного повышения дисциплины своего выполнения. По мере роста зрелости своего производственного процесса, организация-разработчик институционализирует производственные процессы с помощью политик, стандартов и организационных структур. Институционализация подразумевает создание инфраструктуры и корпоративной культуры, которые поддерживают методы, практики и бизнес-процедуры, сохраняя эти достижения после того, как разработавшие их сотрудники покинут организацию. 1.3. Обзор модели зрелости процессов разработки Хотя зачастую инженеры-разработчики и менеджеры хорошо осведомлены о своих проблемах, их взгляды на то, какие усовершенствования являются наиболее важными, могут быть различными. Без организованной стратегии усовершенствования трудно достичь согласия между профессионалами-разработчиками и руководством по вопросу, какие именно работы по усовершенствованию следует выполнять первыми. Для того чтобы усилия по усовершенствованию процессов принесли долговременные результаты, необходимо разработать эволюционный путь развития, поэтапно увеличивающий зрелость производственного процесса организации. Концептуальная структура зрелости производственного процесса [Humphrey 87a] упорядочивает эти стадии таким образом, что усовершенствования на каждой предшествующей стадии являются фундаментом усовершенствований последующей стадии. Таким образом, стратегия усовершенствования, предлагаемая концептуальной структурой зрелости производственного процесса, обеспечивает наиболее прямой путь постоянного улучшения производственного процесса. Эта стратегия призвана руководить усовершенствованиями и выявлять недостатки организации; она не предназначена для быстрого «латания дыр» неудачного проекта. Модель зрелости процессов разработки ПО предоставляет организации-разработчику руководящие принципы управления своими процессами разработки и сопровождения ПО, а также развития культуры управления и программной инженерии. CMM предназначена помогать организациям в выборе стратегий усовершенствования процессов путем определения текущего уровня зрелости производственного процесса и выявления некоторых вопросов, наиболее значимых для повышения качества создаваемого ПО и усовершенствования процессов. Концентрируя свое внимание на конкретном перечне работ и активно добиваясь их выполнения, организация может планомерно совершенствовать свой производственный процесс, обеспечивая устойчивый и постоянный рост его продуктивности. Многоуровневая структура CMM основывается на принципах обеспечения качества продукта, выработанных за последние шестьдесят лет. В начале тридцатых Валтер Шеварт (Walter Shewart) опубликовал работу, в которой изложил принципы статистического контроля качества. Его идеи были развиты, а их успешное применение было продемонстрировано в работах В. Эдвардса Деминга (W. Edwards Deming) [Deming 86] и Джозефа Джурана [Juran 88, Juran 89]. Эти принципы были развиты институтом SEI в виде концептуальной структуры зрелости процессов, формирующей управленческий и инженерный фундамент для количественного контроля над производственным процессом, что является основой для его непрерывного усовершенствования. Структура зрелости процессов, в которую вошли эти принципы качества, была впервые намечена Филиппом Кросби в его книге «Quality is Free» [Crosby 79]. Сетка зрелости управления качеством, приведенная Кросби, описывает пять эволюционных фаз во внедрении системы управления качеством. Эта структура зрелости была адаптирована для производственного процесса Роном Радиком (Ron Radice) и его коллегами, работающими под руководством Уотса Хэмфри (Watts Humphrey) из компании IBM [Radice 85]. Хэмфри предложил свою структуру зрелости SEI в 1986 г., добавив концепции уровней зрелости и разработав основу для их текущего использования в программной отрасли. Ранние версии структуры зрелости процессов разработки, предложенные Хэмфри, описаны в технических отчетах SEI [Humphrey 87a, Humphrey 87b], статьях [Humphrey 88] и в его книге «Managing the Software Process» [Humphrey 89]. Предварительный опросный лист для выявления уровня зрелости [Humphrey 87b] был выпущен в 1987 г. в качестве инструмента, позволяющего организациям определить уровень зрелости их производственных процессов. Для получения характеристик зрелости программного процесса в 1987 г. были разработаны методы внутренней и внешней оценки производственного процесса. Начиная с 1990 г., институт SEI с помощью многих энтузиастов из правительственных и отраслевых структур еще более развил и усовершенствовал эту модель, основываясь на опыте нескольких лет совершенствования производственных процессов. ГЛАВА 2. ПЯТЬ УРОВНЕЙ ЗРЕЛОСТИ ПРОИЗВОДСТВЕННОГО ПРОЦЕССА Постоянное совершенствование производственного процесса основано на многих небольших эволюционных шагах, а не на революционных нововведениях [Imai 86]. CMM предоставляет концептуальную структуру, организующую эти эволюционные шаги в пять уровней зрелости, формирующих последовательные основания для постоянного совершенствования процесса. Эти пять уровней зрелости определяют порядковую шкалу для измерения зрелости и оценки продуктивности производственного процесса. Эти уровни также помогают организации расставить приоритеты среди своих мероприятий по улучшению процесса разработки. Уровень зрелости представляет собой точно определенное эволюционное плато на пути к достижению полной зрелости производственного процесса. Каждый уровень зрелости формирует отдельный слой фундамента для постоянного совершенствования производственного процесса, включает в себя набор целей процесса, которые, по мере их достижения, приводят к стабилизации значимых компонентов производственного процесса. Достижение каждого уровня структуры зрелости характеризуется внедрением различных составляющих производственного процесса, повышающих его продуктивность. Показанная на рис. 2.1 организация CMM по пяти уровням зрелости определяет приоритеты работ по развитию производственного процесса. Помеченные стрелки на рис. 2.1 указывают на тип продуктивности процесса, устанавливаемый организацией на каждом шаге его структуры. Рис. 2.1. Пять уровней зрелости производственного процесса Последующие характеристики пяти уровней зрелости раскрывают основные изменения процессов, проводимые на каждом из них. 1) Начальный Производственный процесс характеризуется как создаваемый каждый раз под конкретный проект, а иногда даже как хаотический. Определены лишь некоторые процессы и успех проекта зависит от усилий индивидуумов. 2) Повторяемый Установлены основные процессы управления проектом, позволяющие отслеживать затраты, следить за графиком работ и функциональностью создаваемого программного решения. Установлена дисциплина процесса, необходимая для повторения достигнутых ранее успехов в проектах разработки подобных приложений. 3) Определенный Производственный процесс документирован и стандартизован как для управленческих работ, так и для проектирования. Этот процесс интегрирован в стандартный производственный процесс организации. Во всех проектах используется утвержденная адаптированная версия стандартного производственного процесса организации. 4) Управляемый Собираются подробные количественные показатели производственного процесса и качества создаваемого продукта. Как производственный процесс, так и продукты оцениваются и контролируются с количественной точки зрения. 5) Оптимизирующий Постоянное совершенствование процесса достигается благодаря количественной обратной связи с процессом и реализации передовых идей и технологий. 2.1. Поведенческие характеристики уровней зрелости Уровни зрелости от 2 до 5 могут характеризоваться работами, выполняемыми организацией в целях установления или совершенствования производственного процесса, работами по каждому проекту, а также итоговой продуктивности процессов во всех выполняющихся проектах. Поведенческая характеристика уровня 1 включена в целях создания основы для сравнения усовершенствований процессов на более высоких уровнях зрелости. 2.1.1. Уровень 1 — начальный уровень Находясь на начальном уровне, организация обычно не может обеспечить устойчивый процесс разработки и сопровождения ПО. Когда в организации отсутствует культура управления, преимущества применения хороших решений в процессе проектирования исчезают из-за неэффективного планирования и плохой работы систем согласования. Во время кризисных ситуаций в проектах зачастую отбрасываются запланированные процедуры и все усилия фокусируются на написании кода и тестировании. Успех целиком зависит от наличия исключительно эффективного менеджера и наличия опытного и квалифицированного коллектива разработчиков. Иногда талантливые и влиятельные менеджеры могут противостоять соблазну игнорировать стандартные плановые процедуры производственного процесса; но если такие менеджеры покидают проект, то они уносят вместе с собой и свое стабилизирующее влияние. Даже самый устойчивый процесс проектирования не сможет противостоять нестабильности, вызванной отсутствием надёжных практик управления. Продуктивность производственного процесса организаций уровня 1 непредсказуема, что вызывается постоянными изменениями или модификациями производственного процесса по мере выполнения работ (т. е. процесс специально создается для каждого проекта). Графики работ, бюджеты, функциональность и качество продукта, как правило, непредсказуемы. Производительность зависит от возможностей отдельных сотрудников и изменяется в зависимости от присущих им навыков, знаний и мотивации. Существует лишь несколько стабильных производственных процессов, а производительность можно прогнозировать только на уровне отдельных сотрудников, но не для организации в целом. 2.1.2. Уровень 2 — повторяемый уровень На повторяемом уровне установлены политики управления проектом разработки и процедуры их применения. Планирование и управление новым проектом базируется на опыте работы с подобными проектами. Целью достижения уровня 2 является институционализация таких процессов эффективного управления проектами разработки, которые позволяют организациям воспроизводить успешные практики прежних проектов, хотя конкретные процессы различных проектов могут различаться. Эффективный процесс может быть охарактеризован как проверенный на практике, документированный, обязательный к выполнению, обучаемый, измеряемый и открытый для дальнейшего усовершенствования. В проектах организаций второго уровня устанавливаются основные средства управления программным проектом. Реалистичные обязательства по проекту базируются на результатах прежних проектов и на требованиях текущего. Менеджеры проекта отслеживают производственные затраты, выполнение графиков и функциональность продукта; проблемы выполнения обязательств выявляются сразу после их возникновения. Требования к ПО и созданные на их основе рабочие продукты отслеживаются в системе управления конфигурацией, а их целостность контролируется. Определены стандарты проекта разработки и обеспечено их строгое соблюдение в рамках организации. В ходе проекта разработки проводится работа с субподрядчиками (при их наличии) по налаживанию надежных связей между заказчиком и субподрядчиком. Продуктивность производственного процесса организаций уровня 2 может быть охарактеризована как дисциплинированная, так как планирование и отслеживание проекта разработки стабильно и возможно воспроизведение прежних достижений. Производственный процесс проекта находится под эффективным управлением системы управления проектами и следует реалистичным планам, основанным на результатах прежних проектов. 2.1.3. Уровень 3 — определенный уровень На определенном уровне, стандартный процесс разработки и сопровождения ПО в рамках организации надежно документирован, включая как процессы программной инженерии, так и управления, и эти процессы интегрированы в единое целое. Этот стандартный процесс в материалах CMM называется стандартным производственным процессом организации. Процессы, установленные на уровне 3, используются (и, по мере необходимости, изменяются) для помощи менеджерам и техническому персоналу в более эффективном выполнении своих задач. При стандартизации своих производственных процессов организация использует эффективные практики программной инженерии. Существует группа, которая ответственна за работы по координации производственного процесса организации, т. е. группа инженерии производственного процесса (SEPG) [Fowler 90]. Реализована общая для организации программа обучения, гарантирующая, что персонал и руководящее звено обладают знаниями и навыками, требующимися для выполнения назначенных им ролей. Во время работы над проектами выполняется адаптация стандартного производственного процесса организации с целью разработки производственного процесса, учитывающего уникальные характеристики проекта. Этот адаптированный процесс в материалах CMM называется производственным процессом, определенным для проекта. Определенный производственный процесс содержит взаимосвязанный, интегрированный набор четко определенных процессов управления и программной инженерии. В четко определенный процесс должны входить критерии готовности, входные данные, стандарты и процедуры выполнения работы, механизмы контроля (например, экспертные оценки), выходные данные и критерии завершения. Вследствие того, что производственный процесс ясно определен, руководство получает точную картину технического прогресса по всем проектам. Продуктивность производственного процесса организаций третьего уровня может быть охарактеризована как стандартная и согласованная, поскольку и работы по управлению и программной инженерии стабильны и воспроизводимы. В пределах установленных линий продуктов затраты, график работ и реализуемые функциональные возможности находятся под строгим контролем, а качество создаваемого ПО непрерывно отслеживается. Продуктивность определенного производственного процесса основана на общем для всей организации понимании работ, ролей и сфер ответственности. 2.1.4. Уровень 4 — управляемый уровень На управляемом уровне организация устанавливает количественные показатели качества как для программных продуктов, так и для процессов их разработки. Для важных работ производственных процессов всех проектов выполняются измерения продуктивности и качества, как часть организационной программы измерений. Для сбора и анализа данных, получаемых от производственных процессов отдельных проектов, используется корпоративная база данных по производственным процессам. Производственные процессы уровня 4 оснащены инструментальными средствами для проведения точно определенных и согласованных измерений. Эти измерения формируют количественную основу для оценки продуктов и производственных процессов проектов. В ходе проектов контроль над процессами и создаваемыми продуктами достигается путем сужения разброса производительности процессов до приемлемых количественных пределов. Значимые расхождения в производительности процессов можно отличить от случайных расхождений (шумов), особенно внутри установленных линий продуктов. Риски, связанные с обучением персонала работе в новой прикладной области, известны и управляемы. Продуктивность производственного процесса организаций уровня 4 может быть охарактеризована как предсказуемая, так как процесс функционирует в заданных и измеряемых пределах. Этот уровень продуктивности процесса позволяет организации прогнозировать тенденции развития процесса и качества продукта в пределах заданных количественных ограничений. При превышении этих пределов предпринимаются меры по коррекции ситуации. Создаваемые программные продукты имеют предсказуемо высокий уровень качества. 2.1.5. Уровень 5 — оптимизирующий уровень Находясь на оптимизирующем уровне, вся организация полностью сосредоточена на непрерывном усовершенствовании производственного процесса. Организация обладает средствами профилактического выявления слабых мест процесса и его улучшения с целью предотвращения появления дефектов. Данные по эффективности производственного процесса используются для выполнения стоимостного анализа новых технологий и предлагаемых изменений производственного процесса организации. Выявляются новшества, использующие наилучшие методы программной инженерии, которые затем распространяются на всю организацию в целом. В организациях пятого уровня группы проекта разработки анализируют обнаруженные дефекты и определяют причины их возникновения. Производственные процессы анализируются в целях предотвращения повторения известных типов дефектов, а полученный опыт распространяются на другие проекты. Продуктивность процесса разработки ПО организаций 5-го уровня может быть охарактеризована как постоянно улучшающаяся, так как организации 5-го уровня зрелости постоянно стремятся улучшить диапазон продуктивности своего производственного процесса, повышая, таким образом, производительность процессов своих проектов. Улучшения происходят как за счет последовательного усовершенствования существующего процесса, так и за счет использования новых технологий и методов. 2.2. Понимание концепций уровней зрелости CMM представляет собой описательную модель, поскольку она описывает существенные (или ключевые) атрибуты, которые, как предполагается, должны характеризовать организацию определенного уровня зрелости. Это модель является нормативной в том смысле, что подробные практики характеризуют обычные виды поведения, ожидаемого от организации, ведущей крупномасштабные проекты по государственным заказам. Обратите внимание, что CMM представляет собой достаточно высокий уровень абстракции и не выдвигает чрезмерных ограничений к способам реализации производственного процесса организации — эта модель просто описывает необходимые существенные атрибуты производственного процесса. В любом контексте применения CMM следует разумно интерпретировать рекомендуемые практики. В том случае, когда бизнес-среда организации значительно отличается от среды крупной контрактной компании, модель CMM должна быть корректно интерпретирована с использованием информированных профессиональных оценок. CMM не является предписанием, в этой модели нет советов по способам усовершенствования организации. CMM описывает организацию на каждом уровне зрелости без предписания конкретных способов их достижения. Переход с уровня 1 на уровень 2 может занять несколько лет, а переход по остальным уровням обычно занимает около двух лет. Усовершенствование производственного процесса происходит в контексте бизнес-целей и стратегических планов организации, ее организационной структуры, используемых технологий, социальной культуры и системы управления. CMM фокусируется на аспектах процессов тотального управления качеством (TQM). Успешное усовершенствование процессов подразумевает также учет вопросов вне рамок производственного процесса (например, проблемы с персоналом, которые возникают из-за изменений организационной культуры, предпринимаемых с целью внедрения и институционализации усовершенствований процессов). 2.2.1. Понимание концепции начального уровня Хотя для организаций уровня 1 обычно характерны специально создаваемые и даже хаотические процессы, они, несмотря на выход за рамки бюджета и графика, часто разрабатывают вполне функциональные продукты. Успех для организаций уровня 1 зависит от компетентности и энтузиазма отдельных сотрудников. Подбор, наем, постоянное повышение квалификации и/или удержание компетентных сотрудников в коллективе представляют собой серьезные задачи для организаций всех уровней зрелости, но в основном эти задачи находятся за пределами рассмотрения CMM. 2.2.2. Понимание повторяемого и определенного уровней По мере роста объема и сложности проекта, внимание постепенно смещается от технических вопросов к организационным и управленческим — т. е. к вопросам, которые находятся в фокусе рассмотрения модели зрелости процессов [Siegel 90, DoD 87, GAO-92-48]. Производственный процесс на этих уровнях позволяет сотрудникам работать более эффективно благодаря созданию документированных процессов, включающих в себя опыт наилучших работников, обретения навыков, необходимых для эффективного выполнения процессов (обычно с помощью обучения), и непрерывного совершенствования за счет обучения у сотрудников, реально выполняющих работу. Для достижения уровня 2 руководство должно сфокусировать внимание на своих собственных процессах, добиваясь установления дисциплинированного производственного процесса. Уровень 2 формирует основу для уровня 3, так как внимание сосредоточено на руководстве, которое стремится усовершенствовать свои процессы прежде, чем приступить к техническим и организационным вопросам на уровне 3. На уровне 2 руководство занимает лидирующее положение путем документирования и следования процессам управления проектом. Процессы организаций второго уровня могут различаться от проекта к проекту. Организационные требования для достижения уровня 2 заключаются в формировании политик, помогающих установить в проектах соответствующие процессы управления. Документированные процедуры обеспечивают основу для согласованных процессов, которые могут быть установлены в рамках всей организации с помощью обучения и мероприятий по обеспечению качества ПО. На этом фундаменте управления проектом строится уровень 3, который определяет, интегрирует и документирует весь производственный процесс организации. Под интеграцией в этом случае понимается процесс автоматической передачи выходных данных одной задачи на вход другой. Несоответствия между задачами выявляются и разрешаются на стадии планирования процесса до их фактического воздействия на производственный процесс. Одной из проблем уровня 3 является построение таких процессов, которые не содержат излишних ограничений на выполнение сотрудниками своей работы [Humphrey 91b]. 2.2.3. Понимание управляющего и оптимизированного уровней Четвертый и пятый уровни зрелости относительно незнакомы для программной отрасли. Существуют лишь несколько примеров проектов разработки и организаций уровня 4 и 5 [Humphrey 91a, Kitson 92]. Для создания общей картины характеристик организаций этих уровней имеется слишком мало данных. Эти характеристики были определены по аналогии с другими отраслями промышленности и по нескольким примерам из программной отрасли, представляющими данный уровень продуктивности процессов. Многие характеристики уровней 4 и 5 основаны на концепциях статистического управления процессами, как представлено на рис. 2.2. Основные цели управления процессами иллюстрируются трехфазной диаграммой Джурана [Juran 88]. Джуран разделяет управление качеством на три основных управленческих процесса [Juran 88]. Целью планирования качества является обеспечение разработчиков ПО средствами создания продукта, способного удовлетворить потребности заказчика. Разработчики производят продукт, но вследствие недостатка качества требуется провести некоторую доработку. Подобная трата сил носит хронический характер, потому что процесс именно так и запланирован. Для предотвращения серьезного ухудшения состояния проекта проводится контроль качества. Показанные на рис. 2.2 спорадические перепады процесса отражают операции «пожаротушения». Хроническая трата сил дает потенциал для дальнейшего усовершенствования; использование этой возможности называется улучшением качества. Основной задачей и центром внимания уровня 4 является контроль над процессом. Производственный процесс управляется таким образом, что он стабильно функционирует внутри области контроля качества. Существуют некоторые неизбежные хронические потери ресурсов и возможен разброс измеренных результатов, которые следует контролировать, но в целом система достаточно стабильна. В этом случае применяется концепция управления особыми причинами отклонений. Поскольку процесс стабилен и измеряем, то при возникновении исключительной ситуации «особая причина» отклонения должна быть выявлена и устранена. Второй задачей и центром внимания уровня 5 является постоянное усовершенствование процесса. Производственный процесс изменяется с целью увеличения качества, а область контроля качества сдвигается. Устанавливается новая базовая линия производительности, уменьшающая хронические потери ресурсов. Опыт, извлеченный из улучшения подобного процесса, применяется в планировании будущих процессов. В этом случае используется концепция устранения общих причин отклонений. В любой системе из-за случайных отклонений существуют хронические потери ресурсов в виде необходимости доработки. Потери неприемлемы; организованные усилия по их предотвращению приводят к изменению системы, т. е. к усовершенствованию процесса путем изменения «общих причин» неэффективности. Ожидается, что организации, достигающие наиболее высоких уровней зрелости CMM, должны обладать процессом, который способен производить ПО высокой надежности с предсказуемыми затратами и в пределах рабочих графиков. По мере роста понимания того, как достигаются наиболее высокие уровни зрелости, одни существующие группы ключевых процессов будут уточнены, а другие могут быть добавлены в модель. Концепция CMM произошла из идей о процессах, впервые появившихся в промышленности, но, в отличие от промышленных процессов, процессы разработки не заостряют внимание на тиражировании своей продукции — они нацелены на вопросы проектирования и являются наукоемкой деятельностью [Curtis 88]. Рис. 2.2. Трехфазная диаграмма Джурана: планирование, контроль и улучшение качества 2.3. Представление о производственном процессе Инженеры-разработчики воспринимают состояние проекта детально, так как они обладают непосредственной информацией о его статусе и производительности. Однако в больших проектах уровень их понимания снижается, ограничиваясь лишь той областью, за которую они лично ответственны. Лица, непосредственно не участвующие в проекте, например старшие менеджеры, не имеют полного представления о процессах проекта и полагаются только на периодические обзоры, из которых черпают информацию о текущем состоянии проекта. На рис. 2.3 изображен уровень представления о состоянии и производительности проекта, доступный для руководящего звена на каждом уровне зрелости программного процесса. Каждый последующий уровень зрелости инкрементно уточняет представление о производственном процессе. Рис. 2.3. Представление руководства о производственном процессе на каждом уровне зрелости На уровне 1 производственный процесс является полностью аморфной сущностью — по сути дела, черным ящиком — и представление о процессах проекта весьма ограничено. Так как поэтапная очередность работ плохо определена, менеджеры тратят чрезвычайно много усилий на выяснение статуса развития проекта и текущего хода работ (эти оценки могут проводиться и без получения полной информации, если ее сбор затрагивает вопросы конфиденциальности или безопасности организации). Требования поступают в производственный процесс неконтролируемым образом, что отражается на продукте. Разработка ПО часто представляется чем-то сродни черной магии (особенно менеджерами, слабо знакомыми с программным обеспечением). На уровне 2 контролируются требования заказчиков и промежуточные продукты, а также установлены основные практики управления проектом. Эти средства управления проектом дают фрагментарное представление о нем. Процесс создания ПО может рассматриваться как последовательность черных ящиков, дающая руководству представление о результатах только во время перехода операций между ящиками (т. е. при прохождении основных этапов проекта). Хотя руководство может и не быть в курсе относительно происходящего в черных ящиках, продукты процесса и контрольные точки, подтверждающие функционирование процесса, идентифицированы и известны. Руководство реагирует на проблемы по мере их возникновения. На уровне 3 становится видимой внутренняя структура черных ящиков, т. е. задач определенного производственного процесса. Эта внутренняя структура отражает способ, применения стандартного производственного процесса организации для конкретного проекта. Как менеджеры, так и инженеры понимают свои роли и сферы ответственности в пределах процесса и то, как их операции взаимодействуют друг с другом. Руководство заблаговременно готовится к потенциальным рискам. Лица, не задействованные в проекте, могут получить точное и быстрое обновление сведений о состоянии проекта, так как определенные процессы обеспечивают значительную прозрачность всех проектных работ. На уровне 4 определенные производственные процессы количественно контролируются с помощью соответствующих программных средств. Менеджеры могут количественно отслеживать ход проекта и возникающие проблемы. Они получают объективную количественную основу для принятия решений. Точность прогнозирования результатов неуклонно увеличивается по мере уменьшения отклонений производственного процесса. На уровне 5 постоянно тестируются контролируемым образом новые и усовершенствованные технологии создания программного обеспечения, нацеленные на рост продуктивности и качества. Дисциплинированные изменения становятся образом жизни, а неэффективные и приводящие к дефектам операции выявляются, заменяются и пересматриваются. Представление о проекте не ограничивается существующими процессами, но также учитывает их потенциальные изменения. Менеджеры могут количественно оценить и затем отследить влияние и эффективность изменений. 2.4. Продуктивность процесса и прогнозирование производительности Зрелость производственного процесса организации помогает предсказать, сумеет ли проект достичь поставленных целей. Проекты организаций, находящихся на уровне 1, могут значительно различаться по затратам и графикам, а также по функциональности и качеству созданного продукта. Как показано на рис. 2.4, по мере развития производственного процесса наблюдаются три основных улучшения в достижении намеченных целей. Прежде всего, с ростом зрелости уменьшаются различия между целевыми и фактическими результатами. Например, если десять проектов одного и того же размера было намечено завершить к 1 мая, то с ростом зрелости организации средняя дата завершения будет все точнее соответствовать намеченной дате. Организации 1-го уровня зрелости часто не соблюдают установленные сроки завершения работ, и иногда в достаточно широких пределах, в то время как организации уровня 5 должны быть способны выполнить работы точно к намеченному сроку. Подобное происходит потому, что организации уровня 5 используют тщательно разработанный производственный процесс, проводимый с известными параметрами, а выбор целевой даты основан на обширных данных о процессах и их производительности (рис. 2.4, эффект соответствует площади под кривой для сегмента, расположенного справа от целевой линии). Во-вторых, с ростом уровня зрелости уменьшаются отклонения фактических результатов от запланированных. Например, для организаций уровня 1 даты завершения проектов аналогичного объема непредсказуемы и могут варьироваться в достаточно широких пределах. Подобные проекты, выполняемые организациями уровня 5, будут завершаться со значительно меньшим разбросом сроков. Сужение отклонения происходит на более высоких уровнях зрелости, потому что практически все проекты выполняются с соблюдением контролируемых параметров, уравнивающих разброс продуктивности производственного процесса организации по затратам, графикам работ, а также функциональности и качеству разработанного ПО (рис. 2.4, эффект соответствует сегменту площади под кривой, сконцентрированному вблизи целевой линии). В-третьих, результаты улучшаются с ростом уровня зрелости организации. Это означает, что развитие организации-разработчика позволяет сократить затраты, ускорить процесс разработки, повысить производительность работы и качество программных продуктов. Процесс разработки у организации уровня 1 может быть достаточно длительным из-за объема доработки, требующейся для исправления ошибок. В противоположность этому организация 5-го уровня зрелости может использовать технологии непрерывного усовершенствования процесса и предотвращения дефектов в целях повышения эффективности производственного процесса и устранения дорогостоящей доработки, что позволяет сократить срок разработки (рис. 2.4, горизонтальное смещение целевой линии от исходного состояния). Рис. 2.4. Продуктивность процесса разработки ПО в соответствии с уровнями зрелости Усовершенствования в прогнозировании результатов проекта, представленные на рис. 2.4, предполагают, что итоги проекта становятся более предсказуемыми по мере устранения помех производственного процесса, часто выражающихся в виде доработки. Общую картину могут усложнить системы, не имеющие аналогов, поскольку новые технологии и приложения увеличивают отклонения производственного процесса, что приводит к снижению его продуктивности. Однако даже в случае новых систем инженерные и управленческие практики, характерные для более зрелых организаций, помогают выявить и решить проблемы на более ранних стадиях цикла разработки, чем они могли бы быть обнаружены в менее зрелых организациях. Раннее обнаружение недостатков способствует стабильности и качеству выполнения проекта путем устранения необходимости доработки на его поздних стадиях. Неотъемлемой частью управления проектом в ходе зрелого производственного процесса является управление рисками. В некоторых случаях зрелость процесса выражается в выявлении неудачных проектов на ранних стадиях жизненного цикла ПО, что позволяет минимизировать потери инвестиций. 2.5. Пропуск этапов развития организации Описания уровней зрелости в СММ содержат характеристики организации, достигшей соответствующего уровня. Каждый уровень образует основу для более рациональной и эффективной реализации процессов на последующих уровнях. Однако организации могут с пользой для себя использовать процессы, описанные на уровнях зрелости, более высоких в сравнении с достигнутыми. Такие технологические процессы, как анализ требований, проектирование, кодирование и тестирование не обсуждаются в СММ вплоть до уровня 3, однако эти операции должны выполняться даже организациями первого уровня. Организации уровней 1 и 2 могут получать преимущества от проведения экспертных оценок (уровень 3), выполнения анализа Парето (уровень 4) или испытаний новых технологий (уровень 5). Предписания по переходу организации с уровня 1 на уровень 2 часто содержат рекомендации по созданию группы инженерии производственного процесса, которая является атрибутом организаций уровня 3. Измерения, хотя и описываются в основном на уровне 4, являются также неотъемлемой частью более низких уровней зрелости. Однако эти процессы не могут реализовать весь свой потенциал до тех пор, пока для них не будет заложен соответствующий фундамент. Например, чтобы достигнуть максимальной эффективности экспертных оценок, необходимо проводить их последовательно даже в самых критических ситуациях. В описания уровней зрелости входят те проблемы, которые доминируют на соответствующем уровне. В организации первого уровня доминируют управленческие проблемы, остальные вопросы скрываются за сложностями планирования и управления проектами разработки ПО. Пропуск уровней зрелости нежелателен, поскольку каждый уровень формирует основу, необходимую для достижения следующего уровня. Модель СММ определяет уровни, через которые должно пройти развитие организации прежде, чем она сможет создать культуру высокоэффективной разработки ПО. Процессы, не имеющие соответствующего фундамента, могут подвести в наиболее критические моменты и не создают основы для дальнейшего усовершенствования. Попытки организации первого уровня внедрить определенный производственный процесс (уровень 3) раньше, чем будет установлен повторяемый процесс (уровень 2), обычно заканчиваются неудачей, поскольку менеджеры проектов попадают в крайне жесткие условия графика и бюджета. В этом кроется основная причина для того, чтобы сконцентрировать усилия на процессах управления прежде, чем заниматься инженерными процессами. Определение и внедрение инженерного процесса может показаться более простым, чем внедрение процесса управления (особенно с точки зрения технических сотрудников), но без строгой дисциплины управления инженерный процесс разваливается под давлением сроков и бюджета [Humphrey 88]. Обычно безуспешными являются попытки организации реализовать управляемый процесс (уровень 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 приведено краткое описание общих шагов обоих методов. Первым шагом является выбор оценивающей группы. Эта группа должна пройти обучение фундаментальным концепциям СММ, а также специфическим особенностям метода внутренних либо внешних оценок производственного процесса. Члены группы должны обладать профессиональными знаниями в области инженерии и управления разработкой. Второй шаг состоит в заполнении представителями оцениваемой организации опросного листа для выявления уровня зрелости и других диагностических документов. После завершения этой операции группа оценки выполняет анализ ответов (шаг 3), который подытоживает результаты опроса и определяет области дальнейших исследований. Исследуемые области соответствуют группам ключевых процессов СММ. Теперь группа готова к посещению оцениваемой организации (шаг 4). Опираясь на результаты анализа опроса, группа интервьюирует ряд сотрудников и рассматривает документацию, добиваясь понимания производственного процесса, используемого в оцениваемой организации. При проведении опросов, рассмотрении и синтезировании информации, полученной из опросов и документов, члены группы руководствуются группами ключевых процессов и ключевыми практиками СММ. При определении, решает ли свои цели реализация групп ключевых процессов в организации, группа использует профессиональную оценку 3. Если обнаружены четкие расхождения между ключевыми практиками СММ и процессами организации, оценивающая группа должна документировать обоснования своей оценки этой группы ключевых процессов. Рис. 4.1. Общие шаги при проведении внутренних и внешних оценок производственного процесса 3 Эти оценки могут проводиться и без получения полной информации, если ее сбор затрагивает вопросы конфиденциальности или безопасности организации. В конце своего визита группа оценки составляет список полученных результатов (шаг 5), определяющий сильные и слабые стороны производственного процесса организации. При внутренней оценке производственного процесса эти данные становятся основанием для рекомендаций по усовершенствованию производственного процесса, при внешней оценке — включаются в анализ рисков, выполняемый организацией-заказчиком. В заключение группа оценки подготавливает профиль групп ключевых процессов (шаг 6), в котором показаны области организации, удовлетворяющие и не удовлетворяющие целям групп ключевых процессов. Группа ключевых процессов может считаться удовлетворительной, но все же иметь замечания по своей реализации, если эти замечания не выявляют крупных проблем, препятствующих достижению каких-либо целей данной группы ключевых процессов. Ниже приведен краткий список общих черт внутренней и внешней оценок производственного процесса: посещение организации опирается на результаты опросного листа для выявления уровня зрелости; при исследовании организации группа оценки руководствуется моделью СММ; результаты оценки определяют сильные и слабые стороны производственного процесса, выражаясь в терминах групп ключевых процессов СММ; составляется профиль, основанный на анализе возможности достижения целей групп ключевых процессов; результаты оценки, выраженные полученными результатами и профилем групп ключевых процессов, представляются соответствующей аудитории. 4.2. Различия между внутренними и внешними оценками производственного процесса Несмотря на эти сходства, результаты внутренней и внешней оценки могут расходиться даже в случае успешного применения одного и того же метода. Одной из причин этого является то, что объем внутренней и внешней оценки может варьироваться. Во-первых, сначала необходимо определить исследуемую организацию. В случае крупной компании возможно несколько различных определений «организации». При определении границ организации можно брать за основу общее высшее руководство, общее географическое расположение, общую предметную область или другие соображения. Во-вторых, даже в случае одной и той же организации объем оценки может зависеть от совокупности выбранных проектов. Например, сначала подразделение компании может пройти внутреннюю оценку, а оценивающая группа, соответственно, будет опираться на данные, полученные в рамках этого подразделения. Впоследствии линия продуктов данного подразделения может подвергаться внешней оценке и оценивающая группа будет оперировать данными, полученными в гораздо более узких рамках. Сравнение этих результатов без понимания контекста оценок было бы весьма затруднительным. Внутренние и внешние оценки производственного процесса отличаются по своим мотивам, задачам, последствиям и принадлежности результатов. Эти факторы приводят к существенным различиям в динамике и объеме опросов, собираемой информации и формулировке результатов. Существенные различия этих методов выявляются также при детальном изучении применяемых процедур. Обучение проведению внутренних оценок не может подготовить группу к выполнению внешних оценок, и наоборот. Внутренние оценки производственного процесса проводятся в открытой среде, готовой к сотрудничеству. Их успех зависит от совместного желания руководства и профессиональных сотрудников улучшить свою организацию. Задачи оценок заключаются в том, чтобы устранить существующие проблемы и помочь менеджерам и инженерам усовершенствовать организацию. Хотя при этом ценность опросного листа сохраняется, благодаря концентрации внимания оценивающей группы на вопросах уровня зрелости, акцент работы по оценке смещается на системные и бессистемные опросы, являющиеся основными инструментами для понимания производственного процесса организации. Кроме выявления стоящих перед организацией проблем производственного процесса, наиболее ценными результатами внутренней оценки являются концентрация внимания всего персонала на производственном процессе, а также мотивация и энтузиазм при выполнении плана корректирующих действий. С другой стороны, внешние оценки производственного процесса выполняются в среде, более ориентированной на аудит. Их задача связана с финансовыми аспектами, поскольку рекомендации группы влияют на выбор подрядчика или на установление премиальных выплат. Акцент при этом делается на документированном аудиторском отчете, который раскрывает производственный процесс, фактически реализованный в организации. Однако это не означает невозможности сравнения результатов внутренней и внешней оценок производственного процесса. Поскольку оба метода основаны на модели СММ, точки сравнения и различий должны быть очевидны и объяснимы. 4.3. Другие способы использования CMM при усовершенствовании производственного процесса Для групп инженерии производственного процесса или тех, которые пытаются улучшить свой процесс, модель СММ особенно ценна в областях планирования действий, реализации планов действий и определения процессов. При планировании действий члены группы инженерии производственного процесса, вооруженные знанием проблем своего процесса и бизнес-среды, могут сравнить используемые практики с целями групп ключевых процессов СММ. При этом ключевые практики следует проверять относительно корпоративных целей, приоритетов руководства, уровня выполнения практики, корпоративного значения реализации каждой практики и совместимости практики с корпоративной культурой. Затем группа инженерии производственного процесса должна определить необходимые усовершенствования процесса и способы внесения изменений, а также добиться необходимого одобрения со стороны заинтересованных лиц. В этой работе модель СММ обеспечивает исходный пункт для обсуждения усовершенствования процесса и помогает сгладить несопоставимые предложения, касающиеся общепринятых практик проектирования ПО. При реализации плана действий модель СММ и ее ключевые практики могут использоваться группами для создания частей рабочего плана действий и для определения производственного процесса. ГЛАВА 5. БУДУЩИЕ НАПРАВЛЕНИЯ РАЗВИТИЯ СММ Достижение более высоких уровней зрелости производственного процесса является постепенным и требует от организации долгосрочных обязательств по непрерывному усовершенствованию процесса. На построение фундамента для непрерывного усовершенствования производственного процесса и внедрение соответствующей культуры организации-разработчики могут затратить более 10 лет. Хотя подобная десятилетняя программа усовершенствования процесса кажется чуждой для большинства американских компаний, именно такой объем работ требуется для построения зрелых организаций-разработчиков. Этот срок согласуется с опытом в других отраслях, таких, как американская автомобильная промышленность, которая добилась значительных достижений в области зрелости производственного процесса [Gabor 90]. 5.1. Что находится вне области рассмотрения CMM Модель СММ не является панацеей [Brooks 87] и не включает в себя все вопросы, значимые для успешных проектов. Например, в настоящее время СММ не рассматривает опыт в конкретных предметных областях, не пропагандирует конкретных технологий разработки и не содержит рекомендаций по выбору, найму, мотивации и сохранению компетентных сотрудников. Эти вопросы жизненно важны для успеха проекта и некоторые из них были проанализированы в другом контексте [Curtis 90]. Однако они не были интегрированы в СММ. Модель СММ была специально разработана с намерением создать упорядоченную, дисциплинированную структуру, внутри которой можно решать проблемы управления разработкой и инженерии процесса. 5.2. Ближайшие задачи Учебные материалы и курсы по СММ должны представляться на крупных конференциях и семинарах в США, поддерживая среди специалистов программной отрасли должный уровень осведомленности о модели СММ и связанных с ней продуктах. Для включения в СММ должны быть разработаны и/ или пересмотрены новые инструменты (например, опросный лист для выявления уровня зрелости), а также программы обучения внутренней и внешней оценке производственного процесса. В ближайшем будущем развитие СММ будет ориентировано на создание адаптированных версий модели, таких как СММ для малых проектов и/или малых организаций. Модель СММ версии 1.1 выражена нормативными практиками крупных организаций, работающих по государственным контрактам, и эти практики должны быть адаптированы к потребностям организаций, отличающихся от этого шаблона. 5.3. Долговременные задачи В течение следующих нескольких лет будет продолжено расширенное тестирование модели СММ путем ее использования во внутренних и внешних оценках производственных процессов. По мере необходимости будут разрабатываться и пересматриваться продукты на основе СММ и учебные материалы по модели. СММ является живым документом, который будет совершенствоваться, но ожидается, что его версия 1.1 останется базовой линией, по крайней мере, до 1996 года. Это обеспечит разумный и реалистичный баланс между необходимостью в стабильности модели и потребностью в ее непрерывном усовершенствовании. В следующей, второй версии СММ основное внимание будет уделено улучшению общей модели. Хотя пересмотру могут подвергнуться все уровни модели, основной акцент будет сделан на уровнях 4 и 5. В настоящее время группы ключевых процессов уровней 2 и 3 практически полностью определены. Поскольку по оценкам лишь немногие организации находятся на уровнях 4 и 5 [Humphrey 91a, Kitson 92], о характеристиках таких организаций известно немного. По мере сотрудничества SEI с организациями, пытающимися понять уровни 4 и 5 и достигнуть их, практики этих уровней будут уточняться. Модель СММ также может стать многомерной, объединяя вопросы технологии и человеческих ресурсов. Институт SEI сотрудничает с Международной организацией по стандартизации (ISO) в работе по созданию международных стандартов для внутренней и внешней оценок производственного процесса и его усовершенствования. Развитие стандартов ISO повлияет на СММ версии 2, а разработки SEI в области процессов будут влиять на работу ISO. 5.4. Заключение Концепция непрерывного усовершенствования применяется к модели зрелости и ее практикам так же, как и к производственному процессу. Потенциальное влияние изменений СММ на сообщество разработчиков ПО будет тщательно учитываться, но сама модель СММ, опросный лист для выявления уровня зрелости, методы внутренней и внешней оценки производственного процесса будут продолжать развиваться по мере накопления опыта в усовершенствовании производственных процессов. Институт SEI намерен продолжить это развитие в тесном сотрудничестве с отраслевыми, государственными и академическими организациями. Модель СММ обеспечивает концептуальную структуру для упорядоченного и последовательного усовершенствования процессов управления и разработки программных продуктов. Она не гарантирует успешного создания программных продуктов или адекватного решения всех проблем в области инженерии разработки ПО. СММ определяет практики зрелого производственного процесса и приводит примеры практических (а в некоторых случаях — наиболее современных) достижений, но не является исчерпывающей или обязательной. СММ определяет характеристики эффективного производственного процесса, однако зрелая организация должна рассматривать все вопросы, значимые для успеха проекта, включая связанные с персоналом, технологией и производственным процессом. ГЛАВА 6. ИСПОЛЬЗОВАНИЕ СТРАНИЦ ОПИСАНИЯ КЛЮЧЕВЫХ ПРАКТИК Ключевые практики группируются по уровням зрелости. На каждый такой уровень приходится по краткому описанию, которое включает в себя описание уровня зрелости, список групп ключевых процессов для данного уровня зрелости и номер страницы с описанием. Каждая из групп ключевых процессов содержит: краткое описание, цели, ключевые практики. Ключевые практики, в свою очередь, сгруппированы по общим признакам в пять подгрупп («Обязательства по выполнению», «Необходимые предпосылки», «Выполняемые операции», «Измерение и анализ» и «Проверка внедрения»). Пример страницы описания ключевой практики приведен на рис. 3.1. Под ключевыми практиками понимают: Ключевые практики (как таковые) Ключевые практики, известные так же как ключевые практики верхнего уровня, устанавливают основные политики, процедуры и операции для каждой группы ключевых процессов. В тексте они выделены жирным шрифтом и пронумерованы в пределах соответствующей общей области. Так, например, первая ключевая практика в группе «Выполняемые операции» носит название Операция № 1. Подпрактики Подпрактики, также называемые подчиненными ключевыми практиками, располагаются в списке ниже ключевых практик верхнего уровня и описывают, что нужно сделать для внедрения основной практики. Кроме того, они помогают определить, насколько успешным оказалось внедрение тех или иных ключевых практик. Рис. 6.1. Примеры предложений, используемых в ключевых практиках ГЛАВА 7. ИНТЕРПРЕТАЦИЯ СММ 7.1. Интерпретация ключевых практик Цель применения ключевых практик не заключается в поддержке какой-либо определенной модели жизненного цикла разработки ПО, организационной структуры, разделения сфер ответственности, либо управленческого/технического подхода к разработке ПО, и не требует вышеперечисленного. Назначение ключевых практик состоит скорее в том, чтобы описать основные элементы эффективной модели процесса разработки ПО. Ключевые практики призваны реализовать принципы, применимые к самым разным проектам, организациям и типичным программным приложениям, принципы, чья действенность не сойдет на нет со временем. Исходя из этого, выбранный нами подход заключается исключительно в описании этих принципов. Их внедрение и применение остается делом конкретных организаций и зависит от специфики корпоративной культуры и предшествующего опыта управленческого и технического персонала. Хотя и предполагается, что ключевые практики не зависят от частных случаев применения, однако будет не лишним привести некоторые примеры и термины, чтобы добиться максимальной ясности в изложении предмета. Данный раздел посвящен описанию значения ролей, сфер ответственности, отношений, продуктов и операций, принятых в CMM. Лица, использующие ключевые практики в рамках своих организаций, должны разбираться в этих терминах и правильно применять их для работы над конкретными проектами с учетом особенностей деловой среды. В Приложении Б приведен глоссарий, содержащий определения терминов (включая термины, описываемые в данном разделе, равно как и в прочих). 7.2. Интерпретация разделов В рамках любого раздела ключевых практик для обеспечения преемственности и согласованности используются определенные фразы и условные термины. Основные структурные термины описаны ниже и сгруппированы по разделам. 7.2.1. Обязательства по выполнению Положения политики Там, где используется термин «положения политики», подразумевается, что проект следует документированной политике, описывающей практики из данной группы ключевых процессов. Таким образом, подчеркивается связь между обязательствами организации и проектами, с помощью которых и решаются стоящие перед ней задачи. Подпрактики для положений политик обычно описывают в сжатой форме операции, о которых идет речь в связи с той или иной группой ключевых процессов. Обычно подпрактики удобны для реализации установления процесса посредством документированной политики. Операции некоторых групп ключевых процессов (например, «Координация производственного процесса организации») затрагивают скорее организацию, нежели проект. В этих случаях формулировка положения политики меняется и означает организацию, придерживающуюся документированной политики. Лидерство В некоторых группах ключевых процессов обязательства по выполнению содержат положение о порядке назначения роли лидера (например, менеджера проекта) или описывают определенные спонсорские действия, которые необходимы для успешной реализации данной группы ключевых процессов. 7.2.2. Необходимые предпосылки Ресурсы и финансирование Большинство групп ключевых процессов содержат ключевую практику, отражающую потребность в адекватных ресурсах и финансировании для выполнения операций данной группы ключевых процессов. Эти ресурсы и финансирование описываются посредством подпрактик и, как правило, распадаются на три категории: доступ к особым навыкам, адекватное финансирование и доступ к инструментарию. В качестве примеров перечислены инструменты, которые могут потребоваться при выполнении операций из группы ключевых процессов. Использование термина «финансирование» вместо слова «бюджет» подчеркивает, что нас прежде всего интересуют собранные и использованные, а не просто «обещанные» средства. Обучение В контексте CMM термин «обучение» обладает более широким, нежели обычное, значением. Обучение имеет целью наделить сотрудника той или иной квалификацией с помощью специального инструктажа и практических занятий. Обучение может сочетать в себе формальные и неформальные средства передачи сотрудникам знаний и умений. Хотя проведение семинаров является наиболее распространенной системой повышения квалификации, в СММ также используются такие средства, как обучающие видеофильмы, компьютерные программы и формализованные программы наставничества. Группа ключевых процессов «Программа обучения» описывает практики, относящиеся к вышеперечисленным методам обучения. Для описания обучения в рамках СММ обычно применяются два шаблона. На втором уровне используется выражение «проходить обучение». Начиная с третьего уровня используется выражение «проходить требуемое обучение». Использование двух разных шаблонов отражает тот факт, что обучение на втором уровне, скорее всего, еще не установлено в рамках организации. Начиная с третьего уровня, мероприятия по обучению должны направляться ключевыми практиками «Программы обучения». Во всех группах ключевых процессов возможные направления (темы, предметы) обучения представлены в виде примеров в рамках, поскольку различные организационные ситуации обычно приводят к появлению потребности в различных видах обучения. Ориентация В некоторых группах ключевых процессов имеются ключевые практики, описывающие ориентацию. Термин «ориентация» широко используется для обозначения передачи знания или навыка более низкого уровня по сравнению с обучением. Ориентация является обзором или, иначе говоря, введением в тему для тех, кто руководит или иным образом взаимодействует с сотрудниками, ответственными за выполнение задач в соответствующей области. Начальные условия Некоторые группы ключевых процессов содержат ключевые практики, отражающие потребность в начальных условиях. Так, например, для «Отслеживания хода проекта и контроля над ним» начальным условием является план разработки ПО. В некоторых случаях начальные условия представляют собой результат операций, относящихся к другой группе ключевых процессов. В других случаях это — объекты, которые отсутствуют в области проекта разработки ПО и которые требуется получить извне. Например, отнесенные к ПО системные требования являются начальным условием для «Управления требованиями». В соответствии с принципом выделения «ключевых» практик, для групп ключевых процессов приводятся не все начальные условия. В списке условий присутствуют лишь те, которые особенно значимы для внедрения той или иной группы. 7.2.3. Выполняемые операции Из всех общих признаков «Выполняемые операции» обладают наибольшим структурным разнообразием. Это вызвано тем, что действия по внедрению, относящиеся к этим группам ключевых процессов, варьируются по уровню детализации, организационному фокусу (например, выбор между фокусом на проекте или на организации), а также по потребностям в документации и планировании. Ниже приведены некоторые обобщения в отношении выполняемых операций. Типы планов В ключевых практиках описаны два основных типа планов: формальные (например, планы разработки ПО, обеспечения качества ПО и управления конфигурацией ПО) и неформальные (например, планы экспертной оценки, управления рисками и управления технологией). Неформальные планы обычно документируются либо в качестве составляющих определенного формального плана (например, план экспертной оценки может быть документирован как часть плана разработки ПО), либо в качестве дополнений к нему (например, план экспертной оценки может быть разделом плана разработки ПО). Формальные планы требуют более сложного управления как в отношении их создания, так и с точки зрения отслеживания их выполнения. При заключении контрактов эти планы могут отсылаться заказчику. Формальные планы В случае формальных планов для операций планирования обычно используются две ключевые практики: практика, требующая создания/ переработки плана в соответствии с документированной процедурой, и практика, требующая согласования операций определенной группы ключевых процессов с планом. Подпрактики, имеющие отношение к документированной процедуре, обычно описывают исходную информацию для разработки плана, а также меры, которые потребуется предпринять для обеспечения необходимой поддержки плана и принятия обязательств. Кроме того, в этих подпрактиках указываются лица, наделенные полномочиями на ревизию плана, и требуемые уровни менеджмента, на которых происходит его утверждение. Подпрактики, относящиеся к плану, описывают предполагаемое содержание обсуждаемого плана. В зависимости от типа плана и потребности в организационной гибкости для покрытия необходимых задач, описание содержания плана может проводиться с различными уровнями детализации. Неформальные планы Обычно для описания неформального плана достаточно одной ключевой практики. Подпрактики включают сведения о содержании плана, а также описывают процедуру его создания и переработки. В соответствии с документированной процедурой Документированная процедура обычно нужна для автоматизации повторяющихся задач и действий. Кроме того, использование такой процедуры позволяет сотрудникам с общими представлениями о той или иной группе ключевых процессов быстро научиться аналогичному способу выполнения задачи/операции. Это один из аспектов установления процесса. Формальность и уровень детализации документированной процедуры может варьировать в значительных пределах (от записанной от руки индивидуальной процедуры до формальной стандартизированной последовательности действий, выполняемых на уровне организации в целом). Формальность и уровень детализации зависят от лица, выполняющего соответствующую задачу или действие (отдельный сотрудник или их группа), частоты выполнения, важности и предполагаемого использования результатов, а также предполагаемых лиц, которым эти результаты будут направлены. Отнесенные к ПО системные требования Установленные для ПО системные требования обычно называются в СММ «установленными требованиями». Они представляют собой подгруппу системных требований, которые необходимо реализовать в программных компонентах системы. Установленные требования являются исходными данными для плана разработки ПО. Анализ требований к ПО позволяет уточнить и документировать установленные требования. Требования заказчика относятся ко всей системе, а не только к ПО. В рамках СММ центральным пунктом обсуждения требований заказчика являются те требования, которые должны быть реализованы в создаваемом ПО. Отнесение системных требований к ПО, аппаратным средствам и т. д., являясь стадией общего проектирования системы, обычно выполняется группой системного проектирования. Установленные требования включают в себя как технические (функциональные возможности, производительность и т. д.), так и прочие требования (сроки поставки, затраты и т. д.). Отношения типа «поставщик — заказчик» Заказчик может располагаться как внутри организации, так и вне ее (внутренний и внешний). Примером внутреннего заказчика является группа маркетинга, а примером внешнего, скажем, Министерство обороны. Пользователь может отличаться от заказчика, как это обычно и бывает в случае заключения контрактов с военными ведомствами. Модель СММ выражается в терминах внешнего поставщика, обеспечивающего систему критически важным программным компонентом. При необходимости границы между группами должны быть истолкованы должным образом, как это указано в СММ. Например, если по контракту требуется поставить только ПО, между разработчиками программы и заказчиком может быть прямая связь (без участия группы системного проектирования). В этом случае требования заказчика, системные и установленные требования могут являться синонимами. При этом сфера ответственности группы системного проектирования делится между заказчиком и группой разработчиков ПО. Отслеживание процесса разработки ПО с принятием корректирующих мер в сравнении с управлением ходом работ В разделе «Отслеживание хода проекта и контроль над ним» на втором уровне многие ключевые практики содержат следующие выражения: «…процесс отслеживается…принимаются корректирующие меры». В разделе «Интегрированное управление разработкой ПО» на третьем уровне, напротив, в большинстве аналогичных практик употребляется слово «управление». Различие между этими терминами отражает отсутствие в проекте законченного производственного процесса на втором уровне. В подобных случаях обычно требуются действия управленческого характера. В то же время на третьем уровне проекта производственный процесс уже полностью определен, четко обозначены отношения между различными программными продуктами, задачами и действиями. Управленческий подход больше подходит для прогнозирования проблем и их профилактики. При необходимости вмешательства его последствия учитываются на уровне всего производственного процесса, что позволяет более эффективно выбирать и вносить изменения. Контроль в сравнении с экспертной оценкой Контроль подразумевает оценку или утверждение промежуточного программного продукта — или набора программных продуктов — менеджерами, заказчиком и конечными пользователями, а также любыми другими заинтересованными лицами. Обычно ПО проверяется уже по окончании разработки. Что касается экспертной оценки, то программный продукт или набор таких продуктов в этом случае выносится на суд коллег разработчиков, которые стараются выявить дефекты ПО. Менеджеры, заказчик и конечные пользователи, как правило, не участвуют в подобной оценке. Экспертная оценка является неотъемлемой фазой разработки ПО. Она проводится для устранения дефектов на ранних стадиях разработки, что позволяет добиться повышения производительности труда и качества конечного продукта. Некоторые промежуточные программные продукты подлежат контролю, другие — экспертной оценке, а третьи — и тому и другому. Помещение в систему управления конфигурацией в сравнении с управлением и контролем Некоторые программные продукты, например архитектура и программный код, должны иметь установленные базовые линии в заранее установленные моменты времени. Эти базовые линии подлежат проверке и утверждению и служат основой для дальнейшего развития. Изменение элементов базовых линий необходимо тщательно контролировать. Использование базовых линий дает контроль над процессом разработки и вносит в него стабильность при взаимодействии с заказчиком. Действия с базовыми линиями иногда называют управлением конфигурацией базовых линий. При описании вышеуказанных программных продуктов применяется фраза «помещен в систему управления конфигурацией». Если управление конфигурацией является задачей самих разработчиков, то оно обычно называется управлением конфигурацией разработчиками. Некоторые продукты, чья конфигурация должна контролироваться разработчиками, могут быть помещены в систему управления конфигурацией по достижении заранее заданных фаз в ходе выполнения проекта. Фразу «помещен в систему управления конфигурацией» можно понимать как расширение системы управления конфигурацией разработчиками. Однако ее минимальная интерпретация отражает лишь потребность в управлении конфигурацией базовой линии. Некоторые программные продукты, такие как сметные оценки и планы разработки ПО, которые не обязательно должны помещаться в систему управления конфигурацией, все же требуют «управления и контроля». Данная фраза используется для того, чтобы охарактеризовать процесс идентификации программных продуктов, не входящих в базовую линию конфигурации и, соответственно, не подлежащих помещению в систему управления конфигурацией. Тем не менее управление такими продуктами необходимо, так как позволяет добиться строгого выполнения проекта. «Управляемый и контролируемый» означает, что в любой момент времени (прошлый или настоящий) известна версия используемого промежуточного продукта (т. е., реализован контроль версий), а внесение изменений происходит управляемым образом (т. е. реализовано управление изменениями). 7.2.4. Измерения и анализ Ключевые практики раздела «Измерения и анализ» описывают основные методы измерений, необходимых для определения статуса операций, относящихся к разделу «Выполняемые действия». Являясь неотъемлемой частью группы ключевых процессов, измерения приводятся сразу после раздела «Выполняемые действия». Примеры измерений приводятся в виде дополнительной информации, поскольку различным условиям выполнения проектов соответствуют, как правило, различные задачи и методы измерений. 7.2.5. Проверка внедрения Раздел «Проверка внедрения» обычно содержит ключевые практики, относящиеся к надзору со стороны руководителей проекта и высшего руководства, а также конкретные контрольные мероприятия, проводимые группой обеспечения качества или другими лицами в целях проверки должного качества выполнения ключевых практик. Регулярный надзор со стороны высшего руководства Регулярные проверки проводятся высшим руководством для получения своевременной информации о производственном процессе и его понимания на соответствующем уровне абстракции. Промежутки времени между проверками должны соответствовать потребностям организации и могут быть длительными, если в организации имеется работающая система оповещения об исключительных ситуациях. Объем и содержание этих проверок в значительной степени зависят от того, кто именно из старших руководителей принимает в них участие. Проверки со стороны старшего руководителя, отвечающего в организации за все проекты по разработке ПО, будут проводиться по другому графику и касаться других вопросов, нежели проверки со стороны исполнительного директора организации. Проверки со стороны высшего руководства также могут отличаться от проверок со стороны руководства проекта по своей тематике или более высоким уровнем абстракции. Регулярный и событийный надзор со стороны руководства проекта Используемая в этих ключевых практиках фраза «регулярный и событийный» призвана подчеркнуть тот факт, что на различных стадиях проекта и в зависимости от его характеристик необходимы различные виды проверок. Руководство проекта должно поддерживать постоянную осведомленность о состоянии производственного процесса и информироваться о значительных событиях проекта. К примерам можно отнести участие руководителей проекта в формальных инспекциях, например, в экспертном анализе или в проверках, касающихся вопросов организации процесса, таких как статус планирования работ по улучшению процессов или разрешение вопросов несоответствия процесса. Предполагается, что на уровне управления проектом надзор со стороны его руководителей будет носить более детальный характер, чем со стороны высшего руководства, что отражает более активное участие руководства проекта непосредственно в оперативном управлении. Действия по обеспечению качества ПО Определенные действия по проводимым группой обеспечения качества (SQA — software quality assurance) проверкам и/или аудиту описываются в виде ключевой практики. В некоторых случаях контрольные мероприятия по обеспечению качества не описываются — примерами могут служить группы ключевых процессов «Программа обучения» и «Межгрупповая координация». Эти группы ключевых процессов находятся на границе сфер компетенции организации и отдельного проекта разработки и не попадают в предполагаемую область полномочий группы обеспечения качества. 7.3. Интерпретация определения производственного процесса Определение производственного процесса является основой для достижения более высоких уровней зрелости. В данном разделе рассматриваются те аспекты определения производственного процесса, которые полезны при использовании связанных с ним ключевых практик, начиная с практики «Определение производственного процесса организации» на уровне 3. Фундаментальной концепцией определения процесса в CMM является стандартный производственный процесс организации (СППО). СППО является рабочим определением основного процесса, регулирующего установление общего производственного процесса для всех проектов разработки ПО внутри организации. В нем описаны основные элементы, которые должны войти в определение производственного процесса для каждого проекта разработки ПО. В нем также описываются отношения (например, порядок и интерфейсы) между этими элементами производственного процесса. СППО устанавливает единый способ выполнения всех производственных операций внутри организации и имеет большое значение для долговременной стабильности и прогресса предприятия. На уровне организации создается описание СППО, осуществляется его контроль, управление и усовершенствование, выполняемые формальным образом. На уровне проекта в центре внимания оказывается эффективность проектного производственного процесса и его польза для проекта. Производственный процесс проекта — это производственный процесс, используемый в конкретном проекте. Он представляет собой четко охарактеризованный и понятный производственный процесс, описанный в терминах программных стандартов, процедур, инструментов и методов. Этот процесс разрабатывается путем адаптации СППО к конкретным характеристикам проекта. Ключевые практики в определении производственного процесса организации (ППО) выражаются в терминах, отражающих стабильный и в то же время гибкий подход к определению процесса. Этот подход проиллюстрирован на рис. 4.1, а его ключевые элементы описаны в следующих разделах. 7.3.1. Концепции определения процесса Возможность разрабатывать и сопровождать процессы таким же образом, что и продукты, является фундаментальной концепцией подхода SEI к определению процессов. В эту концепцию входят: ? требования, определяющие описываемый процесс; ? архитектурные и проектировочные соображения, влияющие на определение процесса; ? реализация спроектированного процесса в условиях отдельного проекта или в рамках всей организации; ? проверка описания процесса с помощью измерений; ? развертывание процесса в организации или проекте, для которых разрабатывался данный процесс. Используя аналогию с разработкой продукта, схема разработки и сопровождения процесса эволюционировала и преобразовала эти концепции в более подходящие для разработки процесса (подобно специфической терминологии, используемой для разработки встроенных систем реального времени в сравнении с системами управления информацией). Ключевые элементы этой структуры проиллюстрированы на рис. 4.1 и кратко описаны ниже. Дополнительную информацию о концепциях определения процесса, разработанных внутри сообщества проектировщиков процессов, можно найти в статье «Software Process Development and Enactment: Concepts and Definitions» («Разработка и нормативы производственного процесса: концепции и определения»), [Фейлер, 92]. Рис. 7.1. Концептуальная структура производственного процесса, используемая в CMM 7.3.2. Концепции, касающиеся основных средств производственного процесса организации Основные средства производственного процесса организации (ППО) Организация устанавливает и сопровождает набор основных средств производственного процесса, как показано на рис. 4.1. К этим основным средствам относятся: СППО (включая элементы и архитектуру производственного процесса); утвержденные описания жизненных циклов ПО; инструкции и критерии для адаптации СППО; база данных ППО; библиотека документации по производственным процессам. Эти основные средства используются для разработки, сопровождения и внедрения производственных процессов, определенных для проектов. В зависимости от используемого подхода к установлению СППО, организация может компоновать эти основные средства различными способами. Например, в СППО может входить описание жизненного цикла ПО. Другим примером может служить хранение библиотеки документации в базе данных ППО. Стандартный производственный процесс организации (СППО) Термин СППО является рабочим определением процесса, который устанавливает общий производственный процесс для всех проектов разработки ПО внутри организации. В нем описаны основные элементы, которые должны войти в определение производственного процесса для каждого проекта разработки ПО. В нем также описываются отношения (например, порядок и интерфейсы) между этими элементами производственного процесса. СППО помогает установить в организации общий производственный процесс для проектов разработки и сопровождения ПО. Отношения между элементами производственного процесса иногда называются «архитектурой производственного процесса». СППО формирует основу для производственных процессов отдельных проектов. Он обеспечивает связность производственных операций и служит источником справочной информации для измерений и долгосрочного усовершенствования производственных процессов, используемых в организации. Архитектура производственного процесса Представляет собой высокоуровневое (т. е. общее) описание СППО, описывает порядок, интерфейсы, внутренние зависимости и другие отношения между элементами СППО, а также интерфейсы, зависимости и другие отношения с другими внешними процессами (например, проектированием систем, проектированием оборудования, управлением контрактами). Элемент производственного процесса Представляет собой составляющий элемент описания процесса. Каждый элемент процесса соответствует четко определенному и ограниченному набору тесно связанных задач (например, элементы оценки ПО, архитектуры ПО, кодирования, экспертной оценки). Описания элементов процесса могут представлять собой заполняемые шаблоны, подлежащие завершению фрагменты, абстрактные рассуждения, которые следует уточнить, или же полные описания, которые могут быть изменены при необходимости. Утвержденное описание жизненных циклов ПО Жизненный цикл программного обеспечения представляет собой период времени, который начинается с рождения программного продукта и завершается, когда этот продукт более не используется, включает в себя следующие стадии: разработка концепции, формулирование требований, проектирование, реализация, тестирование, установка и отладка, эксплуатация и сопровождение, иногда — вывод из эксплуатации [стандарт IEEE-STD-610]. Поскольку организация может производить ПО для различных договорных и/или коммерческих клиентов и пользователей, единый жизненный цикл ПО может оказаться неприемлем для каких-либо ситуаций. Поэтому организация может определить для использования в проектах несколько жизненных циклов ПО. Эти циклы обычно заимствуются из литературы по разработке ПО, а затем адаптируются к нуждам организации. В сочетании с СППО жизненные циклы ПО используются при разработке производственного процесса проекта. Инструкции и критерии адаптации СППО описывается на общем уровне, не всегда применимом для проекта. Для выбора жизненного цикла ПО из рекомендованных к использованию, а также для адаптации и уточнения СППО и выбранного жизненного цикла к конкретным характеристикам проекта создаются инструкции, которыми руководствуются в проектах разработки ПО. С помощью этих инструкций и критериев для всех проектов разработки ПО формируется общая основа планирования, реализации, оценки, анализа и усовершенствования производственных процессов. База данных производственного процесса организации Формируется в целях сбора и использования информации по производственным процессам и их промежуточным программным продуктам, в частности об их отношении к СППО, содержит (непосредственно или в виде ссылок) фактические данные измерений и информацию, необходимую для понимания этих данных и оценки их корректности и применимости. Примерами данных о процессе и промежуточном продукте могут служить оценки объема ПО, объема разработки и затрат, фактические данные по этим показателям, данные о производительности, границы и эффективность экспертной оценки, количество и серьезность дефектов, обнаруженных в программном коде. Библиотека документации по производственному процессу Формируется для: 1) хранения документов процесса, обладающих потенциальной ценностью для текущего и будущих проектов, особенно в их связи с СППО; 2) совместного использования этих документов в рамках организации. Эта библиотека содержит образцы и фрагменты документов, которые могут оказаться полезными в будущих проектах при адаптации СППО. Примеры могут раскрывать такие темы, как производственный процесс проекта, стандарты, процедуры, планы разработки ПО, планы измерений и учебные материалы процесса. Библиотека является важным ресурсом, который способен сократить объем работ при запуске нового проекта, предлагая примеры успешных проектов в качестве исходного шаблона. 7.3.3. Концепции, связанные с производственным процессом проекта Описание производственного процесса проекта Является стандартным определением производственного процесса, используемого в проекте. Данный процесс представляет собой четко охарактеризованный и понятный производственный процесс, описанный в терминах программных стандартов, процедур, инструментов и методов. Он разрабатывается путем адаптации СППО к конкретным характеристикам проекта. Эта адаптация включает в себя выбор утвержденного организацией жизненного цикла ПО и модификацию СППО с учетом конкретных характеристик проекта. Производственный процесс проекта обеспечивает основу для планирования, выполнения и усовершенствования действий руководителей и технического персонала при выполнении проектных задач и операций. Возможны ситуации, когда в одном проекте имеется несколько производственных процессов (например, для рабочего ПО и для ПО поддержки тестирования) или когда один процесс определен для нескольких подобных проектов. Стадии Стадия является результатом раздела процесса разработки ПО на управляемые части и представляет собой поддающийся интерпретации и оценке набор связанных задач, выполняемых в проекте. Стадия обычно считается подразделом жизненного цикла ПО и часто завершается формальной проверкой, выполняемой перед переходом на следующую стадию. Задачи Подлежащая выполнению работа разбивается на задачи. Задача представляет собой четко определенную часть работы производственного процесса, с помощью которой можно четко определить статус проекта по явно выраженной контрольной точке, имеет свои критерии подготовленности (предусловия) и завершения (постусловия). В контексте определения процесса задача является четко определенным компонентом определенного процесса. Все задачи могут считаться операциями, но не все операции достаточно четко определены, чтобы считаться задачами (хотя операция может включать в себя задачу). Поэтому на втором уровне ключевых практик вместо термина «задача» используется менее строгий термин «операция». Операции Операция представляет собой любой шаг или функцию, чье мысленное или физическое выполнение имеет поставленную цель. Операции включают в себя всю работу руководителей и технического персонала по выполнению задач проекта и организации. Промежуточные программные продукты (результаты проекта) Результаты действий и задач обычно состоят из промежуточных продуктов разработки. Промежуточный продукт разработки представляет собой любой артефакт, созданный в результате определения, сопровождения или выполнения производственного процесса, включая его описания, планы, процедуры и компьютерные программы с соответствующей документацией, которые могут предназначаться или не предназначаться для поставки заказчику или конечному пользователю. Промежуточные продукты являются входной информацией для следующего шага процесса или предоставляют архивную информацию по проекту разработки для ее использования в будущих проектах. Примеры промежуточных программных продуктов включают в себя планы, оценки, данные по фактической работе, документацию по корректирующим действиям и документы требований. Те из них, которые поставляются заказчику или конечному пользователю, носят название программных продуктов. Программные продукты Представляют собой полный набор (или любой из его элементов) компьютерных программ, процедур, соответствующей документации и данных, который предназначен для поставки заказчику или конечному пользователю [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. Организационные роли Роль представляет собой элемент определенной сферы ответственности, присваиваемый одному или нескольким лицам. В ключевых практиках часто используются следующие описания ролей: Менеджер Роль менеджера заключается в техническом и административном руководстве и контроле над лицами, выполняющими задачи и действия внутри сферы ответственности менеджера. К традиционным функциям менеджера относятся планирование, распределение ресурсов, организация, управление и контроль в пределах сферы его ответственности. Руководитель высшего звена Выполняет управляющую роль на достаточно высоком организационном уровне, более концентрируясь на вопросах длительной жизнеспособности организации, чем на сиюминутных проблемах проектов и контрактов. Обычно руководитель высшего звена по разработке несет ответственность за несколько проектов. Он также предоставляет и поддерживает ресурсы для долгосрочного усовершенствования производственного процесса (например, для группы инженерии производственного процесса). По терминологии СММ роль руководителя высшего звена может принадлежать любому менеджеру, который удовлетворяет этому описанию, вплоть до главы всей организации. В ключевых практиках термин «руководитель высшего звена» должен интерпретироваться в контексте рассматриваемой группы ключевых процессов, проектов и организации. Это позволит учесть именно тех руководителей, которые нужны для выполнения лидирующей и контролирующей ролей, необходимых для достижения целей данной группы ключевых процессов. Менеджер проекта Роль менеджера проекта обладает сферой ответственности, которая включает в себя все деловые аспекты целого проекта. Менеджер проекта направляет, контролирует, администрирует и регулирует проект разработки программной или программно-аппаратной системы. На нем лежит конечная ответственность перед заказчиком. В проектно-ориентированной организационной структуре большинство сотрудников, работающих над проектом, подотчетны менеджеру проекта, хотя в некоторых областях могут существовать матричные отношения отчетности. В матричной организационной структуре менеджеру проекта подотчетен только бизнес-персонал, а в инженерных группах применяются матричные отношения отчетности. Производственный менеджер проекта В сферу ответственности входят все производственные действия проекта. Он является лицом, взаимодействующим с менеджером проекта по вопросам производственных обязательств и контролирующим все производственные ресурсы проекта. Производственному менеджеру проекта подотчетны проектные группы разработчиков, хотя некоторые действия, такие как разработка инструментария, могут иметь матричные отношения отчетности. В крупном проекте производственный менеджер является обычно менеджером второго, третьего или четвертого звена. В небольшом проекте или в проектном подразделении производственный менеджер может быть менеджером первого звена (линейным менеджером) или находиться на более высоком уровне. Линейный менеджер В сферу ответственности линейного менеджера входит непосредственное управление (включая техническое руководство и администрирование персонала и зарплаты) персоналом и действиями отдельной организационной единицы (например, отдела или проектной группы), состоящей из инженеров-разработчиков и других сотрудников. Ведущий специалист Играет роль лидера технической группы по конкретной задаче, который несет техническую ответственность и обеспечивает техническое руководство персоналом, работающим над выполнением этой задачи. Ведущий специалист обычно подотчетен тому же линейному менеджеру, что и другие сотрудники, выполняющие данную задачу. Персонал, разработчики, сотрудники В СММ используется несколько терминов для обозначения исполнителей различных технических ролей, описанных в ключевых практиках СММ. К персоналу относятся те сотрудники, включая ведущих специалистов, которые несут ответственность за выполнение назначенных функций, таких как разработка ПО или управление конфигурацией ПО, но не являются менеджерами. К разработчикам относятся технические сотрудники (например, аналитики, программисты, инженеры), включая ведущих специалистов, которые выполняют в проекте действия по разработке и сопровождению ПО, но не являются менеджерами. Термин «сотрудники» в ключевых практиках определяется и ограничивается контекстом своего использования (например, «сотрудник, задействованный в управлении производственным субподрядом»). Подобное распределение ролей может быть определено и для других инженерных групп, таких как группы системного проектирования и системного тестирования. Некоторые проекты или организации не нуждаются во взаимно однозначном соответствии между ролями и сотрудниками. Один человек может играть несколько ролей, а каждая роль может выполняться несколькими сотрудниками. Например, в небольшом, исключительно программном проекте один человек может играть даже шесть ролей: линейный менеджер по системному проектированию, проектный менеджер по системному проектированию, производственный линейный менеджер, производственный менеджер проекта, менеджер проекта и менеджер по управлению конфигурацией ПО. В несколько более крупном проекте один сотрудник может быть одновременно линейным менеджером по системному проектированию, проектным менеджером по системному проектированию и менеджером проекта, а другой — совмещать роли производственного линейного менеджера и производственного менеджера проекта. Эти два менеджера могут работать в одной или в различных организациях второго звена. В крупном проекте многие роли, особенно руководящие, обычно выполняются отдельными сотрудниками. 7.4.2. Организационная структура Для правильной интерпретации ключевых практик, входящих в модель зрелости процессов разработки, необходимо разобраться в фундаментальных концепциях организации, проекта и группы. Ниже дается определение использования этих концепций в СММ. Организация Представляет собой единицу компании или другой сущности (например, государственное учреждение или обслуживающий филиал), целиком управляющую многими проектами. Все проекты внутри организации подчиняются общему руководителю высшего уровня и общим политикам. Проект Является предприятием, которое требует совместных усилий, сосредоточенных на разработке и/или сопровождении конкретного продукта. Продукт может включать в себя оборудование, программное обеспечение и другие компоненты. Обычно проект имеет собственное финансирование, отчетность и график поставок. Группа Представляет собой совокупность отделов, менеджеров и сотрудников, которые несут ответственность за набор задач или операций. Состав группы может варьироваться от одного или нескольких совместителей из различных отделов до нескольких сотрудников, занятых этой деятельностью полный рабочий день. Ниже описаны группы, наиболее часто встречаемые в СММ. Группа разработки ПО Представляет собой коллектив сотрудников (руководителей и технических специалистов), которые несут ответственность за проектные операции по разработке и сопровождению ПО (т. е. анализ требований, проектирование, кодирование и тестирование). В группу разработки не входят группы, косвенно связанные с разработкой, такие как группы обеспечения качества ПО, управления конфигурацией ПО и инженерии производственного процесса. Эти группы входят в число «групп, связанных с разработкой ПО». Группы, связанные с разработкой ПО Представляет собой коллектив сотрудников (руководителей и технических специалистов), чьи обязанности заключаются не в непосредственном участии в процессах разработки и сопровождения ПО, а в их поддержке. Примерами подобных инженерных областей могут служить обеспечение качества ПО и управление конфигурацией ПО. Группа инженерии производственного процесса В группу входят специалисты, занимающиеся определением, сопровождением и улучшением производственного процесса организации. В ключевых практиках эта группа обычно называется «группой, ответственной за операции ППО». Группа системного проектирования Является коллективом сотрудников (руководителей и технических специалистов), которые несут ответственность за определение системных требований; отнесение этих требований к оборудованию, ПО и другим компонентам; определение интерфейсов между оборудованием, ПО и другими компонентами; мониторинг проектирования и разработки этих компонентов, обеспечивающий их соответствие техническим требованиям. Группа системного тестирования Группа системного тестирования представляет собой коллектив сотрудников (руководителей и технических специалистов), которые несут ответственность за планирование и выполнение независимого системного тестирования ПО, проводимого в целях проверки программного продукта на соответствие требованиям. Группа обеспечения качества ПО Представляет собой коллектив сотрудников (руководителей и технических специалистов), которые несут ответственность за планирование и проведение проектных мероприятий по обеспечению качества, поддерживающих соответствие этапам и стандартам производственного процесса. Организационные вопросы обеспечения качества ПО обсуждаются в разделе 4.4.3. Группа управления конфигурацией ПО Представляет собой коллектив сотрудников (руководителей и технических специалистов), которые несут ответственность за планирование, координацию и реализацию формальных действий по управлению конфигурацией проекта разработки ПО. Группа обучения Состоит из сотрудников (руководителей и технических специалистов), отвечающих за координацию и проведение учебных мероприятий организации. Эта группа обычно готовит и проводит большинство учебных курсов и координирует использование других средств обучения. 7.4.3. Независимость и организационная структура Организация должна следить за корректностью интерпретации и выполнения ключевых практик, реализующих концепцию независимости. Это имеет особенно большое значение для небольших проектов и организаций. Если технические или организационные пристрастия могут повлиять на качество продукта или проектные риски, ключевые практики рекомендуют использовать концепцию независимости. Два примера подобных практик: Группа обеспечения качества (SQA) имеет канал отчетности перед старшим руководством, который независим от менеджера проекта, группы разработки ПО и других групп, связанных с разработкой (обязательство 1.2 из раздела «Обеспечение качества ПО»). Системные и приемочные тестовые сценарии и процедуры планируются и готовятся группой тестирования, которая независима от разработчиков ПО (действие 7.3 из раздела «Инженерия разработки программного продукта»). Необходимость независимого системного и приемочного тестирования обусловлена техническими факторами. Эта независимость гарантирует, что сотрудники группы тестирования не подвергнутся влиянию решений, принятых разработчиками или специалистами по технической поддержке ПО при его проектировании и реализации. Независимость группы обеспечения качества диктуется тем, что график и бюджет проекта не должны влиять на работу членов этой группы. Отсутствие организационной независимости может значительно усложнить обеспечение эффективной оперативной независимости. Например, сотрудник, подотчетный менеджеру проекта, может быть вынужден прервать тестирование несмотря на существование серьезных проблем с совместимостью продукта. Организации должны определить такую организационную структуру, которая поддерживала бы независимость операций, подобных обеспечению качества, в контексте своих стратегических бизнес-целей и бизнес-среды. Независимость должна: обеспечивать сотрудникам группы обеспечения качества организационную свободу, позволяющую им быть «глазами и ушами» старшего руководства проекта; исключить вынесение оценки работы сотрудников группы обеспечения качества со стороны руководства того проекта, о котором они подают отчет; обеспечить уверенность старшего руководства в объективности получаемых отчетов о производственном процессе и продуктах проекта. Поскольку ключевые практики допускают различные трактовки критериев независимости, организация должна получить профессиональную оценку их соответствия целям группы ключевых процессов. 7.5. Применение профессиональной оценки Чтобы обеспечить полный набор принципов, применяемых к самым различным ситуациям, в некоторых ключевых практиках изначально заложена возможность гибкой трактовки. В ключевых практиках используются такие размытые фразы, как «заинтересованные группы», «по обстановке» или «по мере необходимости». Значение таких нечетких терминов в ключевых практиках обычно уточняется различными примерами, приводимыми, по крайней мере, при первом употреблении термина. Эти фразы могут иметь различные значения для разных организаций, для разных проектов внутри одной организации или для одного проекта в различные моменты его жизненного цикла. Для каждого проекта или организации смысл этих фраз должен быть уточнен в соответствии с конкретной ситуацией. Уточнение этих фраз требует от организации учета общего контекста их использования. При этом встает вопрос соответствия конкретной интерпретации одной или нескольких фраз целям группы ключевых процессов. Ответ на этот вопрос можно дать лишь с помощью профессиональной оценки. Интерпретация ключевых практик и их значения для целей группы ключевых процессов также должна проводиться путем профессиональной оценки. Как правило, группа ключевых процессов описывает фундаментальный набор действий, которые должны выполняться любыми разрабатывающими организациями вне зависимости от их размера или их продукции. Однако ключевые практики СММ должны интерпретироваться в контексте бизнес-среды и конкретных условий организации. Такая интерпретация должна основываться на хорошем знании СММ, самой организации и ее проектов. Эту интерпретацию можно структурировать с помощью содержания целей групп ключевых процессов. Если реализация групп ключевых процессов отвечает их целям, но существенно отличается от ключевых практик, причины такой интерпретации должны быть документально обоснованы. Документальное обоснование поможет оценивающим группам понять, почему определенные практики реализованы тем или иным способом. Применение профессиональной оценки ведет к вопросу об адекватном качестве производственного процесса. Модель СММ не выдвигает требований к такой адекватности, хотя ею устанавливаются минимальные критерии для «рационального» процесса во многих средах разработки ПО. Цель управления процессами заключается в установлении процессов, способных стать фундаментом для систематического усовершенствования на основе бизнес-потребностей организации. Каковы же критерии «рационального» производственного процесса? Рациональный процесс должен эффективно наращивать производственный потенциал организации и удовлетворять большинству требований к определенному процессу. Более конкретно — он должен быть проверен на практике, документирован, обязателен, изучен, количественно оценен и иметь возможности для усовершенствования. Может ли считаться рациональным установленный организацией процесс оценки, основанный на выборе случайных значений? Конечно, этот процесс можно документировать, а затем строго ему следовать. Некоторые могут даже утверждать, что он способен быть таким же реалистичным, как и многие другие методы оценки. Однако большинство профессиональных разработчиков не приемлет «кидание костей» в качестве рационального процесса оценки. Поскольку этот метод подчиняется лишь законам теории вероятностей, его нельзя усовершенствовать. Насколько далеко ушло от способа «кидания костей» документирование процесса по методу «пойти и спросить Михалыча»? Этот метод может быть очень хорош для оценки. Он может быть даже последователен и воспроизводим, пока Михалыч рядом. Однако он не удовлетворяет нашим критериям, поскольку его не могут изучить другие сотрудники. Этот процесс ориентирован на личность и не может быть воспроизведен без Михалыча, поэтому он не способствует развитию производственного потенциала организации. Выполнение оценки с использованием каких-либо вариантов метода Дельфи (метода, в котором эксперты в соответствующей области обсуждают поставленные проблемы и вырабатывают согласованные рекомендации по их решению) обычно считается рациональным процессом. Несмотря на то, что метод Дельфи ориентирован на личности, основанная на нем оценка объема удовлетворяет критериям рационального и эффективного процесса, а такая структурированная методика способствует развитию потенциала организации. Основной смысл профессиональной оценки состоит в выявлении подобных различий. Формальное соответствие целям и адекватное качество бывает трудно отличить друг от друга. Цели подытоживают ключевые практики, которые, в свою очередь, описывают рациональный производственный процесс. Однако рациональность процесса не гарантирует его эффективности в достижении своих целей. Существует множество факторов, способных повлиять на успех организации и проекта. Например, успешный проект создания продукта, который никто не захочет купить, является провалом в коммерческом мире. Атрибуты адекватности могут интерпретироваться лишь в контексте бизнес-среды и конкретных условий проекта и организации. Подобные оценки адекватности могут выполняться организацией только как часть ее цикла непрерывного усовершенствования производственного процесса. При этом нельзя достичь совершенства, а непрерывное усовершенствование процесса никогда не завершается. ГЛАВА 8. УРОВЕНЬ 2: ПОВТОРЯЕМЫЙ УРОВЕНЬ 8.1. Управление требованиями Группа ключевых процессов для уровня 2: повторяемый уровень. Цель управления требованиями состоит в том, чтобы заказчик и разработчики смогли полностью согласовать требования, выдвигаемые к проекту разработки ПО. Управление требованиями включает в себя достижение и поддержку соглашения с заказчиком по требованиям к проекту разработки. Это соглашение носит название «системных требований, установленных для ПО». Под «заказчиком» может подразумеваться группа системного проектирования, группа маркетинга, какая-либо другая внутренняя организация или внешний заказчик. Данное соглашение охватывает как технические, так и прочие требования (например, сроки поставки). Это соглашение формирует основу для оценки затрат, планирования, выполнения и отслеживания производства работ по проекту в течение всего жизненного цикла ПО. Отнесение системных требований к ПО, оборудованию и другим компонентам системы (например, людям) может выполняться группой, внешней по отношению к группе разработки (например, группой системного проектирования), причем разработчики не должны непосредственно контролировать это распределение. Группа разработки предпринимает в рамках проекта соответствующие шаги, обеспечивающие контроль над теми требованиями, которые попадают в сферу ответственности разработчиков, а также их документирование. Чтобы обеспечить этот контроль, группа разработки рассматривает исходные и переработанные системные требования к ПО и пытается решить возможные проблемы до того, как требования будут внедрены в проект разработки. Любое изменение системных требований сопровождается изменениями затронутых планов разработки, промежуточных продуктов и операций в целях их согласования с обновленными требованиями. Цели Цель 1 Установление контроля над системными требованиями к ПО в целях формирования базовой линии, используемой разработчиками ПО и руководством проекта. Цель 2 Поддержка согласованности планов разработки, продуктов и операций с системными требованиями, отнесенными к ПО. Обязательства по выполнению Обязательство 1 Проект следует документу организационной политики управления системными требованиями, отнесенными к ПО. В рамках этих практик системные требования, отнесенные к ПО, называются «установленными требованиями». Установленные требования являются подмножеством системных требований, которые должны быть реализованы в программных компонентах системы. Установленные требования являются основной входной информацией для плана разработки ПО. Анализ требований к ПО позволяет конкретизировать, уточнить и документировать установленные требования. Эта политика обычно состоит из следующих положений: 1. Установленные требования должны быть документированы. 2. Установленные требования рассматриваются: ? производственными менеджерами, ? другими задействованными группами. Примеры групп, задействованных в проекте: группа системного тестирования, разработки ПО (включая все подгруппы, например, проектирования ПО), системного проектирования, обеспечения качества ПО, управления конфигурацией ПО, управления документацией. 3. Изменение установленных требований должно сопровождаться согласованными изменениями планов разработки, промежуточных продуктов и операций. Необходимые предпосылки Предпосылка 1 Для каждого проекта устанавливается сфера ответственности за анализ системных требований и их отнесение к оборудованию, ПО и другим компонентам системы. Анализ и отнесение системных требований не входит в сферу ответственности группы разработчиков, но является предпосылкой для их работы. Эта сфера ответственности включает в себя следующее: 1. Управление системными требованиями, их документирование и отнесение к соответствующим элементам в течение всего проекта. 2. Влияние на изменения системных требований и их отнесение к элементам проекта. Предпосылка 2 Установленные требования должны быть документированы. К установленным требованиям относятся следующие: 1. Требования нетехнического характера (т. е. соглашения, условия и договорные сроки), которые определяют операции проекта разработки ПО либо влияют на них. Примеры соглашений, условий и договорных сроков: поставляемые продукты, сроки поставки, этапы проекта. 2. Технические требования к ПО. Примеры технических требований: пользовательские, операторские, вспомогательные функции или функции интеграции; требования к рабочим характеристикам; проектные ограничения; язык программирования; требования к интерфейсу. 3. Критерии приемки, по которым будет оценено соответствие программных продуктов установленным требованиям. Предпосылка 3 На управление установленными требованиями должны быть выделены соответствующие ресурсы и финансирование. 1. Для управления установленными требованиями должны быть назначены сотрудники, обладающие опытом и квалификацией как в прикладной области, так и в области разработки ПО. 2. Действия по управлению требованиями должны быть обеспечены вспомогательными инструментальными средствами. Примеры вспомогательных инструментальных средств: электронные таблицы, инструменты управления конфигурацией, инструментарий для отслеживания изменений, инструментарий для управления тестированием. Предпосылка 4 Члены группы разработки ПО и других смежных групп должны пройти соответствующее обучение для выполнения своих задач по управлению требованиями. Примеры тем учебных занятий: используемые в проекте методы, стандарты и процедуры; предметная область. Выполняемые операции Операция 1 Группа разработки ПО рассматривает установленные требования до их внедрения в проект. 1. Выявляются пропущенные пункты требований. 2. Выполняется проверка установленных требований на: выполнимость и возможность реализации в виде программы, четкость и корректность формулировки, отсутствие противоречий между требованиями, возможность тестирования. 3. Все установленные требования, в которых были обнаружены потенциальные проблемы, проверяются группой, ответственной за анализ и отнесение системных требований, после чего вносятся необходимые изменения. 4. Все вытекающие из установленных требований обязательства обсуждаются вместе с задействованными группами. Примеры групп, задействованных в проекте: разработки ПО (включая все подгруппы, например, проектирования ПО), оценки составляющих проекта, системного проектирования, системного тестирования, обеспечения качества ПО, управления конфигурацией ПО, управления контрактами, управления документацией. Практики, связанные с обсуждением обязательств, содержатся в описании Операции № 6 группы ключевых процессов «Планирование проекта». Операция 2 Группа разработки ПО использует установленные требования в качестве основы для создания планов разработки, перечня промежуточных продуктов и планирования работ. Установленные требования: 1. являются управляемыми и контролируемыми; «Управляемый и контролируемый» означает, что в любой момент времени (прошлый или настоящий) известна версия используемого промежуточного продукта (т. е. реализован контроль версий), а внесение изменений происходит управляемым образом (т. е. реализовано управление изменениями). Если желательно реализовать еще большую степень формальности, промежуточный продукт может быть помещен в условия полномасштабного управления конфигурацией, как это описано в группе ключевых процессов «Управление конфигурацией ПО». 2. являются основой для создания плана разработки ПО; 3. являются основой для разработки требований к ПО. Операция 3 Изменения установленных требований рассматриваются и вносятся в проект разработки ПО. 1. Оценивается влияние на существующие обязательства по выполнению и обсуждаются их необходимые изменения. ? Изменения внешних обязательств сотрудников и групп проверяются высшим руководством. Практики, связанные с внешними обязательствами организации, содержатся в описании Операции № 4 группы ключевых процессов «Планирование проекта» и Операции № 3 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». ? Изменения обязательств внутри организации обсуждаются вместе с задействованными группами. Практики, связанные с обсуждением изменений обязательств, содержатся в описании Операций № 5–7 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». 2. Вносимые в планы разработки, промежуточные продукты и операции изменения, вытекающие из изменений установленных требований: выявляются, проходят общую оценку, оцениваются по связанным с ними рискам, документируются, планируются, доводятся до сведения задействованных групп и отдельных сотрудников, отслеживаются до своего завершения. Измерения и анализ Измерение 1 Выполнение измерений и использование их результатов для определения статуса операций по управлению установленными требованиями. Примеры измерений: определение статуса каждого из установленных требований; определение статуса изменений установленных требований; общее количество изменений установленных требований, включая общее количество тех из них, которые были предложены, остаются открытыми, утверждены или реализованы в базовой линии системы. Проверка внедрения Проверка 1 Регулярная проверка высшим руководством выполнения операций по управлению установленными требованиями. Регулярные проверки проводятся высшим руководством для получения своевременной информации о процессе разработки ПО и его понимания на соответствующем уровне абстрагирования. Промежутки времени между проверками должны соответствовать потребностям организации и могут быть длительными, если в организации имеется работающая система оповещения об исключительных ситуациях. Практики, связанные со стандартным содержанием проверок со стороны высшего руководства, содержатся в описании Проверки № 1 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 2 Регулярные и событийные проверки менеджером проекта операций по управлению установленными требованиями. Практики, связанные со стандартным содержанием проверок со стороны руководства проекта, содержатся в описании Проверки № 2 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 3 Выполнение группой обеспечения качества проверок и/или аудитов работ и промежуточных продуктов по управлению установленными требованиями и составление отчетов по их результатам. См. группу ключевых процессов «Обеспечение качества ПО». Минимальное содержание этих проверок и/или аудитов: 1. Установленные требования должны быть проверены, а связанные с ними проблемы должны быть разрешены до принятия соответствующих обязательств группой разработки ПО. 2. Изменение установленных требований должно сопровождаться соответствующими изменениями в планах разработки, составе промежуточных продуктов и производственных операциях. 3. Изменения обязательств, вытекающие из изменений установленных требований, обсуждаются вместе с задействованными группами. 8.2. Планирование проекта Группа ключевых процессов для уровня 2: повторяемый уровень. Цель планирования проекта заключается в создании обоснованных планов разработки ПО и для управления выполнением проекта разработки. Планирование проекта включает в себя проведение оценки предстоящей работы, принятие необходимых обязательств и составление плана выполнения работ. Планирование разработки начинается с подготовки технического задания, а также описания других ограничений и целей, которые определяют и ограничивают проект разработки (те самые требования, которые разрабатываются в практиках группы ключевых процессов «Управление требованиями»). Процесс планирования проекта включает в себя шаги по оценке объема промежуточных программных продуктов и необходимых для выполнения проекта ресурсов, создания графика работ, определения и оценки рисков разработки, а также обсуждения обязательств. Для создания плана проекта разработки (т. е. плана разработки ПО), может понадобиться итеративное выполнение этих шагов. Этот план обеспечивает основу для выполнения проекта разработки, управления этим процессом, а также определяет обязательства перед заказчиком относительно ресурсов, ограничений и возможностей проекта. Цели Цель 1 Документирование оценочных расчетов по компонентам проекта для их дальнейшего использования в планировании и отслеживании проекта разработки. Цель 2 Планирование и документирование работ и обязательств по проекту разработки. Цель 3 Принятие задействованными в проекте группами и сотрудниками обязательств, связанных с проектом разработки ПО. Обязательства по выполнению Обязательство 1 Должен быть назначен производственный менеджер проекта, в обязанности которого входит обсуждение обязательств и подготовка плана разработки ПО. Обязательство 2 Проект следует документированной организационной политике по планированию проектов разработки ПО. Эта политика обычно состоит из следующих положений: 1. Планирование проекта разработки должно выполняться на основе системных требований, отнесенных к ПО. См. описание Операции № 2 группы ключевых процессов «Управление требованиями». 2. Обязательства по проекту обсуждаются: менеджером проекта, производственным менеджером проекта, другими производственными менеджерами. 3. Участие других инженерных групп в операциях разработки обсуждается с этими группами и документируется. Примеры других инженерных групп: системного проектирования, проектирования аппаратного обеспечения, системного тестирования. 4. Задействованные группы рассматривают следующие аспекты проекта: оценки объема ПО, оценки объема работ и затрат, графики выполнения работ, другие обязательства. Примеры групп, задействованных в проекте: группа разработки ПО (включая все подгруппы, например, проектирования ПО), оценки ПО, системного проектирования, системного тестирования, обеспечения качества ПО, управления конфигурацией ПО, управления контрактами, управления документацией. 5. Высшее руководство просматривает все внешние обязательства по проекту, принимаемые группами и отдельными сотрудниками. 6. Полученный документ плана разработки ПО является управляемым и контролируемым. Термин «план разработки ПО» используется в этом тексте для обозначения общего плана по управлению проектом разработки. Термин «разработка» не исключает сопровождения ПО или проектов поддержки и должен правильно интерпретироваться в контексте каждого проекта. «Управляемый и контролируемый» означает, что в любой момент времени (прошлый или настоящий) известна версия используемого промежуточного продукта (т. е. реализован контроль версий), а внесение изменений происходит управляемым образом (т. е. реализовано управление изменениями). Если желательно реализовать еще большую степень контроля, промежуточный продукт может быть помещен в условия полномасштабного управления конфигурацией, как это описано в группе ключевых процессов «Управление конфигурацией ПО». Необходимые предпосылки Предпосылка 1 Для проекта разработки должен быть подготовлен и утвержден документ технического задания. 1. Техническое задание раскрывает следующие вопросы: объем работ, технические цели и задачи, определение заказчиков и конечных пользователей, применяемые стандарты, распределение обязанностей, ограничения и цели по затратам и срокам, зависимость проекта от других организаций, ограничения и цели по использованию ресурсов, другие ограничения и цели при разработке и/или сопровождению. В этих практиках термином «конечные пользователи» называются конечные пользователи, определенные заказчиком, либо их представители. Примеры других организаций: заказчик, субподрядчик, партнеры совместного предприятия. 2. Техническое задание рассматривается: менеджером проекта, производственным менеджером проекта, другими производственными менеджерами, другими задействованными группами. 3. Документ технического задания должен быть управляемым и контролируемым. Предпосылка 2 Обязанности по созданию плана разработки ПО должны быть распределены. 1. Производственный менеджер проекта непосредственно или косвенным образом координирует планирование проекта разработки. 2. Сферы ответственности за промежуточные программные продукты и операции распределяются и назначаются производственным менеджерам отслеживаемым и учитываемым образом. Примеры промежуточных программных продуктов: передаваемые, при необходимости, внешнему заказчику или конечным пользователям; используемые другими инженерными группами; основные промежуточные продукты для внутреннего использования группой разработки. Предпосылка 3 Процесс подготовки плана проекта должен быть обеспечен соответствующими ресурсами и финансированием. 1. Подготовкой плана разработки ПО должны заниматься опытные (по возможности) сотрудники, хорошо знающие предметную область планируемого проекта. 2. Процесс подготовки плана проекта обеспечивается вспомогательными инструментальными средствами. Примеры вспомогательных инструментальных средств: электронные таблицы, модели получения оценочных результатов, программы производственного и календарного планирования проекта. Предпосылка 4 Производственные менеджеры, инженеры-разработчики и другие сотрудники, участвующие в планировании проекта, должны изучить процедуры оценочного расчета для ПО и планирования, соответствующие их сферам ответственности. Выполняемые операции Операция 1 Группа разработки принимает участие в разработке предложения по проекту. 1. Группы разработки ПО участвует в следующих действиях: подготовка и подача предложения. представление и обсуждение предложения, обсуждение изменений обязательств, связанных с проектом разработки. 2. Группа разработки ПО рассматривает предлагаемые обязательства по проекту. Примеры проектных обязательств: технические цели и задачи проекта; техническое решение системы и разработки; бюджет, график и ресурсы разработки; используемые при разработке стандарты и процедуры. Операция 2 Создание плана разработки ПО инициируется на ранних стадиях общего планирования проекта и выполняется параллельно ему. Операция 3 Группа разработки вместе с другими задействованными группами участвует в общем планировании проекта на протяжении всего его жизненного цикла. 1. Группа разработки рассматривает планы проектного уровня. Операция 4 Внешние обязательства по проекту разработки, налагаемые на группы и отдельных сотрудников, проверяются высшим руководством в соответствии с документированной процедурой. Операция 5 Идентифицируется или определяется жизненный цикл разработки, состоящий из предопределенных частей управляемого объема. Примеры жизненных циклов разработки: «водопад», «водопад» с перекрытием, «спираль», серийный выпуск, единый прототип/«водопад» с перекрытием. Операция 6 Подготовка проектного плана разработки ПО в соответствии с документированной процедурой. Эта процедура обычно определяет следующие действия: 1. Основой для плана разработки ПО служат следующие документы: стандарты, применяемые заказчиком; стандарты, используемые в проекте; утвержденное техническое задание; установленные требования. 2. Планы для групп, связанных с разработкой, и других инженерных групп, вовлеченных в операции разработки, обсуждаются вместе с этими группами. Вспомогательные работы вносятся в бюджет проекта, а принятые соглашения документируются. Примеры групп, связанных с разработкой ПО: обеспечения качества ПО, управления конфигурацией ПО, управления документацией. Примеры других инженерных групп: системного проектирования, проектирования аппаратного обеспечения, системного тестирования. 3. Планы группы разработки по ее участию в действиях смежных и других инженерных групп обсуждаются вместе с этими группами. Вспомогательные работы вносятся в бюджет проекта, а принятые соглашения документируются. 4. План разработки ПО рассматривается: менеджером проекта, производственным менеджером проекта, другими производственными менеджерами, другими задействованными группами. 5. Документ плана разработки ПО должен быть управляемым и контролируемым. Операция 7 Документирование плана проекта разработки ПО. В ключевых практиках этот план (или совокупность планов) называется планом разработки ПО. Практики, раскрывающие использование плана разработки ПО, содержатся в описании Операции № 1 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». План разработки ПО раскрывает следующие вопросы: 1. Назначение, объем, цели и задачи проекта разработки. 2. Выбор жизненного цикла разработки. 3. Идентификация выбранных процедур, методов и стандартов разработки и сопровождения ПО. Примеры стандартов и процедур разработки: планирование разработки ПО, управление конфигурацией ПО, обеспечение качества ПО, проектирование архитектуры ПО, отслеживание и решение выявленных проблем, измерения при разработке. 4. Идентификация разрабатываемых промежуточных программных продуктов. 5. Оценки объема промежуточных программных продуктов и объема их изменений. 6. Оценки объема работ по проекту и затрат на их выполнение. 7. Оценка предполагаемого использования критических компьютерных ресурсов. 8. Календарные графики проекта разработки, включая определение ключевых точек и процедур проверки. 9. Идентификация и оценка рисков по выполнению проекта разработки. 10. Планы по использованию в проекте специализированных средств и вспомогательного инструментария. Операция 8 Определение промежуточных программных продуктов, над которыми необходимо установление контроля конфигурации в ходе проекта. См. описание Операции № 4 группы ключевых процессов «Управление конфигурацией ПО». Операция 9 Оценочный расчет объема промежуточных программных продуктов (или изменений этого объема) в соответствии с документированной процедурой. Эта процедура обычно определяет следующие действия: 1. Проведение оценки объема для всех основных промежуточных программных продуктов и операций. Примеры оценочного расчета объема ПО: оценка по функциональным точкам, по реализованным возможностям, по количеству строк кода, по количеству пунктов требований, по количеству страниц документации. Примеры видов промежуточных продуктов и операций, для которых выполняются оценки объема: системное ПО и вспомогательные программы, промежуточные продукты, как предназначенные для поставки заказчику, так и внутреннего пользования, программные и непрограммные промежуточные продукты (например, документы), операции по разработке, проверке и утверждению промежуточных продуктов. 2. Промежуточные программные продукты разбиваются на составляющие такого объема, который соответствует задачам оценки. 3. По возможности, используются данные по результатам прошлых проектов. 4. Предположения по оценкам объема документируются. 5. Оценки объема документируются, проверяются и согласуются. Примеры групп и отдельных сотрудников, в чьи обязанности входит проверка и согласование оценок объема: менеджер проекта, производственный менеджер проекта, другие производственные менеджеры. Операция 10 Получение оценок объема проектных работ и затрат в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. Оценки объема проектных работ и затрат зависят от оценок объема промежуточных программных продуктов (или объема изменений). 2. Для оценок по возможности используются данные по производительности (прошлых и/или текущих проектов). Источники и обоснования этих данных документируются. Данные по производительности и затратам берутся, по возможности, из проектов организации. Данные по производительности и затратам учитывают объем работ и значимые затраты, требующиеся для создания промежуточных программных продуктов. Примеры значимых затрат на создание промежуточных программных продуктов: расходы на зарплату, накладные расходы, командировочные расходы, расходы на использование машинных ресурсов. 3. Оценки объема работ, потребности в персонале и затрат базируются на прежнем опыте. По возможности следует использовать подобные проекты. Рассчитываются фазы операций по времени. Оценки объема работ, потребностей в персонале и затрат распределяются по жизненному циклу ПО. 4. Полученные оценки и предположения документируются, проверяются и согласуются. Операция 11 Оценка предполагаемого использования критических компьютерных ресурсов в ходе проекта производится в соответствии с документированной процедурой. Оценка предполагаемого использования критических компьютерных ресурсов в проекте может выполняться для серверной, интеграционной, тестовой и целевой сред. Эта процедура обычно определяет следующее: 1. Идентификация критических компьютерных ресурсов. Примеры критических компьютерных ресурсов: объем оперативной памяти, требуемая мощность процессора, пропускная способность каналов связи. 2. На оценку критических компьютерных ресурсов влияют следующие оценки: объем промежуточных программных продуктов, рабочая нагрузка процессора, интенсивность потока информации (трафик). 3. Оценки предполагаемого использования критических компьютерных ресурсов документируются, проверяются и согласуются. Операция 12 Подготовка календарного графика проектных работ в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. График разработки, который зависит от: оценки предполагаемого объема промежуточных программных продуктов (или объема их изменений), объема работ и затрат по проекту. 2. Составление графика разработки базируется на прежнем опыте: по возможности следует использовать подобные проекты. 3. В графике разработки указываются даты этапов и критических зависимостей, а также другие ограничения. 4. Продолжительность работ и временные рамки этапов в графике разработки должны выбираться таким образом, чтобы обеспечить достаточную точность оценки хода проекта. 5. Предположения, выдвинутые при создании графика, должны документироваться. 6. График разработки документируется, проверяется и согласуется. Операция 13 Выявление, оценка и документирование рисков по проекту разработки, связанных с затратами, графиком и техническими аспектами проекта. 1. Анализ и определение значительности рисков на основании их потенциального влияния на проект. 2. Определение страховочных действий, связанных с рисками. Примеры страховочных действий: внесение в график резерва по времени; создание альтернативных планов укомплектования персоналом; создание альтернативных планов по использованию дополнительного аппаратного обеспечения. Операция 14 Подготовка планов по использованию в проекте специализированных средств и вспомогательного инструментария. 1. Выполнение оценочного расчета потребностей в специализированных средствах и вспомогательном инструментарии на основании оценок объема промежуточных программных продуктов и других характеристик. Примеры специализированных средств и вспомогательного инструментария разработки: хост-компьютеры и периферийное оборудование для разработки ПО, компьютеры и периферийное оборудование для тестирования ПО, целевая операционная среда, другое вспомогательное ПО. 2. Распределение обязанностей и обсуждение соглашений по приобретению или разработке этих средств и инструментов. 3. Планы рассматриваются всеми задействованными группами. Операция 15 Документирование данных по планированию разработки. 1. Документируемая информация включает в себя сами оценки и дополнительные сведения, необходимые для воспроизведения оценочных расчетов и определения их обоснованности. 2. Записи данных по плану разработки ПО должны быть управляемыми и контролируемыми. Измерения и анализ Измерение 1 Выполнение измерений и использование их результатов для определения состояния работ по планированию проекта разработки. Примеры измерений: определение степени выполнения этапов работ по планированию разработки в сравнении с планом; определение объема выполненных работ по планированию разработки и использованных при этом ресурсов. Проверка внедрения Проверка 1 Регулярная проверка высшим руководством выполнения работ по планированию разработки. Регулярные проверки проводятся высшим руководством для получения своевременной информации о производственном процессе и его понимания на соответствующем уровне абстракции. Промежутки времени между проверками должны соответствовать потребностям организации и могут быть длительными, если в организации имеется работающая система оповещения об исключительных ситуациях. 1. Проверка технических, финансовых, кадровых аспектов и выполнения графика работ. 2. Изучение конфликтов и проблем, не решаемых на более низких уровнях руководства. 3. Изучение рисков проекта разработки. 4. Поручение и проверка задач, а также отслеживание их выполнения. 5. Подготовка итогового отчета по результатам каждой проверки и распространение его среди задействованных групп и сотрудников. Проверка 2 Регулярные и событийные проверки работ по планированию проекта разработки со стороны менеджера проекта. 1. В проверках принимают участие представители задействованных групп. 2. Сравнение статуса и текущих результатов работ по планированию проекта разработки с техническим заданием по проекту и установленными требованиями. 3. Рассмотрение зависимостей между группами. 4. Изучение конфликтов и проблем, не решаемых на более низких уровнях руководства. 5. Рассмотрение рисков проекта разработки. 6. Поручение и проверка действий, а также отслеживание их выполнения. 7. Подготовка итогового отчета по результатам каждой проверки и распространение его среди задействованных групп и сотрудников. Проверка 3 Проведение группой обеспечения качества проверок и/или аудитов работ и промежуточных продуктов, связанных с планированием проекта, и выполнение отчетов по их результатам. См. группу ключевых процессов «Обеспечение качества ПО». Минимальное содержание проверок и/или аудитов: 1. Мероприятия по оценочному расчету и планированию проекта разработки. 2. Мероприятия по обсуждению и принятию обязательств по проекту. 3. Мероприятия по подготовке плана разработки ПО. 4. Стандарты, используемые при подготовке плана разработки ПО. 5. Содержание плана разработки ПО. 8.3. Отслеживание хода проекта и контроль над ним Группа ключевых процессов для уровня 2: повторяемый уровень. Цель группы ключевых процессов «Отслеживание хода проекта и контроль над ним» заключается в том, чтобы обеспечить адекватный обзор фактического выполнения проекта, позволяя руководству предпринимать эффективные меры при значительном отклонении хода проекта от планов разработки. Данная группа ключевых процессов включает в себя отслеживание и сравнение результатов разработки с документированными оценками, обязательствами и планами, а также корректировку этих планов на основании фактических результатов. Отслеживание работ по проекту, распространение информации об их состоянии и пересмотр планов происходит на основе документированного плана проекта разработки (т. е. плана разработки ПО, описанного в группе ключевых процессов «Планирование проекта»). Производство работ контролируется руководством. Ход проекта оценивается путем сравнения фактических показателей объема ПО, вложенных усилий, финансовых затрат и выполнения графика с плановыми значениями при завершении определенных промежуточных программных продуктов или на определенных этапах. При обнаружении несоответствия планам проекта предпринимаются корректирующие действия. Эти действия могут включать в себя пересмотр плана разработки ПО с целью отражения в нем фактических результатов и перепланирования оставшейся работы либо принятие мер по повышению производительности. Цели Цель 1 Сравнение фактических результатов и показателей с запланированными. Цель 2 В случае значительного отклонения фактических результатов и показателей от запланированных — применение корректирующих действий и контроль над их выполнением. Цель 3 Согласование изменений производственных обязательств с задействованными группами и сотрудниками. Обязательства по выполнению Обязательство 1 Должен быть назначен производственный менеджер проекта, ответственный за работы по проекту и их результаты. Обязательство 2 Проект следует документированной организационной политике управления проектом разработки ПО. Эта политика обычно состоит из следующих положений: 1. Отслеживание хода проекта должно выполняться на основе документированного плана разработки ПО. 2. Менеджер проекта должен постоянно информироваться о состоянии проекта разработки и возникающих проблемах. 3. В случае отклонений от плана должны предприниматься корректирующие действия, направленные либо на повышение производительности, либо на коррекцию планов. 4. Изменения производственных обязательств вносятся при участии задействованных групп и согласуются с ними. Примеры задействованных групп: группа разработки ПО (включая все подгруппы, например, проектирования ПО, оценки составляющих проекта, системного проектирования), системного тестирования, обеспечения качества ПО, управления конфигурацией ПО, управления контрактами, управления документацией. 5. Высшее руководство рассматривает все изменения обязательств и новые обязательства по проекту, которые принимаются группами и отдельными лицами, не входящими в организацию. Необходимые предпосылки Предпосылка 1 План разработки ПО должен быть документирован и утвержден. Практики, связанные с планом разработки ПО, содержатся в описании Операций № 6 и № 7 группы ключевых процессов «Планирование проекта». Предпосылка 2 Менеджер проекта назначает конкретных сотрудников, ответственных за промежуточные программные продукты и производственные операции. Распределяемые сферы ответственности охватывают следующие аспекты: 1. Разрабатываемые промежуточные программные продукты или предоставляемые услуги. 2. Объемы работ и затрат, необходимые для выполнения производственных операций. 3. График выполнения производственных операций. 4. Бюджет производственных операций. Предпосылка 3 Процесс отслеживания хода проекта должен быть обеспечен соответствующими ресурсами и финансированием. 1. На производственных менеджеров и ведущих специалистов возлагаются конкретные обязанности по отслеживанию хода проекта. 2. Отслеживание хода проекта обеспечивается вспомогательными инструментальными средствами. Примеры вспомогательных инструментальных средств: электронные таблицы, программы производственного и календарного планирования проекта. Предпосылка 4 Производственные менеджеры должны пройти обучение управлению техническими и кадровыми аспектами проекта разработки. Примеры тем учебных занятий: управление техническими аспектами проектов; отслеживание и контроль объема, трудоемкости, затрат и графика разработки; управление персоналом. Предпосылка 5 Линейные менеджеры должны получить ориентацию в технических аспектах проекта разработки. Примеры ориентирования: инженерные стандарты и процедуры проекта разработки; предметная область проекта. Выполняемые операции Операция 1 Отслеживание выполнения производственных операций и передача информации о состоянии проекта производится на основе документированного плана разработки ПО. Практики, связанные с содержанием плана разработки ПО, содержатся в описании Операции № 7 группы ключевых процессов «Планирование проекта». К плану разработки ПО выдвигаются следующие требования: 1. Этот план должен обновляться по ходу проекта, отражая его результаты и, в частности, завершение этапов. 2. К плану разработки ПО получают постоянный доступ: группа разработки ПО (включая все подгруппы, например, проектирования ПО), производственные менеджеры, менеджер проекта, высшее руководство, другие задействованные группы. Операция 2 Пересмотр плана разработки ПО в соответствии с документированной процедурой. Практики, связанные с созданием плана разработки ПО, содержатся в описании Операции № 6 группы ключевых процессов «Планирование проекта». Эта процедура обычно определяет следующее: 1. Пересмотр плана разработки ПО выполняется при необходимости включения в него уточнений и изменений, в частности при значительных изменениях планов. Во всех изменениях плана должны быть отражены внутренние зависимости между установленными системными требованиями, проектными ограничениями, ресурсами, затратами и графиком выполнения проекта. 2. Обновление плана разработки ПО выполняется с целью учета в нем всех новых обязательств по проекту и изменений прежних обязательств. 3. План разработки ПО должен проходить проверку после каждого исправления. 4. Документ плана разработки ПО должен быть управляемым и контролируемым. «Управляемый и контролируемый» означает, что в любой момент времени (прошлый или настоящий) известна версия используемого промежуточного продукта (т. е. реализован контроль версий), а внесение изменений происходит управляемым образом (т. е. реализовано управление изменениями). Если желательно реализовать еще большую степень контроля, промежуточный продукт может быть помещен в условия полномасштабного управления конфигурацией, как это описано в группе ключевых процессов «Управление конфигурацией ПО». Операция 3 Обязательства по проекту и их изменения, принятые группами и отдельными лицами, не входящими в состав организации, рассматриваются высшим руководством в соответствии с документированной процедурой. Операция 4 Информация об утвержденных изменениях обязательств, влияющих на проект, распространяется между разработчиками и группами, связанными с разработкой ПО. Примеры групп, связанных с разработкой ПО: группа обеспечения качества ПО, управления конфигурацией ПО, управления документацией. Операция 5 Отслеживание объема промежуточных программных продуктов (или объема их изменений) и применение корректирующих действий в случае необходимости. Практики, связанные с оценочным расчетом объема, содержатся в описании Операции № 9 группы ключевых процессов «Планирование проекта». 1. Отслеживается объем всех основных промежуточных программных продуктов (или объем их изменений). 2. Фактический объем кода (сгенерированного, полностью протестированного и переданного заказчику) сравнивается с оценками, содержащимися в плане разработки ПО. 3. Фактический объем переданной заказчику документации сравнивается с оценками, содержащимися в плане разработки ПО. 4. Регулярно производится уточнение, отслеживание и корректировка общего планируемого объема промежуточных программных продуктов (оценочный расчет с учетом фактических значений). 5. Изменения оценок объема промежуточных программных продуктов, влияющие на производственные обязательства, обсуждаются с задействованными группами и документируются. Операция 6 Отслеживание объема работ и затрат по проекту, при необходимости — применение корректирующих действий. Практики, связанные с оценочным расчетом затрат, содержатся в описании Операции № 10 группы ключевых процессов «Планирование проекта». 1. Фактические показатели трудозатрат и финансовых расходов сравниваются с оценками, содержащимися в плане разработки ПО, в целях выявления перерасхода или неполного использования ресурсов. 2. Себестоимость разработки отслеживается и сравнивается с оценками, содержащимися в плане разработки ПО. 3. Трудозатраты и укомплектование персоналом сравниваются с оценками, содержащимися в плане разработки ПО. 4. Изменения в штате сотрудников и в других производственных расходах, влияющие на производственные обязательства, обсуждаются с участием задействованных групп и документируются. Операция 7 Отслеживание использования критических компьютерных ресурсов в проекте, при необходимости — применение корректирующих действий. Практики, связанные с оценочным расчетом использования компьютерных ресурсов, содержатся в описании Операции № 11 группы ключевых процессов «Планирование проекта». 1. Фактические и планируемые показатели использования критических компьютерных ресурсов отслеживаются и сравниваются с оценками для всех основных компонентов ПО в соответствии с планом разработки. 2. Изменения оценок использования критических компьютерных ресурсов, влияющие на производственные обязательства, обсуждаются с участием задействованных групп и документируются. Операция 8 Отслеживание календарного графика проектных работ, при необходимости — применение корректирующих действий. Практики, связанные с составлением календарного графика, содержатся в описании Операции № 12 группы ключевых процессов «Планирование проекта». 1. Степень фактического выполнения проектных работ, этапов и других обязательств сравнивается с планом разработки ПО. 2. Оценивается влияние позднего и досрочного завершения проектных работ, этапов и других обязательств на будущие работы и этапы. 3. Изменения календарного графика разработки, влияющие на производственные обязательства, обсуждаются с участием задействованных групп и документируются. Операция 9 Отслеживание технических операций по проекту разработки, при необходимости — применение корректирующих действий. 1. Разработчики регулярно докладывают своему линейному менеджеру о техническом состоянии разработки. 2. Содержимое успешных сборок продукта сравнивается с планом разработки ПО. 3. Отчет о проблемах, выявленных в промежуточных программных продуктах, документируется и направляется по назначению. 4. Отчеты о проблемах отслеживаются до разрешения вопросов. Операция 10 Отслеживание рисков разработки, связанных с затратами, ресурсами, графиком и техническими аспектами проекта. Практики, связанные с выявлением рисков, содержатся в описании Операции № 13 группы ключевых процессов «Планирование проекта». 1. Приоритеты и действия по снижению рисков уточняются по мере поступления дополнительной информации. 2. Менеджер проекта регулярно проверяет области с высокой степенью риска. Операция 11 Документирование фактических данных измерений и данных по изменению плана проекта. Практики, связанные с документированием данных по проекту, содержатся в описании Операции № 15 группы ключевых процессов «Планирование проекта». 1. Записи включают в себя оценочные данные и дополнительные сведения, необходимые для воспроизведения оценочных расчетов и проверки их обоснованности. 2. Данные по изменениям в плане проекта разработки должны быть управляемыми и контролируемыми. 3. Данные по планированию и изменениям в плане проекта разработки, а также фактические данные измерений архивируются в целях их использования в текущем и будущих проектах. Операция 12 Группа разработки ПО регулярно проводит внутренние проверки в целях отслеживания хода технических работ, планов, производительности и проблем и их сравнения с планом разработки ПО. В этих проверках принимают участие: 1. Линейные менеджеры и подчиненные им ведущие специалисты. 2. Производственный менеджер проекта, линейные и другие производственные менеджеры по мере необходимости. Операция 13 Проведение на определенных этапах проекта формальных проверок достигнутых результатов в соответствии с документированной процедурой. 1. Проведение этих проверок планируется на какие-либо значимые моменты календарного графика проекта, такие как начало или завершение определенных стадий разработки. 2. Проверки проводятся при участии заказчика, конечных пользователей и задействованных групп организации по мере необходимости. В этих практиках термином «конечные пользователи» называются конечные пользователи, определенные заказчиком, либо их представители. 3. В проверках используются материалы, рассмотренные и утвержденные производственными менеджерами с соответствующей сферой ответственности. 4. В проверках рассматриваются производственные обязательства, планы и состояние работ по проекту. 5. Результатом этих проверок является выявление существенных проблем, определение действий и решений, а также их документирование. 6. В ходе проверок изучаются риски проекта разработки. 7. В случае необходимости, по результатам проверок уточняется план разработки ПО. Измерения и анализ Измерение 1 Выполнение измерений и использование их результатов для определения состояния работ по отслеживанию хода проекта и контролю над ним. Примеры измерений: определение объема трудозатрат и других ресурсов, вложенных в выполнение работ по отслеживанию хода проекта и контролю над ним; определение статуса изменений плана разработки ПО, включающих в себя изменения следующих оценок — объема промежуточных программных продуктов, затрат на разработку, критических компьютерных ресурсов и показателей календарного графика. Проверка внедрения Проверка 1 Регулярная проверка высшим руководством выполнения работ по отслеживанию хода проекта и контролю над ним. Регулярные проверки проводятся высшим руководством для получения своевременной информации о производственном процессе и его понимания на соответствующем уровне абстракции. Промежутки времени между проверками должны соответствовать потребностям организации и могут быть длительными, если в организации имеется работающая система оповещения об исключительных ситуациях. 1. Проверка технических, финансовых, кадровых аспектов и выполнения графика. 2. Изучение конфликтов и проблем, не решаемых на более низких уровнях руководства. 3. Изучение рисков проекта разработки. 4. Поручение и проверка действий, а также отслеживание их выполнения. 5. Подготовка итогового отчета по результатам каждой проверки и его распространение среди задействованных групп. Проверка 2 Регулярные и событийные проверки менеджером проекта работ по отслеживанию хода проекта и контролю над ним. 1. В проверках принимают участие представители задействованных групп. 2. Технические, финансовые, кадровые аспекты и показатели календарного графика сравниваются с планом разработки ПО. 3. Проверка использования критических компьютерных ресурсов. В отчет включается сравнение текущих оценок и фактического использования этих ресурсов с начальными оценками. 4. Обсуждение зависимостей между группами. 5. Изучение конфликтов и проблем, не решаемых на более низких уровнях руководства. 6. Изучение рисков проекта разработки. 7. Поручение и проверка задач, а также отслеживание их выполнения. 8. Подготовка итогового отчета по результатам каждой проверки и его распространение среди задействованных групп. Проверка 3 Проведение группой обеспечения качества проверок и/или аудитов работ и промежуточных продуктов, связанных с отслеживанием хода проекта и контролем над ним, а также выполнение отчетов по их результатам. См. группу ключевых процессов «Обеспечение качества ПО». Минимальное содержание проверок и/или аудитов: 1. Мероприятия по пересмотру и изменению обязательств. 2. Мероприятия по изменению плана разработки ПО. 3. Содержание измененного плана разработки ПО. 4. Мероприятия по отслеживанию затрат по проекту, календарного графика, технических и архитектурных ограничений, функциональных возможностей и производительности. 5. Мероприятия по проведению плановых технических и административных проверок. 8.4. Управление производственным субподрядом Группа ключевых процессов для уровня 2: повторяемый уровень. Цель группы ключевых процессов «Управление производственным субподрядом» заключается в выборе квалифицированных производственных субподрядчиков и эффективном управлении ими. Управление производственным субподрядом включает в себя выбор субподрядчика, принятие взаимных обязательств с ним, отслеживание и проверку производительности и результатов его работы. Эти практики охватывают управление как субподрядом, связанным с разработкой исключительно программного продукта, так и управление программной частью субподряда, который включает в себя ПО, аппаратное обеспечение и, возможно, другие системные компоненты. Выбор субподрядчика основывается на его способности выполнить определенную работу. Решение о передаче на субподряд части работы генерального подрядчика принимается под влиянием многих факторов. Субподрядчики могут выбираться на основании стратегических деловых альянсов, а также по техническим соображениям. В практиках данной группы ключевых процессов рассматривается традиционное обеспечение поставок, связанное с заключением субподряда с другой организацией на определенную часть работы. При передаче работ на субподряд заключается документированное соглашение (договор) по техническим и нетехническим (например, датам поставки) требованиям, которое используется в качестве основы для управления субподрядом. Поручаемая субподрядчику работа и рабочие планы документируются. Стандарты, которым будет следовать субподрядчик, должны быть совместимы со стандартами генерального подрядчика. Связанные с субподрядом работы по планированию разработки, отслеживанию хода проекта и контролю над ним выполняются субподрядчиком. Генеральный подрядчик должен гарантировать выполнение этих работ на должном уровне, а поставленные субподрядчиком программные продукты будут удовлетворять своим критериям приемки. Генеральный подрядчик и субподрядчик должны совместно решать вопросы по управлению разрабатываемыми продуктами и интерфейсами процессов. Цели Цель 1 Выбор генеральным подрядчиком квалифицированных субподрядчиков. Цель 2 Заключение соглашения о взаимных обязательствах между генеральным подрядчиком и субподрядчиком. Цель 3 Поддержка постоянного обмена информацией между генеральным подрядчиком и субподрядчиком. Цель 4 Отслеживание генеральным подрядчиком фактических результатов работы и производительности субподрядчика относительно принятых им обязательств. Обязательства по выполнению Обязательство 1 Проект следует документированной организационной политике управления производственным субподрядом. Эта политика обычно состоит из следующих положений: 1. При выборе субподрядчиков и управлении договорами по субподряду используются документированные стандарты и процедуры. 2. Управление субподрядом основывается на заключенных договорах. 3. Изменения обязательств по субподряду принимаются при участии и согласии как генерального подрядчика, так и субподрядчика. Обязательство 2 Должен быть назначен менеджер по субподряду, ответственный за заключение договора о субподряде и управление им. 1. Менеджер по субподряду должен обладать знаниями и опытом в разработке ПО или иметь в своем распоряжении подчиненных, обладающих такими знаниями и опытом. 2. Менеджер по субподряду несет ответственность за координацию технического объема субподрядной работы и условий субподряда между заинтересованными сторонами. Технический объем передаваемых на субподряд работ определяется группами системного проектирования и разработки ПО. Условия договора о субподряде формулируются и отслеживаются соответствующими бизнес-группами, например, группами, которые занимаются закупкой, финансовыми и юридическими вопросами. 3. В сферу ответственности менеджера по субподряду входит следующее: выбор субподрядчика, управление субподрядом, организация поддержки поставленных субподрядных продуктов. Необходимые предпосылки Предпосылка 1 Процесс выбора субподрядчика и управления субподрядом должен быть обеспечен соответствующими ресурсами и финансированием. 1. Производственным менеджерам и другим сотрудникам должны быть назначены конкретные обязанности по управлению субподрядом. 2. Работы по управлению субподрядом должны быть обеспечены вспомогательными инструментальными средствами. Примеры вспомогательных инструментальных средств: модели получения оценочных результатов, электронные таблицы, программы управления проектом и его календарного планирования. Предпосылка 2 Производственные менеджеры и другие сотрудники, участвующие в заключении договора о субподряде и управлении им, должны пройти обучение выполнению этих операций. Примеры тем учебных занятий: подготовка и планирование субконтракта, оценка производственных возможностей потенциального субподрядчика, оценка сметных предположений и планов потенциального субподрядчика, выбор субподрядчика, управление субподрядом. Предпосылка 3 Производственные менеджеры и другие сотрудники, участвующие в управлении субподрядом, должны получить ориентацию в технических аспектах субподрядных работ. Примеры ориентирования: предметная область, применяемые технологии разработки, используемые инструменты разработки, используемые методики, применяемые стандарты, используемые процедуры. Выполняемые операции Операция 1 Определение и планирование субподрядной работы в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. Выбор программных продуктов и работ для передачи на субподряд основывается на сбалансированной оценке технических и нетехнических характеристик проекта. Выбор разрабатываемых по субподряду функций и систем основывается на опыте и возможностях потенциальных субподрядчиков. Спецификация программных продуктов и работ для передачи на субподряд составляется на основании систематического анализа и соответствующего разделения требований к системе и ПО. 2. Для составления спецификации субподрядных работ, применяемых стандартов и процедур используются следующие проектные документы: техническое задание, системные требования, отнесенные к ПО, требования к ПО, план разработки ПО, стандарты и процедуры разработки. 3. Техническое задание на субподряд: подготавливается, проверяется, согласуется. Примеры сотрудников, в чьи обязанности входит проверка и согласование технического задания на субподряд: менеджер проекта, производственный менеджер проекта, ответственные производственные менеджеры, менеджер по управлению конфигурацией ПО, менеджер по обеспечению качества ПО, менеджер субподряда. исправляется по мере необходимости, является управляемым и контролируемым. «Управляемый и контролируемый» означает, что в любой момент времени (прошлый или настоящий) известна версия используемого промежуточного продукта (т. е. реализован контроль версий), а внесение изменений происходит управляемым образом (т. е. реализовано управление изменениями). Если желательно реализовать еще большую степень контроля, промежуточный продукт может быть помещен в условия полномасштабного управления конфигурацией, как это описано в группе ключевых процессов «Управление конфигурацией ПО». Практики, связанные со стандартным содержанием технического задания, содержатся в описании Предпосылки № 1 группы ключевых процессов «Планирование проекта». 4. План выбора субподрядчика подготавливается одновременно с техническим заданием на субподряд и исправляется по мере необходимости. Операция 2 В соответствии с документированной процедурой проводится выбор субподрядчика на основании оценки его способности выполнить определенную работу. В этой процедуре оцениваются следующие факторы: 1. Поданные предложения по планируемому субподряду. 2. Прежние сведения по качеству выполнения подобной работы, если такие имеются. 3. Географическое расположение организаций потенциальных субподрядчиков относительно генерального подрядчика. Для эффективного управления некоторыми субподрядами могут потребоваться частые личные контакты. 4. Возможности по разработке ПО и управлению разработкой. Примером метода оценки возможностей субподрядчика может служить метод SEI для оценки продуктивности процесса разработки (Software Capability Evaluation). 5. Наличие персонала для выполнения работы. 6. Прежний опыт в разработке подобных приложений, включая соответствующую квалификацию группы субподрядчика по управлению разработкой. 7. Доступные ресурсы. Примеры ресурсов: производственные помещения, аппаратное обеспечение, программное обеспечение, средства обучения. Операция 3 Договор между генеральным подрядчиком и субподрядчиком используется в качестве основы для управления субподрядом. Документы договора: 1. Условия договора. 2. Техническое задание. Практики, связанные со стандартным содержанием технического задания, содержатся в описании Предпосылки № 1 группы ключевых процессов «Планирование проекта». 3. Требования к разрабатываемым продуктам. 4. Список зависимостей между субподрядчиком и генеральным подрядчиком. 5. Перечень продуктов, поставляемых субподрядчиком генеральному подрядчику. Примеры продуктов: исходный код, план разработки ПО, среда эмуляции, проектная документация, план приемочного тестирования. 6. Условия внесения исправлений в продукты. 7. Процедуры и критерии приемки, используемые при оценке отданных на субподряд продуктов до их приемки генеральным подрядчиком. 8. Оценочные процедуры и критерии, используемые генеральным подрядчиком для отслеживания и оценки работы субподрядчика. Операция 4 Представленный субподрядчиком документированный план разработки ПО рассматривается и утверждается генеральным подрядчиком. 1. Этот план разработки ПО раскрывает (непосредственно или по ссылке) соответствующие позиции из аналогичного плана генерального подрядчика. Иногда план разработки ПО генерального подрядчика может включать в себя соответствующий план субподрядчика, для которого, в таком случае, не требуется отдельный документ. Практики, связанные с содержанием плана разработки ПО, содержатся в описании Операции № 7 группы ключевых процессов «Планирование проекта». Операция 5 Документированный и утвержденный план субподрядчика по разработке ПО используется для отслеживания выполнения производственных операций и получения информации об их состоянии. Операция 6 Изменения, вносимые в техническое задание, условия и другие обязательства по субподряду, рассматриваются в соответствии с документированной процедурой. 1. Эта процедура обычно определяет то, что внесение изменений происходит при участии всех задействованных групп как генерального подрядчика, так и субподрядчика. Операция 7 Регулярные проверки состояния работ и координационные совещания, проводимые совместно руководителями генерального подрядчика и субподрядчика. 1. Субподрядчик по мере необходимости получает информацию о потребностях и запросах заказчиков и конечных пользователей продукта. В этих практиках термином «конечные пользователи» называются конечные пользователи, определенные заказчиком, либо их представители. 2. Технические, финансовые, кадровые аспекты и показатели календарного графика субподрядчика сравниваются с его планом разработки ПО. 3. Рассматривается использование критических компьютерных ресурсов проекта. Вклад субподрядчика в текущие оценочные расчеты отслеживается и сравнивается с расчетами для каждого компонента ПО в соответствии с документированной процедурой. 4. Рассматриваются критические зависимости и обязательства между разработчиками субподрядчика и его другими группами. 5. Рассматриваются критические зависимости и обязательства между генеральным подрядчиком и субподрядчиком. Обсуждение обязательств носит взаимный характер. 6. Рассматриваются несоответствия по договору о субподряде. 7. Рассматриваются проектные риски, связанные с субподрядной работой. 8. Изучаются конфликты и проблемы, которые субподрядчик не может решить самостоятельно. 9. Поручение и проверка корректирующих действий, а также отслеживание их выполнения. Операция 8 Субподрядчик регулярно проводит технические проверки и поддерживает взаимообмен информацией с генеральным подрядчиком. Эти проверки: 1. Дают субподрядчику информацию о потребностях и запросах заказчиков и конечных пользователей. 2. Позволяют отслеживать технические операции субподрядчика. 3. Позволяют убедиться в том, что субподрядчик интерпретирует и реализует технические требования в соответствии с требованиями генерального подрядчика. 4. Контролируют выполнение обязательств. 5. Контролируют своевременность решения технических проблем. Операция 9 На определенных этапах проекта проводятся формальные проверки результатов работы субподрядчика в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. Проверки предварительно планируются и документируются в техническом задании. 2. В проверках рассматриваются обязательства, планы и состояние производственных операций субподрядчика. 3. Определяются и документируются значительные проблемы, предпринятые действия и принятые решения. 4. Изучаются риски разработки. 5. По мере необходимости уточняется план субподрядчика по разработке ПО. Операция 10 Группа обеспечения качества со стороны генерального подрядчика отслеживает мероприятия субподрядчика по обеспечению качества ПО в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. Планы, ресурсы, процедуры и стандарты субподрядчика по обеспечению качества ПО регулярно проверяются на их пригодность для отслеживания показателей работы субподрядчика. 2. Проводятся регулярные проверки соответствия субподрядной работы утвержденным процедурам и стандартам. Группа обеспечения качества со стороны генерального подрядчика выборочно проверяет ход работ и продукты субподрядчика. По мере необходимости группа обеспечения качества со стороны генерального подрядчика проводит аудит журналов проверки качества, ведущихся субподрядчиком. 3. Ведущийся субподрядчиком журнал мероприятий по обеспечению качества периодически проходит аудит, в ходе которого проверяется следование планам, стандартам и процедурам обеспечения качества. Операция 11 Мероприятия субподрядчика по управлению конфигурацией ПО отслеживаются соответствующей группой генерального подрядчика согласно документированной процедуре. Эта процедура обычно определяет следующее: 1. Регулярно проверяется адекватность планов, ресурсов, процедур и стандартов субподрядчика по управлению конфигурацией ПО. 2. Генеральный подрядчик и субподрядчик координируют свои действия по вопросам управления конфигурацией ПО, проверяя возможность интеграции или включения продуктов субподрядчика в проектную среду генерального подрядчика. 3. Библиотека базовых линий конфигурации субподрядчика проходит регулярный аудит, в котором проверяется следование субподрядчика стандартам и процедурам управления конфигурацией ПО и степень их эффективности в управлении базовыми линиями. Операция 12 В ходе процесса поставки программных продуктов, отданных на субподряд, генеральный подрядчик проводит их приемочное тестирование в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. Генеральный подрядчик и субподрядчик определяют, рассматривают и утверждают процедуры и критерии приемки для каждого продукта до начала тестирования. 2. Результаты приемочных тестов документируются. 3. Для любого программного продукта, не прошедшего приемочное тестирование, составляется план корректирующих действий. Операция 13 Показатели работы субподрядчика регулярно проходят оценку, а результаты этой оценки рассматриваются при участии субподрядчика. Оценка показателей работы субподрядчика дает ему возможность получения отзывов, которые характеризуют, насколько его работа удовлетворяет потребности заказчика (т. е. генерального подрядчика). В отличие от регулярных координационных совещаний и технических проверок, которые проводятся в течение всего проекта, такие отзывы могут быть получены в результате проверок, связанных с выплатой премиальных вознаграждений по показателям работы. Документы с результатами таких оценок могут также использоваться в качестве исходной информации для будущих операций по выбору субподрядчика. Измерения и анализ Измерение 1 Выполнение измерений и использование их результатов для определения состояния работ по управлению субподрядом. Примеры измерений: расходы на работы по управлению субподрядом в сравнении с плановыми значениями, фактические даты поставки продуктов, отданных на субподряд, в сравнении с запланированными, фактические даты поставок генеральным подрядчиком компонентов проекта субподрядчику в сравнении с запланированными. Проверка внедрения Проверка 1 Регулярная проверка высшим руководством выполнения работ по управлению субподрядом. Регулярные проверки проводятся высшим руководством для получения своевременной информации о процессе разработки ПО и его понимания на соответствующем уровне абстрагирования. Промежутки времени между проверками должны соответствовать потребностям организации и могут быть длительными, если в организации имеется работающая система оповещения об исключительных ситуациях. Практики, связанные со стандартным содержанием проверок со стороны высшего руководства, содержатся в описании Проверки № 1 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 2 Регулярные и событийные проверки менеджером проекта работ по управлению субподрядом. Практики, связанные со стандартным содержанием проверок со стороны руководства проекта, содержатся в описании Проверки № 2 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 3 Выполнение группой обеспечения качества проверок и/или аудитов работ и промежуточных продуктов по управлению субподрядом и составление отчетов по их результатам. См. группу ключевых процессов «Обеспечение качества ПО». Минимальное содержание проверок и/или аудитов: 1. Мероприятия по выбору субподрядчика. 2. Работы по управлению субподрядом. 3. Мероприятия по координации работ по управлению конфигурацией между генеральным подрядчиком и субподрядчиком. 4. Проведение плановых проверок с участием субподрядчика. 5. Проведение проверок по завершению ключевых этапов проекта или стадий работы по субподряду. 6. Процесс приемки программных продуктов от субподрядчика. 8.5. Обеспечение качества ПО Группа ключевых процессов для уровня 2: повторяемый уровень. Цель группы ключевых процессов «Обеспечение качества ПО» заключается в том, чтобы дать руководству адекватное представление о ходе процесса разработки и о создаваемых продуктах. Обеспечение качества ПО включает в себя проверку и аудит продуктов и технологических операций по разработке ПО на их соответствие применяемым процедурам и стандартам, а также информирование руководителей различного уровня о результатах этих проверок и аудитов. Группа обеспечения качества включается в проект разработки на его ранних стадиях и участвует в составлении планов, стандартов и процедур, которые повышают качество процесса разработки и отвечают проектным ограничениям и политикам организации. Участвуя в составлении планов, стандартов и процедур, группа помогает обеспечить их соответствие потребностям проекта и проверяет их пригодность для проведения проверок и аудитов на протяжении всего жизненного цикла ПО, проверяет ход работ по проекту, проводит аудит промежуточных программных продуктов на протяжении всего жизненного цикла ПО, а также передает руководству представление о том, насколько ход проекта соответствует установленным планам, стандартам и процедурам. Вопросы несоответствия сначала обсуждаются в рамках проекта и, по возможности, решаются на этом уровне. Вопросы, не решаемые в рамках проекта, поднимаются группой обеспечения качества на соответствующий уровень руководства. Практики этой группы предназначены для группы, выполняющей функции обеспечения качества ПО. Практики, определяющие конкретные операции и промежуточные продукты, проверяемые группой обеспечения качества, обычно содержатся в разделе «Проверка внедрения» других групп ключевых процессов. Цели Цель 1 Планирование работ по обеспечению качества ПО. Цель 2 Объективная проверка соответствия программных продуктов и технологических операций применяемым стандартам, процедурам и требованиям. Цель 3 Распространение информации между задействованными в проекте группами и сотрудниками о мероприятиях по обеспечению качества ПО и их результатах. Цель 4 Передача на рассмотрение высшему руководству вопросов несоответствия, не решаемых на уровне проекта. Обязательства по выполнению Обязательство 1 Проект следует документированной организационной политике по обеспечению качества ПО. Эта политика обычно состоит из следующих положений. 1. Группа обеспечения качества контролирует работу по всем проектам разработки в организации. 2. Группа обеспечения качества имеет канал отчетности перед высшим руководством, который независим от: менеджера проекта, группы разработки ПО, других групп, связанных с разработкой ПО. Примеры групп, связанных с разработкой ПО: группа управления конфигурацией ПО, группа управления документацией. Организации должны определить такую организационную структуру, которая поддерживала бы независимость операций, подобных обеспечению качества, в контексте своих стратегических бизнес-целей и бизнес-среды. Независимость должна: обеспечивать сотрудникам группы обеспечения качества организационную свободу, позволяющую им быть «глазами и ушами» высшего руководства проекта; исключить вынесение оценки работы сотрудников группы обеспечения качества со стороны руководства проверяемого проекта; обеспечить уверенность высшего руководства в объективности получаемых отчетов о производственном процессе и качестве продуктов проекта разработки ПО. 3. Высшее руководство регулярно проверяет деятельность группы обеспечения качества и ее результаты. Необходимые предпосылки Предпосылка 1 Необходимо наличие группы, ответственной за координацию и реализацию в проекте процесса обеспечения качества ПО (т. е. группы SQA). Группа представляет собой совокупность отделов, менеджеров и сотрудников, которые несут ответственность за набор задач или операций. Состав группы может варьироваться от одного или нескольких совместителей из различных отделов до нескольких сотрудников, занятых этой деятельностью полный рабочий день. При формировании группы принимаются во внимание объем служебных обязанностей, объем проекта, организационная структура и культура взаимоотношений. Некоторые группы, такие как группа обеспечения качества ПО, концентрируются на деятельности на уровне проектов, другие же, как группа инженерии процессов производства, — на деятельности общекорпоративного уровня. Предпосылка 2 Работы по обеспечению качества должны быть обеспечены соответствующими ресурсами и финансированием. 1. Для руководства специфической деятельностью по обеспечению качества в проекте назначается специальный менеджер. 2. Должен быть назначен руководитель высшего звена, обладающий опытом в области обеспечения качества и полномочиями для осуществления соответствующего надзора, который будет нести ответственность за рассмотрение вопросов о несоответствии техническим условиям и принятие соответствующих мер. Все менеджеры, входящие в цепь отчетности по обеспечению качества перед руководителем высшего звена, должны знать свою роль, сферу ответственности и полномочия в этой области. 3. Работы по обеспечению качества обеспечиваются вспомогательными инструментальными средствами. Примеры вспомогательных инструментальных средств: рабочие станции, СУБД, электронные таблицы, средства проведения аудита. Предпосылка 3 Члены группы обеспечения качества должны пройти обучение для выполнения своих задач. Примеры тем учебных занятий: навыки и практические методы разработки ПО; роли и сферы ответственности группы разработки ПО и других смежных групп; стандарты, процедуры и методы, применяемые в проекте разработки ПО; предметная область проекта; задачи, процедуры и методы обеспечения качества; участие группы обеспечения качества в работах по проекту; эффективное использование методов и инструментов обеспечения качества; межличностное общение. Предпосылка 4 Участники проекта должны получить ориентацию относительно роли, сферы ответственности, полномочий и значения группы обеспечения качества. Выполняемые операции Операция 1 Для каждого проекта по разработке ПО подготавливается план работ по обеспечению качества в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. План обеспечения качества разрабатывается на ранних стадиях общего планирования проекта и параллельно с ним. 2. План обеспечения качества рассматривается задействованными группами и лицами. Примеры задействованных групп и лиц: производственный менеджер проекта, другие производственные менеджеры, менеджера проекта, представитель заказчика по вопросам обеспечения качества, руководитель высшего звена, которому группа обеспечения качества сообщает о фактах несоответствия техническим условиям, группа разработки ПО (включая ведущих специалистов и все подгруппы, например, проектирования ПО). 3. Документ плана обеспечения качества должен быть управляемым и контролируемым. «Управляемый и контролируемый» означает, что в любой момент времени (прошлый или настоящий) известна версия используемого промежуточного продукта (т. е. реализован контроль версий), а внесение изменений происходит управляемым образом (т. е. реализовано управление изменениями). Если желательно реализовать еще большую степень контроля, промежуточный продукт может быть помещен в условия полномасштабного управления конфигурацией, как это описано в группе ключевых процессов «Управление конфигурацией ПО». Операция 2 Группа обеспечения качества выполняет свои работы в соответствии с планом обеспечения качества. План охватывает следующие вопросы: 1. Сфера ответственности и полномочия группы обеспечения качества. 2. Ресурсы, требующиеся группе обеспечения качества (включая персонал, инструменты и инженерные средства). 3. Календарный план и финансирование работ группы обеспечения качества. 4. Участие группы обеспечения качества в составлении плана разработки ПО, стандартов и процедур проекта. 5. Оценки, выполняемые группой обеспечения качества. Примеры оцениваемых продуктов и работ: рабочее ПО и вспомогательные программы, продукты как предназначенные для поставки заказчику, так и внутреннего пользования, программные и непрограммные продукты (например, документы), операции по разработке и проверке продукта (например, выполнение сценариев тестирования), мероприятия, проводимые после создания продукта. 6. Аудиты и проверки, проводимые группой обеспечения качества. 7. Стандарты и процедуры проекта, используемые группой обеспечения качества в качестве основы для проверок и аудитов. 8. Процедуры документирования и отслеживания обнаруженных несоответствий до их разрешения. Эти процедуры могут быть включены в план непосредственно или в виде ссылки на содержащие их другие документы. 9. Документация, требуемая от группы обеспечения качества. 10. Способ и периодичность предоставления отзывов по результатам мероприятий по обеспечению качества для группы разработки ПО и других смежных групп. Операция 3 Группа обеспечения качества участвует в подготовке и обсуждении плана разработки ПО, стандартов и процедур проекта. 1. Группа обеспечения качества рассматривает планы, стандарты и процедуры проекта и консультирует участников проекта по следующим вопросам: соответствие организационной политике, соответствие внешним стандартам и требованиям (например, стандартам, обусловленным техническим заданием), стандарты, подходящие для применения в проекте, темы, которые должны быть рассмотрены в плане разработки ПО, другие вопросы, имеющие отношение к проекту. 2. Группа обеспечения качества проверяет наличие и ввод в действие планов, стандартов и процедур, а также возможность их использования для проверки и аудита проекта разработки ПО. Операция 4 Группа обеспечения качества проверяет производственный процесс разработки ПО на соответствие требованиям. 1. Ход производственного процесса сравнивается с планом разработки ПО и установленными стандартами и процедурами разработки. Практики, связанные с конкретными проверками и аудитами, проводимыми группой обеспечения качества, содержатся в разделе «Проверка внедрения» других групп ключевых процессов. 2. Отклонения от требований выявляются, документируются и отслеживаются до их устранения. 3. Контролируется выполнение корректирующих действий. Операция 5 Группа обеспечения качества проводит аудит определенных промежуточных программных продуктов на соответствие требованиям. 1. Поставляемые программные продукты оцениваются до того, как они будут переданы заказчику. 2. Промежуточные программные продукты проверяются на соответствие установленным стандартам, процедурам и требованиям договора. 3. Отклонения от требований выявляются, документируются и отслеживаются до их устранения. 4. Контролируется выполнение корректирующих действий. Операция 6 Группа обеспечения качества регулярно докладывает разработчикам о результатах своей работы. Операция 7 Отклонения, выявленные в ходе выполнения производственного процесса и в промежуточных программных продуктах, документируются и устраняются в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. Отклонения от плана разработки ПО и установленных стандартов и процедур проекта документируются и, по возможности, устраняются при участии ведущих специалистов, производственных менеджеров или менеджера проекта. 2. Отклонения от плана разработки ПО и установленных стандартов и процедур проекта, которые невозможно устранить при участии ведущих специалистов, производственных менеджеров или менеджера проекта, документируются. Информация об этих отклонениях передается руководителю высшего звена, рассматривающему вопросы несоответствий. 3. Проблемы несоответствий, поставленные перед руководителем высшего звена, периодически рассматриваются до своего разрешения. 4. Документация по вопросам несоответствий должна быть управляемой и контролируемой. Операция 8 Группа обеспечения качества проводит регулярные обсуждения своих мероприятий и их результатов (по возможности — совместно с представителями заказчика по вопросам обеспечения качества). Измерения и анализ Измерение 1 Выполнение измерений и использование их результатов для определения затрат на мероприятия по обеспечению качества и отслеживания их состояния в сравнении с календарным планом. Примеры измерений: выполнение этапов работ по обеспечению качества в сравнении с планом; определение объема выполненных работ по обеспечению качества и израсходованных при этом ресурсов в сравнении с запланированными значениями; количество проведенных аудитов продуктов и проверок хода работ в сравнении с запланированным. Проверка внедрения Проверка 1 Регулярная проверка высшим руководством работ по обеспечению качества. Регулярные проверки проводятся высшим руководством для получения своевременной информации о ходе процесса разработки ПО и его понимания на соответствующем уровне абстрагирования. Промежутки времени между проверками должны соответствовать потребностям организации и могут быть длительными, если в организации имеется работающая система оповещения об исключительных ситуациях. Практики, связанные со стандартным содержанием проверок со стороны высшего руководства, содержатся в описании Проверки № 1 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 2 Регулярные и событийные проверки менеджером проекта работ по обеспечению качества. Практики, связанные со стандартным содержанием проверок со стороны руководства проекта, содержатся в описании Проверки № 2 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 3 Периодическая проверка экспертами, независимыми от группы обеспечения качества, проводимых ею мероприятий и выходных документов. 8.6. Управление конфигурацией ПО Группа ключевых процессов для уровня 2: повторяемый уровень Цель группы ключевых процессов «Управление конфигурацией ПО» заключается в обеспечении целостности продуктов проекта разработки ПО в течение всего жизненного цикла проекта. Управление конфигурацией ПО включает в себя определение конфигурации программных продуктов (т. е. перечень выбранных промежуточных программных продуктов и их описания) в заданные моменты времени, систематический контроль над их изменениями, а также поддержку целостной и отслеживаемой конфигурации в течение всего жизненного цикла ПО. К промежуточным продуктам, помещенным в систему управления конфигурацией, относятся как продукты, поставляемые заказчику (например, документ требований к ПО и программный код), так и компоненты, которые сопутствуют этим программным продуктам или нужны для их создания (например, компилятор). Формируется библиотека базовых линий конфигурации, наполняемая по мере их разработки. Изменения базовых линий и выпуск программных продуктов, созданных на основе библиотеки базовых линий, систематически контролируются с помощью функций управления изменениями и аудита конфигурации, используемыми при управлении конфигурацией ПО. Эта группа ключевых процессов охватывает практики, связанные с применением функции управления конфигурацией ПО. Практики, определяющие конкретные элементы/блоки, подлежащие управлению конфигурацией, содержатся в группах ключевых процессов, которые описывают разработку и сопровождение данных элементов/блоков. Цели Цель 1 Управление конфигурацией ПО происходит на плановой основе. Цель 2 Выбранные промежуточные программные продукты определены, управляемы и доступны. Цель 3 Изменения в определенных промежуточных программных продуктах происходят управляемым образом. Цель 4 Распространение информации между группами и сотрудниками, задействованными в проекте, о состоянии и содержании базовых линий конфигурации. Обязательства по выполнению Обязательство 1 Проект следует документированной организационной политике управления конфигурацией ПО (Software Configuration Management, SCM). Эта политика обычно состоит из следующих положений: 1. По каждому проекту должны быть назначены конкретные лица, ответственные за управление конфигурацией ПО. 2. Управление конфигурацией ПО реализуется в течение всего жизненного цикла проекта. 3. Управление конфигурацией ПО реализуется для конечных программных продуктов, определенных внутренних промежуточных программных продуктов, а также определенных вспомогательных инструментальных средств, используемых внутри проекта (например, компиляторов). 4. Проекты формируют собственный репозитарий (или получают к нему доступ), в котором содержатся элементы/блоки конфигурации и связанные с ними записи SCM. В этих практиках содержание данного репозитария называется «библиотекой базовых линий конфигурации». Инструменты и процедуры доступа к этому репозитарию называются «системой управления библиотекой конфигураций». Промежуточные продукты, помещенные в систему управления конфигурацией и воспринимаемые в виде отдельных сущностей, называются отдельными блоками конфигурации. Блоки обычно состоят из компонентов, а те в свою очередь — из элементов конфигурации. В аппаратно-программной системе все ПО может восприниматься в виде одного блока конфигурации либо может быть разбито на несколько блоков. В данных практиках термины «блок» и «элемент конфигурации» относятся к элементам, помещенным в систему управления конфигурацией. 5. Регулярно проводится аудит базовых линий и работ по управлению конфигурацией ПО. Необходимые предпосылки Предпосылка 1 Должна существовать или быть создана комиссия по управлению базовыми линиями проекта (т. е. комиссия по управлению конфигурацией ПО, Software Configuration Control Board, SCCB). Задачи комиссии SCCB: 1. Санкционирование создания базовых линий, выявление конфигураций и их элементов. 2. Представление интересов менеджера проекта и всех групп, которых могут затронуть изменения базовых линий. Примеры групп, задействованных в проекте: обеспечения качества аппаратного обеспечения, управления конфигурацией аппаратного обеспечения, проектирования аппаратного обеспечения, производственного проектирования, разработки ПО (включая все подгруппы, например, проектирования ПО), системного проектирования, системного тестирования, обеспечения качества ПО, управления конфигурацией ПО, управления договорами, управления документацией. 3. Ревизия и санкционирование изменений базовых линий. 4. Санкционирование создания продуктов из элементов библиотеки базовых линий. Предпосылка 2 Необходимо наличие группы, ответственной за координацию и реализацию управления конфигурацией в рамках проекта (группа SCM). Группа представляет собой совокупность отделов, менеджеров и сотрудников, которые несут ответственность за набор задач или операций. Состав группы может варьироваться от одного или нескольких совместителей из различных отделов до нескольких сотрудников, занятых этой деятельностью полный рабочий день. При формировании группы принимаются во внимание объем служебных обязанностей, объем проекта, организационная структура и культура взаимоотношений. Некоторые группы, такие как группа обеспечения качества ПО, концентрируются на деятельности на уровне проектов, другие же, как группа инженерии процессов производства, — на деятельности общекорпоративного уровня. Группа управления конфигурацией ПО координирует или реализует следующие задачи: 1. Создание библиотеки базовых линий проекта и управление ею. 2. Разработка, сопровождение и распространение планов, стандартов и процедур по управлению конфигурацией. 3. Идентификация набора промежуточных продуктов, помещаемых в систему управления конфигурацией. Промежуточный продукт представляет собой любой артефакт, происходящий из определения, сопровождения или использования процесса разработки ПО. 4. Управление доступом к библиотеке базовых линий конфигурации. 5. Обновление базовых линий конфигурации. 6. Создание продуктов из элементов библиотеки базовых линий. 7. Запись действий по управлению конфигурацией ПО. 8. Создание и распространение отчетов по управлению конфигурацией. Предпосылка 3 Работы по управлению конфигурацией ПО должны быть обеспечены соответствующими ресурсами и финансированием. 1. Назначается менеджер, на которого возлагаются конкретные обязанности по управлению конфигурацией ПО. 2. Работы по управлению конфигурацией ПО обеспечиваются вспомогательными инструментальными средствами. Примеры вспомогательных инструментальных средств: рабочие станции, средства управления базами данных, инструменты управления конфигурацией. Предпосылка 4 Члены группы управления конфигурацией ПО должны пройти обучение целям, процедурам и методам выполнения работ по управлению конфигурацией ПО. Примеры тем учебных занятий: стандарты, процедуры и методы управления конфигурацией, инструменты управления конфигурацией. Предпосылка 5 Члены группы разработки ПО и других смежных групп должны пройти обучение выполнению своих задач по управлению конфигурацией. Примеры групп, связанных с разработкой ПО: группа обеспечения качества ПО, группа управления документацией. Примеры тем учебных занятий: стандарты, процедуры и методы выполнения работ по управлению конфигурацией группой разработки ПО и другими смежными группами, роль, сфера ответственности и полномочия группы управления конфигурацией ПО. Выполняемые операции Операция 1 Для каждого проекта по разработке ПО готовится план управления конфигурацией в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. План управления конфигурацией ПО разрабатывается на ранних стадиях общего планирования проекта и параллельно с ним. 2. План управления конфигурацией ПО рассматривается задействованными группами. 3. Документ плана управления конфигурацией ПО должен быть управляемым и контролируемым. «Управляемый и контролируемый» означает, что в любой момент времени (прошлый или настоящий) известна версия используемого промежуточного продукта (т. е. реализован контроль версий), а внесение изменений происходит управляемым образом (т. е. реализовано управление изменениями). Если желательно реализовать еще большую степень контроля, промежуточный продукт может быть помещен в условия полномасштабного управления конфигурацией, как это описано в данной группе ключевых процессов. Операция 2 Документированный и утвержденный план управления конфигурацией используется в качестве основы для выполнения работ по SCM. План охватывает следующие вопросы: 1. Выполняемые работы по управлению конфигурацией, график работ, назначение сфер ответственности и необходимые ресурсы (включая персонал, инструменты и аппаратное обеспечение). 2. Требования и работы по управлению конфигурацией, выполняемые группой разработки ПО и другими смежными группами. Операция 3 Устанавливается библиотечная система управления конфигурацией, служащая репозитарием базовых линий. Задачи, решаемые данной библиотечной системой: 1. Поддержка нескольких уровней контроля управления конфигурацией. Примеры ситуаций, ведущих к нескольким уровням контроля: в разные моменты жизненного цикла требуются различные уровни контроля (например, по мере роста зрелости продукта необходим более жесткий контроль); исключительно программные системы и системы, включающие в себя программное и аппаратное обеспечение, требуют различного уровня контроля. 2. Хранение и извлечение отдельных элементов/блоков конфигурации. 3. Обеспечение совместного использования и передачи элементов/блоков конфигурации между задействованными группами и между уровнями контроля внутри библиотеки. 4. Помощь в применении производственных стандартов к элементам/блокам конфигурации. 5. Хранение и извлечение архивных версий отдельных элементов/блоков конфигурации. 6. Обеспечение корректного создания продуктов на основе элементов из библиотеки базовых линий. 7. Хранение, обновление и предоставление записей по управлению конфигурацией. 8. Поддержка создания отчетов по управлению конфигурацией. 9. Поддержка структуры и содержимого библиотеки. Примеры функций поддержки библиотеки: резервное копирование/восстановление библиотечных файлов, восстановление библиотечной системы после сбоев. Операция 4 Идентификация промежуточных программных продуктов, помещаемых в систему управления конфигурацией. 1. Выбор отдельных элементов/блоков конфигурации на основании документированных критериев. Примеры промежуточных программных продуктов, которые можно определить в качестве элементов/блоков конфигурации: документация по процессу (т. е. планы, стандарты или процедуры), требования к ПО, архитектура ПО, модули программного кода, процедуры тестирования ПО, программная система, созданная для проведения тестирования ПО, программная система, созданная для передачи заказчику или конечным пользователям, компиляторы, другие вспомогательные инструментальные средства. 2. Элементам/блокам конфигурации присваиваются уникальные идентификаторы. 3. Определяются характеристики каждого элемента/блока конфигурации. 4. Определяются базовые линии, которым принадлежат элементы/блоки конфигурации. 5. Для каждого элемента/блока конфигурации определяется стадия разработки, на которой он помещается в систему управления конфигурацией. 6. Определяется ответственный за каждый элемент/блок конфигурации (т. е. его владелец с точки зрения управления конфигурацией). Операция 5 Запросы на изменения и отчеты по проблемам для всех элементов/блоков конфигурации регистрируются, рассматриваются, утверждаются и отслеживаются в соответствии с документированной процедурой. Операция 6 Изменения базовых линий контролируются в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. Выполнение проверок и/или регрессионных тестов, позволяющих убедиться, что изменения не вызовут нежелательного влияния на базовую линию. 2. Внесение в библиотеку базовых линий лишь тех элементов/блоков конфигурации, которые были утверждены комиссией SCCB. 3. Внесение и извлечение элементов/блоков конфигурации выполняется таким способом, который не нарушает корректность и целостность библиотеки базовых линий. Примеры пошаговых действий внесения и извлечения: проверка санкционирования изменений, создание журнала изменений, ведение копий изменений, обновление библиотеки базовых линий, архивирование замененных базовых линий. Операция 7 Создание продуктов на основе библиотеки базовых линий и контролирование их выпуска в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. Комиссия SCCB санкционирует создание продуктов на основе библиотеки базовых линий. 2. Эти продукты, как для внутреннего, так и для внешнего использования, создаются только из тех элементов/блоков конфигурации, которые содержатся в библиотеке базовых линий. Операция 8 Запись статуса элементов/блоков конфигурации в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. Запись действий по управлению конфигурацией производится с детализацией, достаточной для того, чтобы иметь в наличии содержимое и статус всех элементов/блоков конфигурации и возможность восстановить прежние версии. 2. Ведение текущего статуса и истории (т. е. истории изменений и других действий) для всех элементов/блоков конфигурации. Операция 9 Разработка стандартных отчетов, документирующих операции управления конфигурацией и содержимое базовых линий, и их распространение между задействованными в проекте группами и сотрудниками. Примеры отчетов: протоколы совещаний комиссии SCCB, краткое описание и статус запроса на изменение, краткое описание и статус отчета о проблемах (включая решения проблем), краткое описание изменений базовых линий, история изменений элементов/блоков конфигурации, статус базовой линии конфигурации, результаты аудитов базовых линий. Операция 10 Проведение аудитов базовых линий конфигурации в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. Аудит должен быть подготовлен соответствующим образом. 2. Проводится оценка целостности базовых линий. 3. Проверяется структура и средства библиотечной системы управления конфигурацией. 4. Проверяется полнота и корректность содержимого библиотеки базовых линий. 5. Проверяется соответствие применяемым стандартам и процедурам управления конфигурацией ПО. 6. Группа управления конфигурацией докладывает производственному менеджеру проекта о результатах аудита. 7. Действия, рекомендуемые по результатам аудита, отслеживаются до их завершения. Измерения и анализ Измерение 1. Выполнение измерений и использование их результатов для определения состояния работ по управлению конфигурацией. Примеры измерений: количество запросов на изменение, обрабатываемое за единицу времени; выполнение этапов работ по управлению конфигурацией в сравнении с планом; объем выполненных работ по управлению конфигурацией и израсходованные при этом ресурсы. Проверка внедрения Проверка 1. Регулярная проверка высшим руководством работ по управлению конфигурацией. Регулярные проверки проводятся высшим руководством для получения своевременной информации о процессе разработки ПО и его понимания на соответствующем уровне абстрагирования. Промежутки времени между проверками должны соответствовать потребностям организации и могут быть длительными, если в организации имеется работающая система оповещения об исключительных ситуациях. Практики, связанные со стандартным содержанием проверок со стороны высшего руководства, содержатся в описании Проверки № 1 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 2. Регулярные и событийные проверки менеджером проекта работ по управлению конфигурацией ПО. Практики, связанные со стандартным содержанием проверок со стороны руководства проекта, содержатся в описании Проверки № 2 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 3. Регулярный аудит базовых линий, проводимый группой управления конфигурацией ПО в целях проверки их соответствия определяющей документации. Проверка 4. Проведение группой обеспечения качества проверок и/или аудитов работ и промежуточных продуктов SCM и выполнение отчетов по их результатам. См. группу ключевых процессов «Обеспечение качества ПО». Минимальное содержание проверок и/или аудитов: 1. Соответствие стандартам и процедурам управления конфигурацией работы следующих групп: группы управления конфигурацией ПО, комиссии SCCB, группы разработки ПО, других групп, связанных с разработкой ПО. 2. Регулярность проведения аудитов базовых линий конфигурации. ГЛАВА 9. УРОВЕНЬ 3: ОПРЕДЕЛЕННЫЙ УРОВЕНЬ 9.1. Координация производственного процесса организации Группа ключевых процессов для уровня 3: определенный уровень Цель группы ключевых процессов «Координация производственного процесса организации» заключается в установлении организационной сферы ответственности за выполнение мероприятий, совершенствующих общие производственные возможности организации. Координация производственного процесса организации (ППО) включает в себя достижение и поддержку должного уровня понимания производственных процессов организации и проекта, а также координацию работ по оценке, разработке, сопровождению и усовершенствованию этих процессов. Организация принимает на себя долгосрочные обязательства и обеспечивает ресурсы для группы (например, для группы инженерии производственного процесса), координирующей разработку и поддержку производственных процессов текущего и будущих проектов. Эта группа несет ответственность за работы, связанные с ППО, в частности за развитие и поддержку стандартного производственного процесса организации (СППО) и связанных с ним основных средств (как это описано в группе ключевых процессов «Определение производственного процесса организации»), а также координирует операции процесса с проектами разработки ПО. Цели Цель 1. Координация мероприятий по разработке и усовершенствованию производственного процесса в рамках всей организации. Цель 2. Выявление преимуществ и недостатков используемых производственных процессов в сравнении со стандартным процессом. Цель 3. Планирование мероприятий, проводимых на уровне организации в целях разработки и усовершенствования производственного процесса. Обязательства по выполнению Обязательство 1. Организация следует документированной политике координирования общекорпоративных мероприятий по разработке и усовершенствованию производственного процесса. Эта политика обычно состоит из следующих указаний: 1. Создается группа, в сферу ответственности которой входят работы, связанные с ППО, и их координация с проектами. 2. Регулярная оценка производственных процессов, используемых в проектах, проводимая в целях оценки их преимуществ и недостатков. 3. Производственные процессы проектов получаются путем соответствующей адаптации стандартного производственного процесса организации к конкретному проекту. Практики, связанные с адаптацией СППО, содержатся в описании Операции № 1 группы ключевых процессов «Интегрированное управление разработкой ПО». 4. Информация об усовершенствованиях производственного процесса, инструментов и методов, а также другие полезные сведения по каждому проекту должны быть доступны для остальных проектов. Обязательство 2. Высшее руководство поддерживает действия организации по разработке и усовершенствованию производственного процесса. Высшее руководство: 1. Подтверждает перед сотрудниками и менеджерами организации свои обязательства по разработке и усовершенствованию производственного процесса. 2. Устанавливает долгосрочные планы и принимает обязательства по обеспечению этих работ необходимыми финансами, персоналом и другими ресурсами. 3. Устанавливает стратегии управления и реализации действий по разработке и усовершенствованию производственного процесса. Обязательство 3. Высшее руководство осуществляет надзор за действиями организации по разработке и усовершенствованию производственного процесса. Высшее руководство: 1. Обеспечивает соответствие СППО бизнес-целям и стратегиям организации. 2. Дает рекомендации по определению приоритетов при разработке и усовершенствовании производственного процесса. 3. Участвует в составлении планов разработки и усовершенствования производственного процесса. Высшее руководство согласует требования к производственному процессу и связанные с ним вопросы с сотрудниками и менеджерами высших уровней. Высшее руководство согласует с руководителями организации обеспечение поддержки и участия менеджеров и сотрудников в работах по координации производственного процесса. Необходимые предпосылки Предпосылка 1. Необходимо наличие группы, ответственной за работы по координации ППО. Группа представляет собой совокупность отделов, менеджеров и сотрудников, которые несут ответственность за набор задач или операций. Состав группы может варьироваться от одного или нескольких совместителей из различных отделов до нескольких сотрудников, занятых этой деятельностью полный рабочий день. При формировании группы принимаются соглашения о назначении задач или операций, объему проекта, организационной структуре и культуре взаимоотношений. Некоторые группы, такие как группа обеспечения качества ПО, концентрируются на проектных работах, другие же, как группа инженерии производственного процесса, — на общекорпоративных работах. 1. Ядро группы должно, по возможности, состоять из профессиональных разработчиков, занимающихся задачами группы полный рабочий день. Вспомогательные операции могут выполняться совместителями. Наиболее общим примером такой группы является группа инженерии производственного процесса (SEPG). 2. Состав группы должен отражать различные области, связанные с разработкой ПО. Примеры инженерных областей, связанных с разработкой ПО: анализ требований к ПО, проектирование архитектуры ПО, составление кода, тестирование ПО, управление конфигурацией ПО, обеспечение качества ПО. Предпосылка 2. Работы по координации ППО должны быть обеспечены соответствующими ресурсами и финансированием. 1. Группа должна поддерживаться опытными сотрудниками, компетентными в специализированных областях. Примеры специализированных областей: повторное использование ПО, технология автоматизированной разработки ПО (CASE), измерения, разработка учебных курсов. 2. Работы по координации ППО обеспечиваются вспомогательными инструментальными средствами. Примеры вспомогательных инструментальных средств: инструменты статистического анализа, инструменты для подготовки публикаций, системы управления базами данных, средства моделирования процессов. Предпосылка 3. Члены группы, ответственной за работы по координации ППО, должны пройти необходимое обучение для выполнения своих задач. Примеры тем учебных занятий: практические методы разработки ПО; методы контролирования процесса; управление изменениями в рамках организации; планирование, управление и мониторинг производственного процесса; внедрение новых технологий. См. группу ключевых процессов «Программа обучения». Предпосылка 4 Члены группы разработки ПО и других смежных групп должны получить ориентацию относительно работ по координации ППО и своих ролей в этих работах. См. группу ключевых процессов «Программа обучения». Выполняемые операции Операция 1. Периодическая оценка производственного процесса и разработка планов действий по результатам оценки. Оценки обычно проводятся с периодичностью от 1,5 до 3 лет. При проведении оценок рассматриваются все производственные процессы организации, но при этом допускается выборочная оценка областей процессов и проектов. Примером метода оценки продуктивности ППО может служить метод оценки производственного процесса (Software Process Assessment), разработанный институтом SEI. План действий определяет следующее: какие данные, полученные в результате проверки, будут приняты во внимание; принципы по реализации изменений, вносимых по результатам оценки; группы или сотрудники, ответственные за реализацию изменений. Операция 2. Организация составляет и поддерживает план своих действий по разработке и усовершенствованию производственного процесса. Данный план: 1. Использует в качестве исходных данных планы действий по оценке производственного процесса и других инициатив по усовершенствованию организации. 2. Определяет необходимые мероприятия и график их проведения. 3. Определяет группы и сотрудников, ответственных за эти мероприятия. 4. Определяет необходимые ресурсы, включая персонал и инструментальные средства. 5. Подвергается экспертным оценкам после своего создания или внесения крупных изменений. См. группу ключевых процессов «Экспертные оценки». 6. Проверяется и согласуется производственными менеджерами и руководителями высшего звена. Операция 3. Мероприятия, проводимые в рамках организации и проектов в целях разработки и усовершенствования производственных процессов, координируются на уровне организации. Эта координация касается разработки и усовершенствования следующих процессов: 1. Стандартный производственный процесс организации. Практики, связанные с СППО, содержатся в описании Операций № 1 и 2 группы ключевых процессов «Определение производственного процесса организации». 2. Производственные процессы проекта. Практики, связанные с производственными процессами проектов, содержатся в описании Операций № 1 и 2 группы ключевых процессов «Интегрированное управление разработкой ПО». Операция 4. Использование базы данных ППО координируется на уровне организации. База данных ППО используется для сбора информации о производственных процессах и конечных программных продуктах организации и проектов. Практики, связанные с базой данных ППО, содержатся в описании Операции № 5 группы ключевых процессов «Определение производственного процесса организации». Операция 5. Новые процессы, методы и инструменты, используемые пока еще в ограниченных масштабах, отслеживаются, оцениваются и, по возможности, распространяются по всей организации. Операция 6. Обучение, касающееся производственных процессов организации и проектов, координируется в масштабе всей организации. 1. Подготавливаются планы обучения по темам, касающимся производственных процессов организации и проектов. 2. Обучение может подготавливаться и проводиться группой, ответственной за работы по координации ППО (например, группой инженерии производственного процесса), или группой обучения. См. группу ключевых процессов «Программа обучения». Операция 7. Группы, задействованные во внедрении производственных процессов, информируются о мероприятиях по разработке и усовершенствованию процессов, проводимых в рамках организации и проектов. Примеры способов распространения информации между сотрудниками и их привлечения к участию в мероприятиях: электронные доски объявлений по производственным процессам, экспертные комиссии по процессам, рабочие группы, совещания по обмену информацией, обзоры, группы усовершенствования процессов, неформальные обсуждения. Измерения и анализ Измерение 1. Выполнение измерений и использование их результатов для определения статуса мероприятий по разработке и усовершенствованию производственного процесса организации. Примеры измерений: определение объема выполненных работ по оценке, разработке и усовершенствованию производственного процесса и израсходованных при этом ресурсов в сравнении с запланированными значениями; результаты каждой оценки производственного процесса в сравнении с результатами предыдущих оценок и основанными на них рекомендациями. Проверка внедрения Проверка 1. Регулярная проверка высшим руководством выполнения мероприятий по разработке и усовершенствованию производственного процесса. Регулярные проверки проводятся высшим руководством для получения своевременной информации о производственном процессе и его понимания на соответствующем уровне абстракции. Промежутки времени между проверками должны соответствовать потребностям организации и могут быть длительными, если в организации имеется работающая система оповещения об исключительных ситуациях. 1. Сравнение с планом хода и состояния мероприятий по разработке и усовершенствованию производственного процесса. 2. Изучение конфликтов и проблем, не решаемых на более низких уровнях руководства. 3. Назначение ответственного, проверка корректирующих действий и отслеживание их выполнения. 4. Подготовка итогового отчета по результатам каждой проверки и его распространение среди задействованных групп и сотрудников. 9.2. Определение производственного процесса организации Группа ключевых процессов для уровня 3: определенный уровень Цель группы ключевых процессов «Определение производственного процесса организации» заключается в разработке и поддержке практичного набора основных средств производственных процессов, которые улучшают показатели выполнения процессов в различных проектах и в итоге дают организации долгосрочные экономические преимущества. Определение производственного процесса организации (ППО) включает в себя разработку и поддержку стандартного производственного процесса организации (СППО) и связанных с ним основных средств, таких как описание жизненных циклов ПО, инструкции и критерии для адаптации процессов, база данных ППО и библиотека документации по производственным процессам. Существуют различные способы сбора этих основных средств, зависящие от конкретной реализации определения ППО в организации. Например, описание жизненных циклов ПО может быть интегральной частью СППО, а отдельные части библиотеки документации по производственным процессам могут храниться в базе данных ППО. Основные средства ППО используются для разработки, внедрения и сопровождения производственных процессов отдельных проектов. (Практики, связанные с разработкой и сопровождением производственного процесса проекта, описываются в группе ключевых процессов «Интегрированное управление разработкой ПО».) Цели Цель 1. Разработка и сопровождение стандартного производственного процесса организации. Цель 2. Сбор, изучение и распространение информации, связанной с использованием СППО в проектах разработки ПО. Обязательства по выполнению Обязательство 1. Организация следует документированной политике разработки и сопровождения СППО и связанных с ним основных средств. Основные средства ППО: стандартный производственный процесс организации, инструкции и критерии для адаптации СППО к конкретному проекту, утвержденные описания жизненных циклов ПО, база данных ППО, библиотека ранее разработанной документации по производственным процессам, доступной для повторного использования. Эта политика обычно состоит из следующих положений: 1. Для организации должен быть определен стандартный производственный процесс. Основные цели стандартного производственного процесса заключаются в достижении максимальной эффективности совместного использования основных средств и накопленного опыта в различных проектах, а также в том, чтобы на уровне организации определить и собрать воедино стандартный набор количественных оценок процессов из отдельных проектов. СППО может включать в себя несколько производственных процессов. Эти процессы могут соответствовать требованиям разных приложений, жизненных циклов, методик и инструментов, которые могут компоноваться в проектах различными способами. 2. Производственный процесс проекта является адаптированной версией СППО. Практики, связанные с адаптацией СППО, содержатся в описании Операции № 1 группы ключевых процессов «Интегрированное управление разработкой ПО». 3. Осуществляется поддержка основных средств ППО. 4. Информация, собранная из различных проектов, организуется и используется для усовершенствования СППО. Примеры собираемой информации: измерения, проводимые для оценки процессов и продуктов, накопленный опыт, другая документация, имеющая отношение к производственным процессам. Необходимые предпосылки Предпосылка 1. Работы по разработке и сопровождению СППО и связанных с ним основных средств должны быть обеспечены соответствующими ресурсами и финансированием. 1. Разработка и сопровождение СППО и связанных с ним основных средств должны выполняться или координироваться группой, ответственной за работы по координации ППО (например, группой инженерии производственного процесса). Практики, связанные с группой, ответственной за работы по координации ППО, содержатся в группе ключевых процессов «Координация производственного процесса организации». 2. Работы по разработке и сопровождению производственного процесса обеспечиваются вспомогательными инструментальными средствами. Примеры вспомогательных инструментальных средств: инструментарий для подготовки текстов, системы управления базами данных, средства моделирования процессов. Предпосылка 2. Сотрудники, занятые разработкой и сопровождением СППО и связанных с ним основных средств, должны пройти необходимое обучение для выполнения этих работ. Примеры тем учебных занятий: практика и методы разработки ПО, методы анализа и документирования процессов, моделирование процессов. См. группу ключевых процессов «Программа обучения». Выполняемые операции Операция 1. Разработка и сопровождение СППО происходит в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. СППО должен, по мере возможности, соответствовать применяемым в организации политикам разработки, стандартам производственного процесса и продуктов. 2. СППО должен, по мере возможности, соответствовать стандартам производственного процесса и продуктов, налагаемым заказчиками на проекты организации. 3. По мере возможности в СППО должны применяться последние достижения в области средств и методов разработки ПО. 4. Должны быть описаны внутренние интерфейсы процесса между областями разработки ПО. Примеры областей разработки ПО: анализ требований к ПО, проектирование архитектуры ПО, составление кода, тестирование ПО, управление конфигурацией ПО, обеспечение качества ПО. 5. Должны быть описаны внешние интерфейсы между процессом разработки и процессами других задействованных групп. Примеры других задействованных групп: системного проектирования, системного тестирования, управления договорами, управления документацией. 6. Предлагаемые изменения СППО прежде, чем они будут реализованы, документируются, рассматриваются и утверждаются группой, ответственной за работы по координации ППО (например, группой инженерии производственного процесса). Примеры источников изменений: результаты оценок производственного процесса и рекомендации, сделанные на их основе, результаты адаптации СППО к конкретному проекту, результаты мониторинга хода производственных процессов на уровне организации и отдельных проектов, предложения по изменению, внесенные сотрудниками и менеджерами организации, проанализированные и интерпретированные данные измерений процесса и продуктов. 7. Планируются, если это необходимо, работы по внесению изменений в производственные процессы текущих проектов. 8. Описание СППО проходит экспертную оценку после своего создания, а также после внесения значительных изменений или дополнений. См. группу ключевых процессов «Экспертные оценки». 9. Описание СППО помещается в систему управления конфигурацией. См. группу ключевых процессов «Управление конфигурацией ПО». Операция 2. СППО документируется в соответствии с установленными стандартами организации. Эти стандарты обычно определяют следующее: 1. Процесс разбивается на составляющие компоненты такого объема, который позволит понять и описать данный процесс. Каждый элемент процесса соответствует четко определенному и ограниченному набору тесно связанных задач. Примеры элементов процесса: элемент оценки ПО, элемент проектирования архитектуры ПО, элемент кодирования, элемент экспертной оценки. Описания элементов процесса могут представлять собой заполняемые шаблоны, подлежащие завершению фрагменты, абстрактные рассуждения, которые следует уточнить, или же полные описания, которые могут быть изменены при необходимости. 2. Описание каждого элемента процесса содержит ответы на следующие вопросы: необходимые процедуры, практики, методы и технологии; применяемые стандарты процессов и продуктов; распределение ответственности за внедрение процесса; необходимые инструменты и ресурсы; исходные данные; создаваемые промежуточные программные продукты; промежуточные программные продукты, подлежащие экспертной оценке; критерии готовности и завершения; собираемые данные о продукте и процессе. 3. Описание отношений между элементами процесса касается следующих вопросов: очередность, интерфейсы, внутренние зависимости. Отношения между элементами процесса иногда называются архитектурой производственного процесса. Операция 3. Документирование и сопровождение описаний жизненных циклов ПО, утвержденных для использования в проектах. Примеры жизненных циклов ПО: «водопад», «водопад» с перекрытием, «спираль», серийный выпуск, единый прототип/»водопад» с перекрытием. 1. Жизненные циклы ПО должны быть совместимы с СППО. 2. Предлагаемые изменения в описаниях жизненных циклов ПО, прежде чем они будут реализованы, документируются, рассматриваются и утверждаются группой, ответственной за работы по координации ППО (например, группой инженерии производственного процесса). 3. Описания жизненных циклов ПО проходят экспертную оценку после своего создания, а также после внесения значительных изменений или дополнений. См. группу ключевых процессов «Экспертные оценки». 4. Описания жизненных циклов ПО должны быть управляемыми и контролируемыми. «Управляемый и контролируемый» означает, что в любой момент времени (прошлый или настоящий) известна версия используемого промежуточного продукта (т. е. реализован контроль версий), а внесение изменений происходит управляемым образом (т. е. реализовано управление изменениями). Если желательно реализовать еще большую степень контроля, промежуточный продукт может быть помещен в условия полномасштабного управления конфигурацией, как это описано в группе ключевых процессов «Управление конфигурацией ПО». Операция 4. Разработка и сопровождение инструкций и критериев для адаптации СППО к конкретному проекту. 1. Инструкции и критерии адаптации касаются следующих вопросов: выбор и адаптация жизненного цикла ПО для проекта; адаптация СППО с учетом жизненного цикла ПО и характеристик проекта; стандарты документирования производственного процесса проекта. Примеры адаптации: адаптация процесса к новой линии продуктов или к среде разработки, настройка процесса для конкретного проекта или класса проектов, проработка и детализация процесса, позволяющая утвердить конечный производственный процесс проекта. 2. Предлагаемые изменения инструкций и критериев адаптации прежде, чем они будут реализованы, документируются, рассматриваются и утверждаются группой, ответственной за работы по координации ППО (например, группой инженерии производственного процесса). 3. Документы, содержащие инструкции и критерии адаптации, должны быть управляемыми и контролируемыми. Операция 5. Формирование и сопровождение базы данных производственного процесса организации (ППО). 1. База данных формируется в целях сбора и использования данных по производственным процессам и их промежуточным программным продуктам. Примеры данных по процессам и промежуточным программным продуктам: оценки объема ПО, трудоемкости разработки и затрат; фактические данные по объему ПО, трудоемкости разработки и затратам; данные о производительности; измерения качества ПО; охват и эффективность экспертных оценок; охват и эффективность тестирования; меры по повышению надежности ПО; количество и серьезность недостатков, обнаруженных в требованиях к ПО; количество и серьезность дефектов, обнаруженных в программном коде. 2. Информация, введенная в базу данных, проверяется в целях обеспечения целостности содержимого базы. Кроме этих сведений база данных содержит (непосредственно или в виде ссылок) фактические данные измерений и информацию, необходимую для понимания этих данных и оценки их корректности и применимости. 3. База данных ППО должна быть управляемой и контролируемой. 4. В целях обеспечения полноты, целостности и точности информации осуществляется контроль над доступом пользователей к базе данных. Доступ к базе ограничивается лишь теми сотрудниками, которым необходимо выполнить ввод, изменение, анализ или извлечение данных. Уязвимые данные должны быть защищены, а доступ к ним должен контролироваться соответствующим образом. Операция 6. Формирование и сопровождение библиотеки документации по производственным процессам. Примеры документации по производственным процессам: описание производственного процесса проекта, стандарты проекта, процедуры проекта, проектные планы разработки ПО, проектные планы измерений, учебные материалы по производственному процессу проекта. 1. Перед включением в библиотеку документы рассматриваются, после чего в нее вносятся лишь те из них, которые могут оказаться полезными в будущем. 2. В целях упрощения доступа документы заносятся в каталог. 3. Изменения, вносимые в документы, находящиеся в библиотеке, рассматриваются, после чего содержимое библиотеки обновляется по мере необходимости. 4. Содержимое библиотеки должно быть доступно для использования в проектах, а также для групп, связанных с разработкой ПО. Примеры групп, связанных с разработкой ПО: обеспечения качества ПО, управления конфигурацией ПО, тестирования ПО, управления документацией. 5. Использование каждого документа периодически проверяется, а результаты проверки используются для ведения содержимого библиотеки. 6. Содержимое библиотеки должно быть управляемым и контролируемым. Измерения и анализ Измерение 1. Выполнение измерений и использование их результатов для выяснения состояния работ по определению производственного процесса организации. Примеры измерений: статус выполнения этапов календарного плана разработки и сопровождения ППО, затраты на работы по определению процесса. Проверка внедрения Проверка 1. Проведение группой обеспечения качества проверок и/или аудитов работ и промежуточных продуктов, касающихся разработки и сопровождения СППО и связанных с ним основных средств, а также выполнение отчетов по их результатам. См. группу ключевых процессов «Обеспечение качества ПО». Минимальное содержание этих проверок и/или аудитов: 1. Следование установленным стандартам при разработке, документировании и сопровождении СППО и связанных с ним основных средств. 2. Контроль и использование СППО и связанных с ним основных средств. 9.3. Программа обучения Группа ключевых процессов для уровня 3: определенный уровень Цель группы ключевых процессов «Программа обучения» заключается в росте квалификации и знаний сотрудников, позволяющем им выполнять свои роли более рационально и эффективно. Программа обучения включает в себя вначале выявление потребностей в обучении на уровне организации, отдельных проектов и сотрудников, а затем и само обучение (подготовленное внутри организации или предоставляемое извне), соответствующее выявленным потребностям. Каждый проект оценивается с точки зрения его текущих и будущих потребностей в соответствующей квалификации сотрудников, а также определяются методы приобретения этой квалификации. Некоторые навыки могут быть рационально и эффективно переданы неформальными методами (например, с помощью обучения в процессе работы или неформального наставничества), другие же нуждаются для этого в более формальных механизмах обучения (например, в проведении семинаров или в самообучении под руководством преподавателя). Для обучения выбираются и используются механизмы, соответствующие потребностям. Практики этой группы ключевых процессов предназначены для группы, выполняющей функцию обучения в организации. Практики, определяющие конкретные темы обучения (т. е. необходимые знания или навыки), содержатся в разделе «Необходимые предпосылки» отдельных групп ключевых процессов. Цели Цель 1. Мероприятия по обучению проводятся на плановой основе. Цель 2. Обеспечение обучения навыкам и знаниям, необходимым для выполнения руководящих и технических ролей в процессе разработки ПО. Цель 3. Сотрудники группы разработки ПО и других смежных групп должны пройти обучение, необходимое для выполнения их ролей. Обязательства по выполнению Обязательство 1. Организация следует документированной политике предоставления необходимого обучения. Эта политика обычно состоит из следующих положений: 1. Должны быть определены навыки и знания, необходимые для каждой руководящей или технической роли. 2. Должны быть определены и утверждены механизмы передачи навыков и знаний. Примеры утвержденных механизмов обучения: проведение семинаров, машинное обучение, самообучение под руководством преподавателя, формализованные программы наставничества, обучающие видеофильмы. 3. Обучение проводится в целях формирования квалификационной базы организации, удовлетворения конкретных потребностей проектов, а также роста квалификации отдельных сотрудников. 4. Учебные курсы или разрабатываются внутри организации, или предоставляются из внешних источников, если это необходимо. Примеры внешних источников обучения: обучение, проводимое заказчиком, коммерческие учебные курсы, академические программы, профессиональные конференции, семинары. Необходимые предпосылки Предпосылка 1. Необходимо наличие группы, ответственной за решение вопросов обучения в рамках организации. В состав группы обучения могут входить преподаватели из числа сотрудников организации, занятые полный или неполный рабочий день, а также сотрудники, привлеченные из внешних источников. Группа представляет собой совокупность отделов, менеджеров и сотрудников, которые несут ответственность за набор задач или операций. Состав группы может варьироваться от одного или нескольких совместителей из различных отделов до нескольких сотрудников, занятых этой деятельностью полный рабочий день. При формировании группы принимаются соглашения о назначении задач или операций, объему проекта, организационной структуре и культуре взаимоотношений. Некоторые группы, такие как группа обеспечения качества ПО, концентрируются на проектных работах, другие же, как группа инженерии производственного процесса, — на общекорпоративных работах. Предпосылка 2. Реализация программы обучения должна быть обеспечена соответствующими ресурсами и финансированием. Примеры элементов программы обучения: план организации по проведению обучения, учебные материалы, самостоятельная разработка учебных материалов или получение их из внешних источников, проведение обучения, средства обучения, оценка обучения, ведение данных по обучению. 1. Должен быть назначен менеджер, ответственный за реализацию программы обучения в рамках организации. 2. Программа обучения обеспечивается вспомогательными инструментальными средствами. Примеры вспомогательных инструментальных средств: рабочие станции, средства разработки учебного материала, системы управления базами данных, ПО для разработки презентационных материалов. 3. Проведение обучения обеспечивается соответствующими помещениями. Чтобы устранить перерывы учебного процесса, помещения для проведения семинаров должны быть отделены от рабочей среды обучающихся. По мере возможности обучение проводится в условиях, максимально приближенных к реальным, и включает в себя моделирование реальных рабочих ситуаций. Предпосылка 3. Члены группы обучения должны обладать навыками и знаниями, необходимыми для выполнения их задач по обучению. Примеры способов получения этих навыков и знаний: обучение методам преподавания, курсы повышения квалификации в предметной области. Предпосылка 4. Производственные менеджеры должны получить ориентацию по программе обучения. Выполняемые операции Операция 1. Для каждого проекта разрабатывается и поддерживается план обучения, соответствующий конкретным потребностям проекта. План охватывает следующие вопросы: 1. Набор необходимых навыков и время, к которому они потребуются. 2. Навыки, требующие проведения обучения, и навыки, которые будут переданы с помощью других методов. Некоторые навыки могут быть рационально и эффективно переданы неформальными методами (например, через неформальное обучение и проведение презентаций, чтение книг и журналов, дискуссии, обсуждение в внерабочее время, обучение по месту работы или неформальное наставничество), другие же нуждаются для этого в более формальных механизмах обучения (например, в проведении семинаров, машинном обучении, самообучении под руководством преподавателя, учебных видеофильмах или формализованных программах наставничества). 3. Содержание необходимого обучения, обучаемый сотрудник и время проведения обучения. Примеры конкретных потребностей в обучении приводятся в разделе «Необходимые предпосылки» всех остальных групп ключевых процессов. По возможности обучение сотрудников связывается с их рабочими обязанностями, поэтому повседневно выполняемая работа или другой внешний опыт помогают достаточно быстро закрепить знания, полученные при обучении. 4. Как будет проводиться обучение. Обучение может проводиться в рамках проекта разработки ПО, группой обучения, входящей в состав организации, или внешней организацией. Примеры обучения, проводимого в рамках проекта разработки ПО: изучение конкретных приложений и требований к проекту, изучение архитектуры программного продукта, разрабатываемого в рамках проекта, другие виды обучения, более эффективно или рационально проводимые на уровне проекта. Операция 2. Разработка и рассмотрение плана обучения в рамках организации в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. Данный план основывается на потребностях отдельных проектов, описанных в планах обучения каждого проекта. 2. Конкретные темы и сроки проводимого обучения определяются на основании квалификационных потребностей организации и того, к какому времени потребуются эти навыки. 3. При необходимости внесения изменений в план обучения в рамках организации, он подвергается пересмотру. 4. План обучения в рамках организации проверяется задействованными в нем лицами после своего создания, а также после внесения крупных изменений. Примеры задействованных лиц: высшее руководство, производственные менеджеры, руководители групп, связанных с разработкой ПО. 5. Документ плана обучения должен быть управляемым и контролируемым. «Управляемый и контролируемый» означает, что в любой момент времени (прошлый или настоящий) известна версия используемого промежуточного продукта (т. е. реализован контроль версий), а внесение изменений происходит управляемым образом (т. е. реализовано управление изменениями). Если желательно реализовать еще большую степень контроля, промежуточный продукт может быть помещен в условия полномасштабного управления конфигурацией, как это описано в группе ключевых процессов «Управление конфигурацией ПО». 6. Задействованные группы и отдельные лица получают постоянный доступ к плану обучения в рамках организации. Примеры групп и отдельных лиц, задействованных в проекте: высшее руководство, группа обучения, руководители групп, связанных с разработкой ПО, группа разработки ПО (включая все подгруппы, например, проектирования ПО), группа оценки составляющих проекта, группа системного проектирования, группа системного тестирования, группа обеспечения качества ПО, группа управления конфигурацией ПО, группа управления договорами, группа управления документацией. Операция 3. Обучение в рамках организации проводится в соответствии с составленным планом. План охватывает следующие вопросы: 1. Конкретные темы обучения, необходимые организации, и сроки, к которым это обучение должно быть проведено. 2. Обучение, получаемое из внешних источников и проводимое группой обучения. 3. Финансирование и ресурсы (включая персонал, инструменты и помещения), необходимые для подготовки и проведения обучения. 4. Стандарты для разработки учебных материалов, которые используются в курсах, разработанных группой обучения. 5. График создания и рассмотрения учебных курсов, которые будут разрабатываться группой обучения. 6. График проведения обучения, разработанный на основе нужд проектов, требуемых сроков и количества слушателей. 7. Описание следующих процедур: отбор сотрудников для прохождения обучения, регистрация слушателей и их участие в обучении, ведение записей по проведенному обучению, сбор, рассмотрение и использование оценочной информации и других отзывов об обучении. Операция 4. Учебные курсы, подготовленные на уровне организации, разрабатываются и поддерживаются в соответствии со стандартами организации. Эти стандарты содержат следующие требования: 1. Разработка описания для каждого учебного курса. Примеры вопросов, раскрываемых в описании курса: предполагаемая аудитория слушателей, подготовка к участию в обучении, цели обучения, продолжительность обучения, планы занятий, критерии удовлетворительного прохождения обучения слушателями, процедуры периодической оценки эффективности обучения, специальные вопросы, такие как пробное и тестовое чтение курса, потребности в повышении квалификации и возможности для последующего обучения. 2. Проверка материалов учебного курса. Примеры сотрудников, проверяющих учебные материалы: эксперты по обучению, эксперты по предметным областям, представители слушателей пробных чтений проверяемого курса. 3. Материалы учебного курса должны быть управляемы и контролируемы. Операция 5. Устанавливается процедура отказа от обучения, которая используется для определения сотрудников, в достаточной степени обладающих знаниями и навыками для выполнения своих ролей. Операция 6. Ведение записей по проводимому обучению. 1. Регистрируются данные о всех слушателях, успешно прошедших какой-либо учебный курс или другое утвержденное учебное мероприятие. 2. Регистрируются данные о всех слушателях, успешно прошедших запланированное обязательное обучение. 3. Сведения об успешном прохождении обучения используются при распределении задач между сотрудниками и менеджерами. Измерения и анализ Измерение 1. Выполнение измерений и использование их результатов для определения статуса мероприятий по обучению. Примеры измерений: фактическая посещаемость каждого учебного курса в сравнении с запланированной, фактическое проведение учебных курсов в сравнении с планами обучения в рамках организации и проекта, число удовлетворенных заявок об отказе от обучения за период времени. Измерение 2. Выполнение измерений и использование их результатов для определения качества программы обучения. Примеры измерений: результаты тестов, проводимых после прохождения обучения, отзывы слушателей по учебным курсам, отзывы производственных менеджеров. Проверка внедрения Проверка 1. Регулярная проверка высшим руководством мероприятий по проведению программы обучения. Регулярные проверки проводятся высшим руководством для получения своевременной информации о производственном процессе и его понимания на соответствующем уровне абстракции. Промежутки времени между проверками должны соответствовать потребностям организации и могут быть длительными, если в организации имеется работающая система оповещения об исключительных ситуациях. Практики, связанные со стандартным содержанием проверок со стороны высшего руководства, содержатся в описании Проверки № 1 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 2. Программа обучения проходит периодическую независимую оценку, определяющую ее целостность и соответствие потребностям организации. Проверка 3. Проведение проверок и/или аудитов мероприятий и промежуточных продуктов программы обучения и составление отчетов по их результатам. Минимальное содержание этих проверок и/или аудитов: 1. Следование процедуре разработки и пересмотра плана обучения в рамках организации. 2. Следование процедуре разработки и пересмотра учебных курсов. 3. Корректность ведения записей по обучению. 4. Прохождение сотрудниками обязательного для них специального обучения. 5. Следование плану обучения в рамках организации. 9.4. Интегрированное управление разработкой ПО Группа ключевых процессов для уровня 3: определенный уровень Цель группы ключевых процессов «Интегрированное управление разработкой ПО» заключается в интеграции операций разработки и управления в последовательный и определенный производственный процесс, полученный путем адаптации СППО и связанных с ним основных средств, описанных в разделе «Определение производственного процесса организации». Интегрированное управление разработкой ПО включает в себя создание производственного процесса проекта и управление проектом с помощью этого процесса. Производственный процесс проекта получается путем адаптации СППО, учитывающей конкретные характеристики проекта. План разработки ПО основывается на производственном процессе проекта и описывает, как будут реализовываться и управляться операции этого процесса. Управление объемом проекта разработки, его трудоемкостью, затратами, календарным планом, персоналом и другими ресурсами привязывается к задачам производственного процесса проекта. Поскольку все производственные процессы проекта получаются путем адаптации СППО, в проектах можно совместно использовать накопленный опыт и данные из процессов. Основные практики оценки, планирования и отслеживания проекта описываются в группах ключевых процессов «Планирование проекта» и «Отслеживание хода проекта и контроль над ним». Они нацелены на выявление возникающих проблем и коррекцию планов и/или производительности, учитывающую эти проблемы. Практики данной группы ключевых процессов основываются на практиках вышеупомянутых двух групп и дополняют их. В интегрированном управлении разработкой ПО акцент смещается на профилактику возможных проблем и предотвращение или минимизацию их влияния. Цели Цель 1. Получение производственного процесса проекта в виде адаптированной версии СППО. Цель 2. Планирование проекта и управление им в соответствии с его производственным процессом. Обязательства по выполнению Обязательство 1. Проект следует документированной организационной политике, согласно которой планирование проекта и управление им должно проводиться с использованием СППО и связанных с ним основных средств. Практики, касающиеся СППО и связанных с ним основных средств, содержатся в группе ключевых процессов «Определение производственного процесса организации». Эта политика обычно состоит из следующих положений: 1. Производственный процесс каждого проекта разрабатывается путем адаптации СППО. 2. Все отклонения от производственного процесса проекта от СППО должны быть документированы и утверждены. 3. Операции по разработке ПО в каждом проекте выполняются в соответствии с его производственным процессом. 4. В каждом проекте собираются данные соответствующих измерений, которые затем сохраняются в базе данных ППО. Практики, связанные с базой данных ППО, содержатся в описании Операции № 5 группы ключевых процессов «Определение производственного процесса организации». Необходимые предпосылки Предпосылка 1. Процесс управления проектом с использованием СППО должен быть обеспечен соответствующими ресурсами и финансированием. Практики, связанные с обеспечением ресурсами и финансированием работ по планированию проекта, отслеживанию его хода и контролю над ним, содержатся в описании Предпосылки № 3 группы ключевых процессов «Планирование проекта» и Предпосылки № 3 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Предпосылка 2. Сотрудники, ответственные за разработку производственного процесса проекта, должны пройти необходимое обучение методам адаптации СППО и использования связанных с ним основных средств. Примеры тем учебных занятий: использование базы данных ППО, использование стандартного производственного процесса организации, использование инструкций и критериев для адаптации СППО к потребностям конкретного проекта. См. группу ключевых процессов «Программа обучения». Предпосылка 3. Производственные менеджеры должны пройти необходимое обучение управлению техническими, административными и кадровыми аспектами проекта, построенного на определенном производственном процессе. Практики, связанные с обучением планированию проекта, отслеживанию его хода и контролю над ним, содержатся в описании Предпосылки № 4 группы ключевых процессов «Планирование проекта» и Предпосылки № 4 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Примеры тем учебных занятий: методы и процедуры оценочных расчетов, планирования и отслеживания разработки, основанные на производственном процессе проекта; методы и процедуры выявления рисков разработки, управления ими и распространения соответствующей информации. См. группу ключевых процессов «Программа обучения». Выполняемые операции Операция 1. Производственный процесс проекта разрабатывается путем адаптации СППО в соответствии с документированной процедурой. Практики, связанные с содержанием СППО, содержатся в описании Операции № 2 группы ключевых процессов «Определение производственного процесса организации». Эта процедура обычно определяет следующее: 1. Жизненный цикл ПО: выбирается из циклов, утвержденных в организации, с учетом договорных и рабочих ограничений проекта; Практики, связанные с утвержденными жизненными циклами ПО, содержатся в описании Операции № 3 группы ключевых процессов «Определение производственного процесса организации». при необходимости модифицируется в соответствии с принятыми в организации инструкциями и критериями адаптации; документируется в соответствии с организационными стандартами. Практики, связанные с принятыми в организации инструкциями и критериями адаптации, содержатся в описании Операции № 4 группы ключевых процессов «Определение производственного процесса организации». 2. Описание производственного процесса проекта документируется. Практики, связанные с планируемым содержанием определения процесса, содержатся в описании Операции № 2 группы ключевых процессов «Определение производственного процесса организации». При выполнении адаптации по мере необходимости используются основные средства ППО. 3. Результаты адаптации СППО к проекту рассматриваются группой, ответственной за координацию разработки ППО (например, группой инженерии производственного процесса), и утверждаются высшим руководством. Практики, связанные с библиотекой документации по производственному процессу, содержатся в описании Операции № 6 группы ключевых процессов «Определение производственного процесса организации». Отклонения от СППО документируются, после чего они рассматриваются и утверждаются высшим руководством. 4. Отклонения от договорных требований к производственному процессу документируются, после чего они рассматриваются и утверждаются высшим руководством и, при необходимости, заказчиком. 5. Описание производственного процесса проекта должно быть управляемым и контролируемым. «Управляемый и контролируемый» означает, что в любой момент времени (прошлый или настоящий) известна версия используемого промежуточного продукта (т. е. реализован контроль версий), а внесение изменений происходит управляемым образом (т. е. реализовано управление изменениями). Если желательно реализовать еще большую степень контроля, промежуточный продукт может быть помещен в условия полномасштабного управления конфигурацией, как это описано в группе ключевых процессов «Управление конфигурацией ПО». Операция 2. Пересмотр производственного процесса каждого проекта в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. Документирование и систематическое рассмотрение изменений, вызываемых следующими источниками: опытом, получаемым в процессе отслеживания хода проектов разработки в организации, изменениями, предложенными группой разработки проекта, данными измерений, проводимых для оценки процессов и промежуточных продуктов. 2. Изменения, вносимые в производственный процесс проекта, проверяются и утверждаются до того, как они будут реализованы. Примеры сотрудников, проверяющих изменения: члены группы, ответственной за работу над ППО (например, группы инженерии производственного процесса), производственные менеджеры, производственный менеджер проекта. Примеры сотрудников, утверждающих изменения: производственный менеджер проекта, менеджер проекта. Операция 3. План проекта разработки ПО, описывающий использование производственного процесса проекта, разрабатывается и пересматривается в соответствии с документированной процедурой. Практики, связанные с планом разработки ПО, содержатся в описании Операций № 6 и 7 группы ключевых процессов «Планирование проекта» и Операций № 1 и 2 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Операция 4. Управление проектом разработки ПО осуществляется в соответствии с его производственным процессом. Основные практики, связанные с управлением проектом разработки ПО, содержатся в группах ключевых процессов «Планирование проекта» и «Отслеживание хода проекта и контроль над ним». Производственный процесс проекта обычно содержит следующие указания: 1. Выполняется подготовка сбора и анализа данных измерений, необходимых для управления проектом, а также отчетности по этим данным. 2. Операции оценки, планирования и отслеживания проекта связываются с ключевыми задачами и промежуточными продуктами производственного процесса проекта. 3. Устанавливаются и документируются критерии готовности и завершения, используемые при санкционировании начала выполнения ключевых задач и определения момента их завершения. 4. Определяются документированные критерии момента необходимости перепланировки проекта. 5. Накопленный технический и административный опыт документируется и сохраняется в библиотеке документации по производственному процессу. Практики, связанные с библиотекой документации по производственному процессу, содержатся в описании Операции № 6 группы ключевых процессов «Определение производственного процесса организации». 6. Технические и административные выводы, полученные при отслеживании хода выполнения других проектов организации, систематически рассматриваются и используются для оценки, планирования, отслеживания и перепланировки проекта. 7. В плане комплектования проекта персоналом определяются потребности проекта в сотрудниках с особыми навыками и знаниями в предметной области. 8. Выявляются и документируются потребности конкретного проекта в обучении сотрудников. Практики, связанные с выявлением проектных потребностей в обучении, содержатся в описании Операции № 1 группы ключевых процессов «Программа обучения». 9. Производственные планы и процессы, связанные с взаимодействием с другими группами, корректируются с учетом возможных несоответствий и других потенциальных проблем. Примеры несоответствий и проблем: различия в уровнях зрелости процессов, несовместимость процессов, различные экономические факторы. Операция 5. Использование базы данных ППО для планирования и оценочных расчетов для проекта разработки. Практики, связанные с базой данных ППО, содержатся в описании Операции № 5 группы ключевых процессов «Определение производственного процесса организации». 1. База данных используется в качестве источника информации для оценочных расчетов, планирования, отслеживания и перепланирования проекта. По возможности используются данные подобных проектов. Примеры информации, содержащейся в базе данных ППО: объем промежуточных программных продуктов, трудоемкость разработки, затраты на разработку, календарный график, укомплектование персоналом, технические работы. 2. Значения параметров, используемые для получения предполагаемого объема, трудоемкости, затрат, графика разработки и потребности в критических компьютерных ресурсах, сравниваются с аналогичными показателями других проектов в целях оценки обоснованности этих значений. Оцениваются и документируются сходства и различия с другими проектами с точек зрения предметной области и выбора архитектуры. Делаются записи обоснования сходств и различий между значениями аналогичных параметров. записи обоснований достоверности оценочных расчетов проекта. 3. Информация по планированию и перепланированию проекта разработки и данные проведенных измерений сохраняются в базе данных ППО. Примеры записываемой проектной информации: описание задачи, сделанные предположения, оценочные расчеты, пересмотренные оценки, фактические данные измерений, информация, необходимая для воспроизведения оценочных расчетов, определения их обоснованности и выполнения аналогичных расчетов для новой работы. Операция 6. Управление объемом промежуточных программных продуктов (или объемом их изменений) в соответствии с документированной процедурой. Основные практики, связанные с планированием проекта и отслеживанием объема промежуточных программных продуктов, содержатся в описании Операции № 9 группы ключевых процессов «Планирование проекта» и Операции № 5 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Эта процедура обычно определяет следующее: 1. Независимая от разработчиков группа проверяет процедуры оценки объема промежуточных программных продуктов и дает рекомендации по использованию статистической информации из базы данных ППО для получения достоверных оценок. Примером независимой группы может служить группа выполнения оценочных расчетов для составляющих проекта. Примером метода определения достоверности оценок объема ПО может служить функциональное сравнение проектируемой системы с законченной. Сотрудники, подготавливающие оценки объема, должны обеспечить соответствующий выбор процедур и данных, используемых при оценках. Если достоверность оценки объема оказывается спорной, эта оценка проверяется группой экспертов. 2. При оценке объема каждого элемента ПО учитывается фактор непредвиденности, идентифицируемый как риск разработки. Обоснование непредвиденных обстоятельств должно документироваться. Оцениваются и документируются риски, связанные со снижением или устранением непредвиденности. 3. Определяются приобретаемые или повторно используемые программные компоненты. Оценивается возможность повторного использования требований, архитектуры, кода, планов и процедур тестирования и т. п. При оценках объема учитывается фактор трудоемкости модификации и внедрения повторно используемых компонентов. 4. Определяются и тщательно отслеживаются факторы, способные оказать значительное влияние на объем промежуточных программных продуктов. 5. Для каждого управляемого элемента ПО устанавливается предельный объем, в случае ожидаемого превышения которого требуется принятие соответствующих мер. Операция 7. Управление трудоемкостью и себестоимостью разработки проводится в соответствии с документированной процедурой. Основные практики, связанные с планированием и отслеживанием затрат на разработку и ее трудоемкости, содержатся в описании Операции № 10 группы ключевых процессов «Планирование проекта» и Операции № 6 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Эта процедура обычно определяет следующее: 1. В случае использования моделей расчета затрат на разработку, ее трудоемкости и профиля укомплектования персоналом, они адаптируются к проекту и используют, при необходимости, доступные статистические данные. 2. Справочные данные по продуктивности и затратам корректируются с учетом характеристик проекта. Примеры характеристик проекта: географическое расположение проектных групп и организаций (например, субподрядчика), объем и сложность системы, стабильность требований, хост-среда разработки, целевая среда системы, знание и опыт разработчиков, касающиеся создаваемого приложения, доступность ресурсов, другие специфические ограничения. 3. В целях эффективного управления проектными работами и затратами, их общий объем распределяется по отдельно управляемым задачам или стадиям. 4. При проверке статуса вложенных трудозатрат и финансовых расходов и последующем пересмотре оценок фактические расходы относительно выполненной на данный момент работы сравниваются с планом разработки ПО. Результаты сравнения используются для уточнения оценок трудоемкости оставшейся работы и связанных с ней затрат. При крупных изменениях требований к ПО обновляются значения параметров моделей, использующихся для оценки трудоемкости и себестоимости разработки. По возможности в дальнейших расчетах используются фактические данные о продуктивности проекта и новые значения затрат на разработку. 5. Для каждой отдельно управляемой задачи или стадии устанавливаются предельные значения трудоемкости и затрат, при превышении которых требуется принятие соответствующих мер. Операция 8. Управление использованием критических компьютерных ресурсов проекта проводится в соответствии с документированной процедурой. Основные практики, связанные с планированием и отслеживанием критических компьютерных ресурсов, содержатся в описании Операции № 11 группы ключевых процессов «Планирование проекта» и Операции № 7 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Эта процедура обычно определяет следующее: 1. Оценки использования критических компьютерных ресурсов проекта могут выводиться на основании прежнего опыта, моделирования, прототипов или результатов анализа. Документируются источники и обоснования оценок. Оцениваются и документируются сходства и различия между проектами и источниками статистических данных с точек зрения предметной области и выбора архитектуры. Документируются обоснования, позволяющие судить о достоверности оценочных расчетов. 2. Планируемые компьютерные ресурсы, системные требования, отнесенные к ПО, сами требования к ПО и/или архитектура ПО корректируются с учетом требований к критическим компьютерным ресурсам. 3. Доступные компьютерные ресурсы распределяются по компонентам ПО. 4. При проведении начальных оценок доступных критических компьютерных ресурсов предусматривается создание определенного резерва. 5. Для каждого критического компьютерного ресурса устанавливается предельное значение его использования, при ожидаемом превышении которого требуется принятие соответствующих мер. Операция 9. Управление критическими зависимостями и последовательностями календарного графика проектных работ происходит в соответствии с документированной процедурой. Основные практики, связанные с обсуждением и отслеживанием критических зависимостей, содержатся в описании Операции № 12 группы ключевых процессов «Планирование проекта», Операции № 8 группы ключевых процессов «Отслеживание хода проекта и контроль над ним» и Операции № 4 группы ключевых процессов «Межгрупповая координация». Эта процедура обычно определяет следующее: 1. Этапы, задачи, обязательства, критические зависимости, укомплектование персоналом, затраты и проверки распределяются в графике в соответствии с производственным процессом проекта. Календарный график разработки идентифицирует конкретные задачи и этапы, чье завершение можно определить объективно (т. е. возможно бинарное определение в виде «да/нет»). Для учета потребностей различных групп и сотрудников разрабатываются различные уровни детализации графика, связанные друг с другом соответствующим образом. 2. Определяются и обсуждаются критические зависимости, после чего они отражаются в календарном графике разработки. Критические зависимости могут возникать как внутри группы разработки ПО (т. е. между подгруппами), так и между группой разработки и другими задействованными группами. 3. Определяются критические последовательности, после чего они отражаются в календарном графике разработки. 4. Критические зависимости проекта и критические последовательности календарного графика регулярно отслеживаются. 5. Для каждой критической последовательности устанавливается специфический документированный пороговый критерий, при ожидаемом превышении которого требуется принятие соответствующих мер. Примеры принимаемых мер: анализ и моделирование компромиссных вариантов функций, качества, затрат, графика, персонала и других ресурсов; определение страховочных действий и, по возможности, внесение резерва времени в график; оценка влияния предполагаемых действий на все критические зависимости; распространение информации о принятых решениях между всеми задействованными группами. Операция 10. Выявление, оценка, документирование рисков проекта разработки и управление ими проводится в соответствии с документированной процедурой. Основные практики, связанные с выявлением и отслеживанием рисков, содержатся в описании Операции № 13 группы ключевых процессов «Планирование проекта» и Операции № 10 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Примеры областей, в которых риски могут с большой вероятностью привести к срыву проекта: календарный график, затраты, функциональные возможности разрабатываемой системы, пропускная способность или реальная производительность, надежность и доступность, использование критических компьютерных ресурсов. Примеры работ по управлению рисками: раннее выявление проектных задач с высокой степенью риска; определение событий, порождающих риски или повышающих их вероятность; создание прототипов или ранняя реализация модулей с высокой степенью риска; тщательное отслеживание индикаторов ключевых рисков проекта. Эта процедура обычно определяет следующее: 1. Документируется план управления рисками разработки, который затем используется для выявления рисков и управления ими. Примеры вопросов, рассматриваемых в плане управления рисками: необходимые ресурсы (включая персонал и инструментальные средства); методы управления рисками (т. е. выявление, анализ, определение приоритетов, планирование, мониторинг и устранение); список выявленных рисков (включая оценку, приоритет, статус и планируемые действия); график управления рисками; обязанности и полномочия; метод и периодичность распространения информации о статусе рисков и связанных с ними мероприятиях; измерения. 2. Планирование страховочных действий основывается на производственном процессе проекта и выполняется в течение всего жизненного цикла разработки. Примеры областей, в которых проводится планирование страховочных действий: определение вариантов, оценка влияния вариантов, техническая осуществимость вариантов, распределение резервов управления, критерии принятия решений о реализации вариантов. 3. Для каждого риска разработки, по возможности, определяются альтернативные решения и критерии выбора альтернатив. 4. Первый вариант и основные изменения плана по управлению рисками проходят экспертную оценку. См. группу ключевых процессов «Экспертные оценки». 5. Документ плана управления рисками должен быть управляемым и контролируемым. 6. Риски отслеживаются, переоцениваются и перепланируются на определенных этапах проекта, в определенных точках контроля рисков и при планировании значительных изменений, влияющих на проект разработки ПО. При проведении этих переоценок проверяются и пересматриваются приоритеты рисков и планы по управлению рисками. Информация, полученная при отслеживании рисков, используется для уточнения оценок рисков и планов по управлению рисками. 7. Группа разработки ПО, а также другие задействованные группы и отдельные лица должны получать информацию о рисках разработки, планах по управлению рисками и результатах действий по снижению рисков. Примеры групп и отдельных лиц, задействованных в проекте: заказчик, субподрядчики, конечные пользователи, группа оценки объема составляющих проекта, системного проектирования, системного тестирования, обеспечения качества ПО, управления конфигурацией ПО, управления договорами, управления документацией. Операция 11 Периодически выполняются проверки проекта в целях определения действий, требуемых для приведения в соответствие хода и результатов разработки с текущими и планируемыми потребностями бизнеса, заказчика и конечных пользователей. Примеры действий: ужесточение календарного графика, изменение системных требований в ответ на изменения рыночной ситуации или потребностей заказчика и конечных пользователей, прекращение проекта. В этих практиках термином «конечные пользователи» называются конечные пользователи, определенные заказчиком, либо их представители. Измерения и анализ Измерение 1. Выполнение измерений и использование их результатов для определения эффективности работ по интегрированному управлению разработкой ПО. Примеры измерений: объем выполненных на текущий момент работ по управлению проектом в сравнении с запланированным; периодичность, причины и масштаб работ по перепланированию; для каждого выявленного риска разработки — фактическая величина нежелательных последствий в сравнении с расчетной; отслеживаемые во времени количество и масштаб наиболее существенных непредвиденных нежелательных воздействий на проект разработки. Проверка внедрения Проверка 1. Регулярная проверка высшим руководством выполнения работ по управлению проектом. Практики, связанные со стандартным содержанием проверок со стороны высшего руководства, содержатся в описании Проверки № 1 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 2. Регулярные и событийные проверки менеджером проекта работ по управлению проектом. Практики, связанные со стандартным содержанием проверок со стороны руководства проекта, содержатся в описании Проверки № 2 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 3. Выполнение группой обеспечения качества (SQA) проверок и/или аудитов работ и промежуточных продуктов по управлению проектом и составление отчетов по их результатам. См. группу ключевых процессов «Обеспечение качества ПО». Как минимум, проверяется следующее: 1. Процесс разработки и пересмотра производственного процесса проекта. 2. Процесс подготовки планов разработки ПО и управления рисками. 3. Процессы управления проектом в соответствии с его производственным процессом. 4. Процессы сбора и предоставления соответствующих данных для базы данных ППО. 5. Процесс использования базы данных ППО для поддержки работ по планированию, проведению оценочных расчетов и слежению за ходом проекта. 9.5. Инженерия разработки программного продукта Группа ключевых процессов для уровня 3: определенный уровень Цель группы ключевых процессов «Инженерия разработки программного продукта» заключается в последовательном выполнении четко определенного процесса, интегрирующего все операции разработки в целях рационального и эффективного создания качественных и надежных программных продуктов. Инженерия разработки программного продукта включает в себя выполнение инженерных задач по созданию и сопровождению ПО с использованием производственного процесса проекта (описанного в группе ключевых процессов «Интегрированное управление разработкой ПО»), а также соответствующих методов и инструментов. Задачи инженерии разработки ПО включают в себя анализ системных требований, отнесенных к ПО (эти требования описываются в группе ключевых процессов «Управление требованиями»), разработку требований к ПО, разработку его архитектуры, проектирование, реализацию кода программы, интегрирование компонентов ПО и его тестирование в целях проверки выполнения определенных требований (т. е. системных требований, отнесенных к ПО, и требований к ПО). Разрабатывается и проверяется документация, необходимая для выполнения задач разработки (например, документ требований к ПО, документ архитектуры ПО, план и процедуры тестирования). Проверка документации должна подтвердить, что каждая задача использует результаты предшествующих задач, а их последовательное выполнение дает соответствующие результаты (включая задачи эксплуатации и сопровождения ПО). При внесении в проект утвержденных изменений, должны быть пересмотрены промежуточные программные продукты, планы, обязательства и процессы, на которые влияют эти изменения. Цели Цель 1. Определение, интеграция и последовательное выполнение задач разработки ПО. Цель 2. Поддержка взаимной согласованности промежуточных программных продуктов. Обязательства по выполнению Обязательство 1. Проект следует документированной организационной политике выполнения операций по разработке ПО. Эта политика обычно состоит из следующих положений: 1. Операции разработки ПО выполняются в соответствии с производственным процессом проекта. Практики, связанные с производственными процессами проектов, содержатся в описании Операций № 1 и 2 группы ключевых процессов «Интегрированное управление разработкой ПО». 2. Для создания и сопровождения программных продуктов используются соответствующие методы и инструменты. 3. Планы, задачи и продукты разработки должны отслеживаться до системных требований, отнесенных к ПО. В рамках этих практик системные требования, отнесенные к ПО, называются «установленными требованиями». Практики, связанные с системными требованиями, отнесенными к ПО, содержатся в группе ключевых процессов «Управление требованиями». Необходимые предпосылки Предпосылка 1. Выполнение задач разработки ПО должно быть обеспечено соответствующими ресурсами и финансированием. 1. Задачи разработки должны выполняться квалифицированными сотрудниками. В число задач входят: анализ требований к ПО, проектирование архитектуры ПО, составление кода, тестирование, поддержка ПО. 2. Задачи разработки обеспечиваются вспомогательными инструментальными средствами. Примеры общих вспомогательных инструментальных средств: рабочие станции, системы управления базами данных, справочные системы, графические инструменты, средства создания интерактивной документации, текстовые процессоры. Примеры вспомогательных инструментальных средств для анализа требований к ПО: инструменты для отслеживания требований, инструменты для создания спецификаций, инструменты для создания прототипов, средства моделирования, средства эмулирования. Примеры вспомогательных инструментальных средств для проектирования архитектуры ПО: инструменты для создания спецификаций, инструменты для создания прототипов, средства моделирования, языки описания архитектуры. Примеры вспомогательных инструментальных средств для кодирования: редакторы, компиляторы, генераторы перекрестных ссылок, средства печати. Примеры вспомогательных инструментальных средств для тестирования ПО: инструменты управления тестированием, генераторы тестов, тестовые драйверы, тестовые профайлеры, символьные отладчики, анализаторы тестового покрытия. Предпосылка 2. Технический персонал группы разработки ПО должен пройти необходимое обучение для выполнения своих задач. Технический персонал группы разработки ПО должен пройти обучение в предметной области проекта. Примеры обучения для выполнения анализа требований к ПО: принципы анализа требований к ПО; существующие требования к имеющемуся и поддерживаемому ПО; навыки, необходимые для сбора информации от конечных пользователей и экспертов в предметной области в целях установления требований к ПО (т. е. выявление требований); использование инструментов, методов, соглашений и стандартов, применяемых в проекте, для анализа требований к ПО. Примеры обучения для выполнения проектирования архитектуры ПО: концепции разработки архитектуры; существующая архитектура имеющегося и поддерживаемого ПО; использование инструментов, методов, соглашений и стандартов, применяемых в проекте, для проектирования архитектуры ПО. Примеры обучения для выполнения кодирования: применяемые языки программирования; обзор исходного кода существующих и поддерживаемых продуктов; использование применяемых в проекте инструментов, методов, соглашений и стандартов для разработки программ; методы тестирования модулей. Примеры обучения тестированию ПО и другим методам контроля: методы контроля (анализ, демонстрация, проверка, тестирование); планирование тестов; использование инструментов, методов, соглашений и стандартов, применяемых в проекте, для тестирования и проверки ПО. критерии готовности и завершения тестов; измерение тестового покрытия. См. группу ключевых процессов «Программа обучения». Предпосылка 3. Технический персонал группы разработки должен получить ориентацию в областях, связанных с разработкой ПО. Примеры областей, связанных с разработкой ПО: анализ требований к ПО, проектирование архитектуры ПО, составление кода, тестирование, управление конфигурацией ПО, обеспечение качества ПО. См. группу ключевых процессов «Программа обучения». Предпосылка 4. Менеджер проекта и все производственные менеджеры должны получить ориентацию в технических аспектах проекта разработки. Примеры ориентации: инструменты и методы разработки ПО, предметная область, промежуточные программные и связанные с ними продукты, как предназначенные для поставки заказчику, так и внутреннего пользования, инструкции по управлению проектом с использованием выбранных методов и инструментов. См. группу ключевых процессов «Программа обучения». Выполняемые операции Операция 1. Интеграция соответствующих методов и средств разработки ПО в производственный процесс проекта. Практики, связанные с производственными процессами проектов, содержатся в описании Операций № 1 и 2 группы ключевых процессов «Интегрированное управление разработкой ПО». 1. Задачи разработки ПО интегрируются между собой в соответствии с производственным процессом проекта. 2. Выбираются методы и инструменты, подходящие для использования в проекте. При выборе методов и инструментов учитывается их соответствие стандартам организации и производственному процессу проекта, существующий уровень квалификации персонала, возможности обучения, договорные требования, возможности методов и инструментов, простота их использования и возможности поддержки. Документируются обоснования выбора конкретного инструмента или метода. 3. Выбор и использование моделей управления конфигурацией, соответствующих проекту. Примеры моделей управления конфигурацией: модели внесения/извлечения данных, композиционные модели, транзакционные модели, модели установки признака изменений. 4. Инструменты для разработки и сопровождения программных продуктов помещаются в систему управления конфигурацией. См. группу ключевых процессов «Управление конфигурацией ПО». Операция 2. Разработка, сопровождение, документирование и проверка требований к ПО путем проведения систематического анализа установленных требований в соответствии с производственным процессом проекта. 1. Разработчики требований к ПО проверяют установленные требования, чтобы убедиться в том, что проблемы, влияющие на анализ требований к ПО, были выявлены и решены. Требования к ПО касаются его функций и производительности, интерфейсов с аппаратным и программным обеспечением, а также других компонентов системы (например, человека). 2. Для идентификации и разработки требований к ПО используются эффективные методики анализа требований. Примеры методик анализа требований: функциональная декомпозиция, объектно-ориентированная декомпозиция, изучение альтернатив, имитация, моделирование, создание прототипов, разработка сценариев. 3. Документируются результаты анализа требований и обоснования выбранного варианта. 4. Требования к ПО анализируются на реализуемость, понятность, непротиворечивость, возможность тестирования и полноту (если имеется в виду набор требований). Проблемы, связанные с требованиями к ПО, выявляются и рассматриваются группой, ответственной за системные требования. Соответствующие изменения вносятся как в установленные требования, так и в требования к ПО. См. группу ключевых процессов «Управление требованиями». 5. Требования к ПО документируются. 6. Группа, ответственная за системное и приемочное тестирование ПО, анализирует каждое требование к ПО, проверяя возможность его тестирования. 7. Идентифицируются и документируются методы проверки и оценки выполнения каждого требования к ПО. Примеры методов проверки и оценки выполнения: демонстрация, системное тестирование, приемочное тестирование, анализ, инспектирование. 8. Прежде чем документ требований к ПО будет считаться полностью готовым, он подвергается экспертной оценке. См. группу ключевых процессов «Экспертные оценки». 9. Документ требований к ПО рассматривается и утверждается. Примеры сотрудников, рассматривающих и утверждающих документ требований к ПО: менеджер проекта, менеджер по системному проектированию, производственный менеджер проекта, менеджер по тестированию ПО. 10. Документ требований к ПО рассматривается заказчиком и, при необходимости, конечными пользователями. В этих практиках термином «конечные пользователи» называются конечные пользователи, определенные заказчиком, либо их представители. 11. Документ требований к ПО помещается в систему управления конфигурацией. См. группу ключевых процессов «Управление конфигурацией ПО». 12. При любом изменении установленных требований соответствующие изменения вносятся и в требования к ПО. См. группу ключевых процессов «Управление требованиями». Операция 3. Разработка, поддержка, документирование и проверка архитектуры ПО выполняются в соответствии с производственным процессом проекта и требованиями к ПО в целях формирования основы для создания кода. Архитектура ПО состоит из системной архитектуры и архитектуры программы. 1. Создание и проверка критериев разработки архитектуры ПО. Примеры критериев разработки архитектуры ПО: возможность проверки, соблюдение стандартов для архитектуры ПО, удобство реализации, простота, удобство планирования реализации. 2. Проектировщики архитектуры проверяют требования к ПО, чтобы убедиться в том, что проблемы, влияющие на архитектуру ПО, были выявлены и решены. 3. По возможности используются стандарты разработки приложений. Примеры стандартов разработки приложений: стандарты интерфейсов операционной системы, стандарты пользовательских интерфейсов, стандарты сетевых интерфейсов. 4. Для проектирования архитектуры ПО используются эффективные методы. Примеры методов проектирования архитектуры ПО: создание прототипов, структурные модели, повторное использование элементов архитектуры, объектно-ориентированное проектирование, системный анализ. 5. Системная архитектура разрабатывается на ранних стадиях проекта с учетом ограничений, связанных с жизненным циклом ПО и используемой технологией. Системная архитектура описывает программную структуру верхнего уровня с четко определенными внутренними и внешними интерфейсами. 6. Описание системной архитектуры проходит проверку, в ходе которой подтверждается выявление и решение всех проблем, влияющих на архитектуру программы. 7. На основании системной архитектуры разрабатывается подробная архитектура программного комплекса. 8. Документируется описание архитектуры ПО (т. е. документируется собственно системная архитектура и детальная архитектура программы). Документация по архитектуре ПО должна описывать компоненты ПО, внутренние интерфейсы между ними, а также программные интерфейсы с другими программными системами, аппаратным обеспечением и другими системными компонентами (например, людьми). 9. Прежде чем документ, описывающий архитектуру ПО, будет считаться полностью готовым, он подвергается экспертной оценке. См. группу ключевых процессов «Экспертные оценки». 10. Документ, описывающий архитектуру ПО, помещается в систему управления конфигурацией. См. группу ключевых процессов «Управление конфигурацией ПО». 11. При любом изменении требований к ПО соответствующие изменения вносятся и в описание архитектуры ПО. Операция 4. Разработка, поддержка, документирование и проверка программного кода, выполняемые в соответствии с производственным процессом проекта в целях реализации требований к ПО и архитектуры ПО. 1. Программисты проверяют требования к ПО и план архитектуры ПО, чтобы убедиться в том, что проблемы, влияющие на создание кода, были выявлены и решены. 2. Для создания кода используются эффективные методы программирования. Примеры методов программирования: структурированное программирование, повторное использование кода. 3. Последовательность разработки программных модулей основывается на плане, учитывающем факторы критичности, сложности, интеграции и тестирования, а также потребности заказчика и, по возможности, конечных пользователей. 4. Каждый программный модуль, прежде чем будет считаться готовым, проходит экспертную оценку и модульное тестирование. См. группу ключевых процессов «Экспертные оценки». 5. Программный код помещается в систему управления конфигурацией. См. группу ключевых процессов «Управление конфигурацией ПО». 6. При любом изменении требований к ПО или архитектуры ПО соответствующие изменения вносятся и в программный код. Операция 5. Тестирование ПО выполняется в соответствии с производственным процессом проекта. 1. Разработка критериев тестирования и их проверка происходит с участием заказчика и, при необходимости, конечных пользователей. 2. Тестирование ПО осуществляется с помощью эффективных методов. 3. Адекватность тестирования определяется следующими факторами: уровень выполняемого тестирования, Примеры уровней тестирования: модульное тестирование, интеграционное тестирование, системное тестирование, приемочное тестирование. выбранная стратегия тестирования, Примеры стратегий тестирования: функциональная («черный ящик»), структурная («прозрачный ящик»), статистическая. достигаемое тестовое покрытие, Примеры тестового покрытия: покрытие операторов, покрытие путей, покрытие ветвей, профиль использования. 4. Для каждого уровня тестирования ПО устанавливаются и используются критерии готовности к тестированию. Примеры критериев, определяющих готовность к тестированию: до проведения интеграционного тестирования программные модули должны успешно пройти экспертную оценку и модульное тестирование, для системного тестирования ПО должно прежде успешно пройти интеграционное тестирование, перед приемочным тестированием проводится проверка тестовой готовности. 5. При необходимости на каждом уровне выполняется регрессионное тестирование, если происходят изменения в самой программе или в ее операционной среде. 6. Планы, процедуры и сценарии тестирования, прежде чем будут считаться готовыми, подвергаются экспертной оценке. См. группу ключевых процессов «Экспертные оценки». 7. Документы планов, процедур и сценариев тестирования должны быть управляемыми и контролируемыми. «Управляемый и контролируемый» означает, что в любой момент времени (прошлый или настоящий) известна версия используемого промежуточного продукта, а внесение изменений происходит управляемым образом. Если желательно реализовать еще большую степень формальности, промежуточный продукт может быть помещен в условия полномасштабного управления конфигурацией, как это описано в группе ключевых процессов «Управление конфигурацией ПО». 8. При любых изменениях установленных требований, требований к ПО, архитектуры ПО или тестируемого кода соответствующие изменения должны вноситься в планы, процедуры и сценарии тестирования. Операция 6. Планирование и выполнение интеграционного тестирования ПО проводится в соответствии с производственным процессом проекта. 1. Составляются и документируются планы интеграционного тестирования, основанные на плане разработки ПО. 2. Интеграционные сценарии и процедуры тестирования рассматриваются сотрудниками, ответственными за требования к ПО, архитектуру ПО, системное и приемочное тестирование. 3. Интеграционное тестирование ПО выполняется в соответствии с определенной версией документа требований к ПО и документа архитектуры ПО. Операция 7. Планирование и выполнение системного и приемочного тестирования ПО в целях демонстрации его соответствия требованиям. Системное тестирование позволяет убедиться в том, что созданный продукт удовлетворяет требованиям к ПО. Приемочное тестирование проводится в целях демонстрации заказчику и конечным пользователям того, что ПО удовлетворяет установленным требованиям. 1. Ресурсы для тестирования ПО должны выделяться заранее, чтобы обеспечить соответствующую подготовку тестов. Примеры работ по подготовке тестирования: подготовка тестовой документации, резервирование ресурсов для проведения тестирования, разработка тестовых драйверов, разработка симуляторов. 2. Системное и приемочное тестирование документируются в плане тестирования, который рассматривается и утверждается заказчиком и, при необходимости, конечными пользователями. План тестирования раскрывает следующие вопросы: общий подход к тестированию и проверке; сферы ответственности разрабатывающей организации, субподрядчиков, заказчика и, при необходимости, конечных пользователей; требования к испытательному оборудованию, оснащению и поддержке процесса тестирования; критерии приемки. 3. Тестовые сценарии и процедуры планируются и готовятся группой тестирования, которая независима от разработчиков ПО. 4. Тестовые сценарии документируются, после чего рассматриваются и утверждаются заказчиком и, при необходимости, конечными пользователями до начала тестирования. 5. Тестирование выполняется для программной системы, находящейся в базовой линии, и на основе также находящихся в базовой линии установленных требований и требований к ПО. 6. Проблемы, выявленные при тестировании, документируются и отслеживаются до устранения. Основные практики, связанные с документированием и отслеживанием проблем, содержатся в описании Операции № 9 группы ключевых процессов «Отслеживание хода проекта и контроль над ним» и Операции № 5 группы ключевых процессов «Управление конфигурацией». 7. Результаты тестов документируются и используются для определения, насколько ПО соответствует выдвинутым к нему требованиям. 8. Документы результатов тестирования должны быть управляемыми и контролируемыми. Операция 8. Документация, используемая при эксплуатации и поддержке ПО, разрабатывается и ведется в соответствии с производственным процессом проекта. 1. Для разработки документации используются соответствующие методы и инструменты. Примеры методов и инструментов: использование текстовых процессоров, изучение сценариев, повторное использование документации. 2. Специалисты по созданию документации принимают активное участие в планировании, разработке и ведении документации. 3. Предварительные версии документации разрабатываются на ранних стадиях жизненного цикла ПО и передаются на рассмотрение заказчику, конечным пользователям и, при необходимости, специалистам по поддержке ПО в целях получения отзывов. Примеры документации: документация по обучению работе с системой, интерактивная документация, руководство пользователя, руководство оператора, руководство по сопровождению. 4. Окончательные версии документации сверяются с базовыми линиями ПО для приемочного тестирования. 5. Документация подвергается экспертной оценке. См. группу ключевых процессов «Экспертные оценки». 6. Документация должна быть управляемой и контролируемой. 7. Окончательная документация рассматривается и утверждается заказчиком, конечными пользователями, и при необходимости, специалистами по поддержке ПО. Операция 9. Сбор и анализ данных по дефектам, выявленным при экспертной оценке и тестировании, выполняются в соответствии с производственным процессом проекта. Примеры собираемых и анализируемых данных: описание дефекта, категория дефекта, серьезность дефекта, модули, содержащие дефект, модули, подверженные влиянию дефекта, операция, в которой проявился дефект, экспертная оценка или тестовые сценарии, выявившие дефект, описание сценария, при выполнении которого был выявлен дефект, ожидаемые и фактические результаты, выявляющие дефект. Операция 10. Поддержка согласованности всех промежуточных программных продуктов, включая планы разработки ПО, описания процессов, установленные требования, требования к ПО, архитектуру ПО, планы и процедуры тестирования. 1. Промежуточные программные продукты документируются, а к созданной документации имеется постоянный доступ. 2. Требования к ПО, архитектура ПО, программный код и тестовые сценарии отслеживаются от источника их происхождения до продуктов последующих операций разработки ПО. 3. Документация, отслеживающая установленные требования до требований к ПО, архитектуры, кода и тестовых сценариев, должна быть управляемой и контролируемой. 4. По мере роста понимания разрабатываемого продукта предлагаются, анализируются и внедряются изменения промежуточных программных продуктов, планов, описания процессов и операций. Влияние изменений на ход проекта определяется до того, как эти изменения будут реализованы. При необходимости изменения установленных требований, эти изменения утверждаются и реализуются до начала изменения каких-либо связанных с этим промежуточных программных продуктов. Изменения всех программных продуктов, планов, описания процессов и операций должны координироваться. Задействованные группы информируются об изменениях и участвуют в их обсуждении. Примеры групп, задействованных в проекте: группа разработки ПО, оценки составляющих проекта, системного тестирования, обеспечения качества ПО, управления конфигурацией ПО, управления договорами, управления документацией. Изменения отслеживаются до своей реализации. Измерения и анализ Измерение 1. Выполнение измерений и использование их результатов для определения функциональных возможностей и качества программных продуктов. Примеры измерений: количество, типы и серьезность дефектов, выявленных в программных продуктах, отслеживаемые интегрально и по стадиям; установленные требования, сведенные по категориям (например, безопасность, конфигурация системы, производительность, надежность) и отслеживаемые до требований к ПО и системных тестовых сценариев. Измерение 2. Выполнение измерений и использование их результатов для определения статуса операций по инженерии разработки программного продукта. Примеры измерений: статус каждого установленного требования в течение всего проекта; отчеты о проблемах по их серьезности и длительности времени, в течение которого проблемы остаются нерешенными; определение статуса изменений установленных требований; трудоемкость анализа каждого предлагаемого изменения и их совокупности; количество изменений, внесенных в базовые линии, по их категориям (например, интерфейс, безопасность, конфигурация системы, производительность, практичность); объем внесенных изменений и затраты на их реализацию и тестирование, включая начальную оценку и фактические показатели объема и затрат. Проверка внедрения Проверка 1. Регулярная проверка высшим руководством выполнения мероприятий по инженерии разработки программного продукта. Практики, связанные со стандартным содержанием проверок со стороны высшего руководства, содержатся в описании Проверки № 1 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 2. Регулярные и событийные проверки мероприятий по инженерии разработки программного продукта со стороны менеджера проекта. Практики, связанные со стандартным содержанием проверок со стороны руководства проекта, содержатся в описании Проверки № 2 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 3. Проведение группой обеспечения качества проверок и/или аудитов работ и промежуточных продуктов, связанных с инженерией разработки программного продукта, и выполнение отчетов по их результатам. См. группу ключевых процессов «Обеспечение качества ПО». Минимальное содержание этих проверок и/или аудитов: 1. Проверка следующих качеств требований к ПО: полнота, корректность, непротиворечивость, осуществимость, возможность тестирования. 2. Выполнение критериев готовности и завершения для каждой задачи разработки ПО. 3. Соответствие программных продуктов указанным для них стандартам и требованиям. 4. Выполнение требуемого тестирования. 5. Выполнение системного и приемочного тестирования ПО в соответствии с документированными планами и процедурами. 6. Соответствие результатов тестирования приемочным критериям согласно документу плана тестирования ПО. 7. Успешное выполнение тестов и запись их результатов. 8. Документирование, отслеживание и принятие мер по устранению обнаруженных проблем и недостатков. 9. Отслеживание установленных требований до требований к ПО, архитектуры, кода и тестовых сценариев. 10. Документация, используемая при эксплуатации и поддержке ПО, сверяется ПО, находящимся в базовой линии конфигурации, и всеми уместными установленными требованиями до того, как программный продукт будет передан заказчику или конечным пользователям. 9.6. Межгрупповая координация Группа ключевых процессов для уровня 3: определенный уровень Цель группы ключевых процессов «Межгрупповая координация» заключается в том, чтобы установить средства активного взаимодействия разработчиков с другими инженерными группами в целях более эффективного и рационального удовлетворения потребностей заказчика. Межгрупповая координация включает в себя сотрудничество разработчиков и других инженерных групп в вопросах, связанных с требованиями, целями и проблемами системного уровня. Представители инженерных групп участвуют в установлении требований, целей и планов системного уровня, работая с заказчиком и, при необходимости, с конечными пользователями. Эти требования, цели и планы формируют основу для всех операций разработки. Технические рабочие интерфейсы и взаимодействия между группами должны планироваться и управляться с целью поддержки качества и целостности всей системы взаимодействий. Регулярно проводятся технические проверки и взаимообмен информацией с участием представителей инженерных групп, что позволяет поддерживать их осведомленность о статусе и планах остальных участников проекта, а также уделять соответствующее внимание вопросам межгрупповой координации и всей системы взаимодействий в целом. Практики, относящиеся к разработке ПО и связанные с этими инженерными задачами, описываются в группах ключевых процессов «Управление требованиями» и «Инженерия разработки программного продукта». Цели Цель 1. Согласование требований заказчика со всеми группами, задействованными в проекте. Цель 2. Взаимное согласование обязательств между задействованными инженерными группами. Цель 3. Выявление, отслеживание и разрешение инженерными группами проблем межгруппового взаимодействия. Обязательства по выполнению Обязательство 1. Проект следует документированной организационной политике по созданию междисциплинарных инженерных групп. Эта политика обычно состоит из следующих положений: 1. Системные требования к проекту и цели проектного уровня определяются и рассматриваются всеми задействованными группами. Примеры групп, задействованных в проекте: группа разработки ПО, оценки составляющих проекта, системного тестирования, обеспечения качества ПО, управления конфигурацией ПО, управления договорами, управления документацией. 2. Инженерные группы должны координировать свои планы и работы. 3. На менеджеров возлагается ответственность за установление и поддержку среды, способствующей взаимодействию, координации, поддержке и сотрудничеству между инженерными группами проекта, между проектом и заказчиком или, при необходимости, конечными пользователями, а также в масштабе всей организации в целом. В этих практиках термином «конечные пользователи» называются конечные пользователи, определенные заказчиком, либо их представители. Необходимые предпосылки Предпосылка 1. Координация действий по разработке ПО между различными инженерными группами должна быть обеспечена соответствующими ресурсами и финансированием. Предпосылка 2. Вспомогательные средства, используемые различными инженерными группами, должны быть совместимы и обеспечивать эффективный обмен информацией и координацию действий. Примеры вспомогательных инструментальных средств, которые должны быть совместимыми: текстовые процессоры, системы управления базами данных, графические инструменты, электронные таблицы, средства для отслеживания проблем, инструменты управления библиотекой. Предпосылка 3. Все менеджеры организации должны пройти необходимое обучение принципам коллективной работы. Примеры тем учебных занятий: формирование групп; управление группами; установление, стимулирование коллективной работы и содействие ей; групповая динамика. См. группу ключевых процессов «Программа обучения». Предпосылка 4. Все ведущие специалисты каждой инженерной группы должны получить ориентацию в процессах, методах и стандартах, используемых в остальных инженерных группах. См. группу ключевых процессов «Программа обучения». Предпосылка 5. Члены инженерных групп должны получить ориентацию в принципах коллективной работы. См. группу ключевых процессов «Программа обучения». Выполняемые операции Операция 1. Группа разработки ПО и другие инженерные группы сотрудничают с заказчиком и, при необходимости, конечными пользователями в целях установления системных требований. Эти группы выполняют следующие операции: 1. Определение критических характеристик в требованиях заказчика и, при необходимости, конечных пользователей. 2. Обсуждение критических зависимостей. 3. Документирование критериев приемки каждого продукта, поставляемого заказчику или конечным пользователям. Операция 2. Представители разработчиков совместно с представителями других инженерных групп отслеживают и координируют выполнение технических работ и решают технические вопросы. 1. Для отслеживания и координации выполнения технических работ представители этих групп проводят следующие мероприятия: координация спецификаций, участие в технических обзорах и утверждении системных требований и архитектуры; Системные требования и архитектура обычно входят в сферу ответственности группы системного проектирования, но предполагается, что в этих работах будут также принимать активное участие представители других инженерных групп. В состав системных требований и архитектуры входит следующее: общие системные требования, системная конфигурация (т. е. аппаратное и программное обеспечение, другие системные компоненты), распределение и отслеживание требований к этим системным компонентам, определения интерфейсов между этими системными компонентами. выполнение технических проверок и анализа на уровне проекта, необходимых для управления и контроля над изменениями системных требований и целей проекта на протяжении всего его жизненного цикла; отслеживание и проверка операций по проектированию и разработке аппаратного обеспечения, ПО и других системных компонентов; оценка, разработка соответствующих рекомендаций и отслеживание технических рисков, касающихся нескольких инженерных групп одновременно. Практики, связанные с управлением рисками, содержатся в описании Операции № 10 группы ключевых процессов «Интегрированное управление разработкой ПО». 2. Представители групп прорабатывают технические вопросы следующим образом: решение конфликтов проектного уровня и выяснение вопросов, касающихся системных требований и архитектуры; разработка совместных рекомендаций для решения проблем; изучение вопросов, касающихся организации процессов и затрагивающих все инженерные группы проекта. Операция 3. Для обмена информацией о межгрупповых обязательствах, а также для координации и отслеживания выполняемой работы используется документированный план. 1. Данный план является базовой линией для: календарного графика проекта, договорных и технических аспектов проекта, распределения обязанностей между инженерными группами. 2. План используется для координации действий различных инженерных групп. 3. План доступен для членов всех инженерных групп. 4. При обновлении плана учитываются все межгрупповые обязательства и изменения этих обязательств. 5. План обновляется по мере выполнения работ, отражая ход проекта и изменения его планов; в частности при завершении основных этапов проекта или значительных изменениях планов. 6. План рассматривается и утверждается всеми инженерными группами и менеджером проекта. Операция 4. Критические зависимости между инженерными группами выявляются, обсуждаются и отслеживаются в соответствии с документированной процедурой. Практики, связанные с управлением критическими зависимостями, содержатся в описании Операции № 9 группы ключевых процессов «Интегрированное управление разработкой ПО». Эта процедура обычно определяет следующее: 1. Каждая критическая зависимость должна быть явно определена, включая следующее: что должно быть подготовлено, кто должен это подготовить, когда это должно быть подготовлено, критерии приемки. 2. Критические зависимости обсуждаются группой разработки ПО совместно с другими инженерными группами проекта и организации. 3. Даты потребности и доступности объектов критической зависимости связываются с календарными графиками проекта и процесса разработки. 4. Соглашение по каждой критической зависимости документируется, проверяется и утверждается как получающей группой, так и группой, ответственной за подготовку объекта критической зависимости. 5. Критические зависимости регулярно отслеживаются и в случае необходимости по отношению к ним применяются корректирующие действия. Статус и даты фактического или ожидаемого выполнения этих обязательств сравниваются с планом, используемым для координации межгрупповых обязательств. Оценивается влияние позднего и досрочного выполнения обязательств на будущие работы и этапы. Отчеты о возникших и потенциальных проблемах передаются соответствующим менеджерам. Операция 5. Представители групп, получающих промежуточные продукты в качестве исходных данных, проверяют их, чтобы убедиться в соответствии этих продуктов своим потребностям. Операция 6. Межгрупповые проблемы, не решаемые отдельными представителями инженерных групп проекта, рассматриваются в соответствии с документированной процедурой. Примеры межгрупповых проблем: несовместимые календарные графики, неадекватное финансирование, технические риски, дефекты системной архитектуры и требований, проблемы системного уровня. Операция 7. Представители инженерных групп проекта периодически проводят технические проверки и совещания по обмену информацией. Участники этих проверок и совещаний решают следующие задачи: 1. Выяснение потребностей и запросов заказчика и, при необходимости, конечных пользователей. 2. Проверка хода технических работ проекта. 3. Проверка того, что группа интерпретирует и реализует технические требования в соответствии с системными требованиями. 4. Проверка выполнения обязательств. Практики, связанные с проверками, содержатся в группе ключевых процессов «Отслеживание хода проекта и контроль над ним». 5. Обсуждение технических рисков и других технических проблем. Практики, связанные с управлением рисками, содержатся в описании Операции № 10 группы ключевых процессов «Интегрированное управление разработкой ПО». Измерения и анализ Измерение 1. Выполнение измерений и использование их результатов для определения статуса мероприятий по межгрупповой координации. Примеры фактических измерений: объем трудозатрат и других ресурсов, израсходованных разработчиками на поддержку других инженерных групп; объем трудозатрат и других ресурсов, израсходованных другими инженерными группами на поддержку группы разработки ПО; выполнение конкретных задач и этапов разработчиками в целях поддержки деятельности других инженерных групп; выполнение конкретных задач и этапов другими инженерными группами в целях поддержки деятельности группы разработки ПО. Проверка внедрения Проверка 1. Регулярная проверка высшим руководством выполнения мероприятий по межгрупповой координации. Практики, связанные со стандартным содержанием проверок со стороны высшего руководства, содержатся в описании Проверки № 1 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 2. Регулярные и событийные проверки менеджером проекта мероприятий по межгрупповой координации. Практики, связанные со стандартным содержанием проверок со стороны руководства проекта, содержатся в описании Проверки № 2 группы ключевых процессов «Отслеживание хода проекта и контроль над ним». Проверка 3. Проведение группой обеспечения качества (группой SQA) проверок и/или аудитов работ и промежуточных продуктов по межгрупповой координации и выполнение отчетов по их результатам. См. группу ключевых процессов «Обеспечение качества ПО». Сфера ответственности по обеспечению качества для этой группы ключевых процессов может быть представлена функцией SQA, выполняемой всеми инженерными группами проекта. Минимальное содержание проверок и/или аудитов: 1. Процедура выявления, обсуждения и отслеживания критических зависимостей между инженерными группами проекта. 2. Управление межгрупповыми проблемами. 9.7. Экспертные оценки Группа ключевых процессов для уровня 3: определенный уровень Цель группы ключевых процессов «Экспертные оценки» заключается в эффективном устранении дефектов в промежуточных программных продуктах на ранних стадиях разработки. Важным следствием этой практики является улучшение понимания промежуточных программных продуктов и дефектов, которые могут быть предотвращены. Экспертные оценки включают в себя систематическое изучение промежуточных программных продуктов, проводимое экспертами-разработчиками в целях выявления дефектов и областей, в которые следует внести изменения. Конкретные продукты, подлежащие экспертной оценке, определяются в документе производственного процесса проекта, а их оценка планируется в составе мероприятий по планированию проекта разработки, как это описано в группе ключевых процессов «Интегрированное управление разработкой ПО». Эта группа ключевых процессов охватывает практики, связанные с выполнением экспертных оценок. Практики, определяющие конкретные промежуточные продукты, подлежащие экспертной оценке, содержатся в группах ключевых процессов, которые описывают разработку и сопровождение каждого промежуточного программного продукта. Цели Цель 1. Планирование работ по проведению экспертных оценок. Цель 2. Выявление и устранение дефектов в промежуточных программных продуктах. Обязательства по выполнению Обязательство 1. Проект следует документированной организационной политике проведения экспертных оценок. Эта политика обычно состоит из следующих положений: 1. Организация определяет стандартный набор промежуточных программных продуктов, подвергаемых экспертной оценке. 2. Для каждого проекта определяются промежуточные программные продукты, подвергаемые экспертной оценке. Практики, связанные с выявлением программных продуктов, подвергаемых экспертной оценке, содержатся в описании Операции № 1 группы ключевых процессов «Интегрированное управление разработкой ПО» и Операции № 2 группы ключевых процессов «Определение производственного процесса организации». Примеры промежуточных программных продуктов: системное ПО и вспомогательные программы, промежуточные программные продукты, как предназначенные для поставки заказчику, так и внутреннего пользования, программные (например, код) и непрограммные промежуточные продукты (например, документы), описания процессов. 3. Экспертные оценки проводятся под руководством ведущих экспертов, опытных в их проведении. 4. Экспертные оценки фокусируются не на разработчике, а на проверяемом промежуточном программном продукте. 5. Результаты экспертных оценок не должны использоваться руководством для оценки работы сотрудников. Необходимые предпосылки Предпосылка 1. Проведение экспертных оценок каждого проверяемого промежуточного программного продукта должно быть обеспечено соответствующими ресурсами и финансированием. Ресурсы и финансирование предоставляются для выполнения следующих операций: 1. Подготовка и распространение материалов экспертной оценки. 2. Руководство проведением экспертной оценки. 3. Рассмотрение материалов. 4. Участие сотрудников в экспертной оценке и в любых последующих проверках, которые могут потребоваться на основании дефектов, выявленных в ходе экспертной оценки. 5. Отслеживание доработки промежуточного программного продукта, устраняющей дефекты, выявленные в ходе экспертной оценки. 6. Сбор сведений и составление отчетов по результатам экспертных оценок. Предпосылка 2. Ведущие эксперты должны пройти необходимое обучение руководству экспертными оценками. Примеры тем учебных занятий: цели, принципы и методы экспертных оценок; планирование и организация экспертной оценки; критерии готовности к экспертной оценке и ее завершения; проведение экспертной оценки; отчетность по результатам экспертной оценки; отслеживание и подтверждение выполнения доработки по результатам экспертной оценки; сбор данных, необходимых для экспертных оценок. См. группу ключевых процессов «Программа обучения». Предпосылка 3 Участники экспертных оценок должны пройти необходимое обучение целям, принципам и методам экспертных оценок. Примеры тем учебных занятий: типы экспертных оценок (например, проверки требований к ПО, архитектуры ПО, кода и процедур тестирования ПО); цели, принципы и методы экспертных оценок; роли экспертов; определение трудоемкости подготовки и проведения экспертных оценок. См. группу ключевых процессов «Программа обучения». Выполняемые операции Операция 1. Экспертные оценки проводятся на плановой основе, а планы документируются. Эти планы определяют: 1. Промежуточные программные продукты, подлежащие экспертной оценке. В перечень выбранных промежуточных программных продуктов входит набор, определенный в стандартном производственном процессе организации. Практики, связанные со стандартным производственным процессом организации, содержатся в описании Операции № 2 группы ключевых процессов «Определение производственного процесса организации». 2. Календарный график проведения экспертных оценок. Для проведения каждой экспертной оценки, запланированной на ближайшее будущее, определяется обученный ведущий эксперт и остальные эксперты. Операция 2. Проведение экспертных оценок в соответствии с документированной процедурой. Эта процедура обычно определяет следующее: 1. Экспертные оценки планируются обученными ведущими экспертами и проводятся под их руководством. 2. Эксперты должны получить предварительные материалы для проведения оценок заранее, чтобы они смогли к ним соответствующе подготовиться. Предварительные материалы оценок должны включать в себя соответствующую исходную информацию для разработки промежуточного программного продукта, подлежащего проверке. Примеры соответствующей исходной информации: цели промежуточного программного продукта, применяемые стандарты, соответствующие требования к архитектурному модулю, детальная архитектура модуля программного кода. 3. Участникам экспертной оценки назначаются роли. 4. Определяются критерии готовности к экспертным оценкам и их завершения, подлежащие строгому соблюдению. Вопросы, связанные с несоответствием этим критериям, докладываются соответствующим менеджерам. 5. Для единообразной идентификации критериев конкретной оценки используются контрольные списки. Контрольные списки адаптируются к конкретному типу промежуточного продукта и экспертной оценки. Примеры адаптируемых пунктов контрольных списков: соответствие стандартам и процедурам, полнота, корректность, правила построения, возможности поддержки. Контрольные списки рассматриваются коллегами их автора и потенциальными пользователями. 6. Действия, определенные в ходе экспертной оценки, отслеживаются до своего выполнения. 7. Успешное завершение экспертных оценок, включая доработку выявленных недостатков, используется в качестве критерия завершения для соответствующей задачи. Операция 3. Запись данных о ходе и результатах экспертных оценок. Примеры данных: идентификация проверенного промежуточного программного продукта, объем промежуточного программного продукта, размер и состав группы экспертов, время, выделенное каждому эксперту на подготовку к оценке, продолжительность совещания по экспертной оценке, типы и количество обнаруженных и устраненных дефектов, трудоемкость доработки. Измерения и анализ Измерение 1. Выполнение измерений и использование их результатов для определения статуса работ по проведению экспертных оценок. Примеры измерений: количество выполненных экспертных оценок в сравнении с планом, общая трудоемкость выполненных экспертных оценок в сравнении с планом, количество проверенных промежуточных продуктов в сравнении с планом. Проверка внедрения Проверка 1. Проведение группой обеспечения качества (SQA) проверок и/или аудитов работ и промежуточных продуктов, связанных с экспертными оценками, и выполнение отчетов по их результатам. См. группу ключевых процессов «Обеспечение качества ПО». Минимальное содержание этих проверок и/или аудитов: 1. Проведение запланированных экспертных оценок. 2. Адекватное обучение ведущих экспертов для выполнения их ролей. 3. Полученное обучение или наличие опыта в выполнении своих ролей у экспертов. 4. Следование процессу подготовки, проведения экспертных оценок и выполнения действий по их результатам. 5. Своевременная подача полных и точных отчетов по результатам экспертных оценок. ПРИЛОЖЕНИЕ ЦЕЛИ КАЖДОЙ ГРУППЫ КЛЮЧЕВЫХ ПРОЦЕССОВ Ниже перечислены цели всех групп ключевых процессов по уровням зрелости. 1. Группы ключевых процессов для уровня 2: повторяемый уровень Управление требованиями Цель 1. Установление контроля над системными требованиями к ПО в целях формирования базовой линии, используемой разработчиками ПО и руководством проекта. Цель 2. Поддержка согласованности планов разработки, продуктов и операций с системными требованиями, отнесенными к ПО. Планирование проекта Цель 1. Документирование оценочных расчетов по компонентам проекта для их дальнейшего использования в планировании и отслеживании проекта разработки. Цель 2. Планирование и документирование работ и обязательств по проекту разработки. Цель 3. Принятие задействованными в проекте группами и сотрудниками обязательств, связанных с проектом разработки ПО. Отслеживание хода проекта и контроль над ним Цель 1. Сравнение фактических результатов и показателей с запланированными. Цель 2. В случае значительного отклонения фактических результатов и показателей от запланированных — применение корректирующих действий и контроль над их выполнением. Цель 3. Согласование изменений производственных обязательств с задействованными группами и сотрудниками. Управление производственным субподрядом Цель 1. Выбор генеральным подрядчиком квалифицированных субподрядчиков. Цель 2. Заключение соглашения о взаимных обязательствах между генеральным подрядчиком и субподрядчиком. Цель 3. Поддержка постоянного обмена информацией между генеральным подрядчиком и субподрядчиком. Цель 4. Отслеживание генеральным подрядчиком фактических результатов работы и производительности субподрядчика относительно принятых им обязательств. Обеспечение качества ПО Цель 1. Планирование работ по обеспечению качества ПО. Цель 2. Объективная проверка соответствия программных продуктов и технологических операций применяемым стандартам, процедурам и требованиям. Цель 3. Распространение информации между задействованными в проекте группами и сотрудниками о мероприятиях по обеспечению качества ПО и их результатах. Цель 4. Передача на рассмотрение высшему руководству вопросов несоответствия, не решаемых на уровне проекта. Управление конфигурацией ПО Цель 1. Управление конфигурацией ПО происходит на плановой основе. Цель 2. Выбранные промежуточные программные продукты определены, управляемы и доступны. Цель 3. Изменения в определенных промежуточных программных продуктах происходят управляемым образом. Цель 4. Распространение информации между группами и сотрудниками, задействованными в проекте, о состоянии и содержании базовых линий конфигурации. 2. Группы ключевых процессов для уровня 3: определенный уровень Координация производственного процесса организации Цель 1. Координация мероприятий по разработке и усовершенствованию производственного процесса в рамках всей организации. Цель 2. Выявление преимуществ и недостатков используемых производственных процессов в сравнении со стандартным процессом. Цель 3. Планирование мероприятий, проводимых на уровне организации в целях разработки и усовершенствования производственного процесса. Определение производственного процесса организации Цель 1. Разработка и сопровождение стандартного производственного процесса организации. Цель 2. Сбор, изучение и распространение информации, связанной с использованием СППО в проектах разработки ПО. Программа обучения Цель 1. Мероприятия по обучению проводятся на плановой основе. Цель 2. Обеспечение обучения навыкам и знаниям, необходимым для выполнения руководящих и технических ролей в процессе разработки ПО. Цель 3. Сотрудники группы разработки ПО и других смежных групп должны пройти обучение, необходимое для выполнения их ролей. Интегрированное управление разработкой ПО Цель 1. Получение производственного процесса проекта в виде адаптированной версии СППО. Цель 2. Планирование проекта и управление им в соответствии с его производственным процессом. Инженерия разработки программного продукта Цель 1. Определение, интеграция и последовательное выполнение задач разработки ПО. Цель 2. Поддержка взаимной согласованности промежуточных программных продуктов. Межгрупповая координация Цель 1. Согласование требований заказчика со всеми группами, задействованными в проекте. Цель 2. Взаимное согласование обязательств между задействованными инженерными группами. Цель 3. Выявление, отслеживание и разрешение инженерными группами проблем межгруппового взаимодействия. Экспертные оценки Цель 1. Планирование работ по проведению экспертных оценок. Цель 2. Выявление и устранение дефектов в промежуточных программных продуктах. 3. Группы ключевых процессов для уровня 4: управляемый уровень Количественное управление процессом Цель 1. Планирование работ по количественному управлению процессом. Цель 2. Установление количественного контроля над выполнением производственного процесса проекта. Цель 3. Количественное выражение продуктивности стандартного производственного процесса организации. Управление качеством ПО Цель 1. Планирование работ по управлению качеством ПО. Цель 2. Определение желаемых количественных показателей качества программного продукта и их приоритетов. Цель 3. Фактический процесс достижения желаемых показателей качества программных продуктов должен быть количественно определен и управляем. 4. Группы ключевых процессов для уровня 5: оптимизирующий уровень Предотвращение дефектов Цель 1. Планирование работ по предотвращению дефектов. Цель 2. Поиск и выявление общих причин возникновения дефектов. Цель 3. Определение приоритетов для общих причин возникновения дефектов и их систематическое устранение. Управление технологическими изменениями Цель 1. Планирование внедрения технологических изменений. Цель 2. Оценка новых технологий с целью определения их влияния на качество продукта и продуктивность производственного процесса. Цель 3. Внедрение подходящих новых технологий в производственный процесс организации. Управление изменениями процесса Цель 1. Планирование непрерывного усовершенствования процесса. Цель 2. Участие в работах по усовершенствованию производственного процесса организации должно носить общекорпоративный характер. Цель 3. Непрерывное усовершенствование СППО и производственных процессов отдельных проектов. ССЫЛКИ НА ИСПОЛЬЗУЕМУЮ ЛИТЕРАТУРУ Brooks 87 F.P. Brooks, «No Silver Bullet: Essence and Accidents of Software Engineering», IEEE Computer, Vol. 20, No. 4, April 1987, pp. 10–19. Crosby 79 P.B. Crosby, Quality is Free, McGraw-Hill, New York, NY, 1979. Curtis 90 B. Curtis, «Managing the Real Leverage in Software Productivity and Quality,» American Programmer, Vol. 3, No. 7, July 1990, pp. 4–14. Deming 86 W. Edwards Deming, Out of the Crisis, MIT Center for Advanced Engineering Study, Cambridge, MA, 1986. DoD 87 Report of the Defense Science Board Task Force on Military Software, Office of the Under Secretary of Defense for Acquisition, Washington, D.C., September 1987. Fagan 86 M.E. Fagan, «Advances in Software Inspections», IEEE Transactions on Software Engineering, Vol. 12, No. 7, July 1986, pp. 744–751. Fowler 90 P. Fowler and S. Rifkin, Software Engineering Process Group Guide, Software Engineering Institute, CMU/SEI-90-TR-24, ADA235784, September 1990. Freedman 90 D.P. Freedman and G.M. Weinberg, Handbook of Walkthroughs, Inspections, and Technical Reviews, Third Edition, Dorset House, New York, NY, 1990. Gabor 90 A. Gabor, The Man Who Discovered Quality, Random House, New York, NY, 1990. GAO-92-48 Embedded Computer Systems: Significant Software Problems on C-17 Must Be Addressed, GAO/IMTEC-92-48, May 1992. Humphrey 87a W.S. Humphrey, Characterizing the Software Process: A Maturity Framework, Software Engineering Institute, CMU/ SEI-87-TR-11, ADA182895, June 1987. Humphrey 87b W.S. Humphrey and W.L. Sweet, A Method for Assessing the Software Engineering Capability of Contractors, Software Engineering Institute, CMU/SEI-87-TR-23, ADA187320, September 1987. Humphrey 88 W.S. Humphrey, «Characterizing the Software Process», IEEE Software, Vol. 5, No. 2, March 1988, pp. 73–79. Humphrey 89 W.S. Humphrey, Managing the Software Process, AddisonWesley, Reading, MA, 1989. Humphrey 91a W.S. Humphrey, D.H. Kitson, and J. Gale, «A Comparison of U.S. and Japanese Software Process Maturity», Proceedings of the 13th International Conference on Software Engineering, Austin, TX, 13–17 May 1991, pp. 38–49. Humphrey 91b W.S. Humphrey, «Process Fitness and Fidelity», Proceedings of the Seventh International Software Process Workshop, 16–18 October 1991. IEEE-STD-610 ANSI/IEEE Std 610.12-1990, «IEEE Standard Glossary of Software Engineering Terminology», February 1991. Imai 86 M. Imai, Kaizen: The Key to Japan’s Competitive Success, McGraw-Hill, New York, NY, 1986. Juran 88 J.M. Juran, Juran on Planning for Quality, Macmillan, New York, NY, 1988. Juran 89 J.M. Juran, Juran on Leadership for Quality, The Free Press, New York, NY, 1989. Kitson 92 D.H. Kitson and S. Masters, An Analysis of SEI Software Process Assessment Results: 1987–1991, Software Ingineering Institute, CMU/SEI-92-TR-24, July 1992. Paulk 91 M.C. Paulk, B. Curtis, M.B. Chrissis, et al, Capability Maturity Model for Software, Software Engineering Institute, CMU/ SEI-91-TR-24, ADA240603, August 1991. Paulk 93a M.C. Paulk, B. Curtis, M.B. Chrissis, and C.V. Weber, Capability Maturity Model for Software, Version 1.1, Software Engineering Institute, CMU/SEI-93-TR-24, February 1993. Paulk 93b M.C. Paulk, C.V. Weber, S. Garcia, M.B. Chrissis, and M. Bush, Key Practices of the Capability Maturity Model, Version 1.1, Software Engineering Institute, CMU/SEI-93-TR-25, February 1993. Radice 85 R.A. Radice, J.T. Harding, P.E. Munnis, and R.W. Phillips, «A Programming Process Study», IBM Systems Journal, Vol. 24, No.2, 1985. Siegel 90 J.A.L. Siegel, et al., National Software Capacity: Near-Term Study, Software Engineering Institute, CMU/SEI-90-TR-12, ADA226694, May 1990. Weber 91 C.V. Weber, M.C. Paulk, C.J. Wise, and J.V. Withey, Key Practices of the Capability Maturity Model, Software Engineering Institute, CMU/SEI-91-TR-25, ADA240604, August 1991.