Модель СММ Capability Maturity Model была разработана в 1991 году Институтом программной инженерии Университета Карнеги-Меллона (Software Engineering Institute, SEI) для разработки программных продуктов. С течением времени было выпущено целое семейство моделей: SW-CMM — для программных продуктов, SE-CMM — для системной инженерии, Acquisition CMM — для закупок, People CMM — для управления людскими ресурсами, ICMM —для интеграции продуктов.
Разнообразные модели оказались достаточно сложными для понимания и внедрения. Поскольку они были созданы разными группами специалистов, содержание этих моделей не всегда согласовывалось друг с другом, а также с требованиями международных стандартов. Поэтому в 2002 году SEI опубликовал новую модель CMMI (Capability Maturity Model Integration), объединяющую ранее выпущенные модели и учитывающую требования международных стандартов.
Рис. 1. Области процессов по категориям процессов непрерывного представления CMMI |
Внедрение СММ/CMMI позволяет улучшить структуру и качество процессов (основные проблемы в программных разработках — это проблемы управления, а не технические проблемы), обеспечить стабильно высокое качество разработок и освоить процессы, которые могут служить основой для повышения конкурентной способности и дальнейшего развития и расширения компании.
В основе CMM/CMMI лежит понятие процесса. Принятие этой концепции помогает избежать естественной для многих организаций тенденции винить в неудачах людей. Увольнение сотрудников — не решение проблемы. За последние десятилетия произошли революционные изменения в технологии, однако проблемы успешного выполнения проекта остались. В этом аспекте технология также не решение проблемы. Ценность процесса в том, что он помогает уловить и использовать наивысшие достижения в будущих проектах. Именно на этой предпосылке и базируется CMMI.
СММ/CMMI — это модели. И воспринимать их следует именно как модели, т.е. упрощенное представление мира. Модели СММ/CMMI содержат существенные элементы процессов, обеспечивающих разные стороны деятельности, и могут быть использованы как руководство для разработки и улучшения производственных процессов. В официальных изданиях модели подчеркивается, что она не представляет собой процессы или их описание. Реальные процессы в любой организации зависят от множества факторов, включая специфику бизнеса, структуру и размер организации.
Ничто не дается даром. Использование CMMI в качестве основы для улучшения процессов требует определенных организационных изменений. Такие изменения могут включать разработку общей технологии и языка как для программной, так и для системной инженерии, коренное улучшение коммуникаций, тесную интеграцию процессов системной и программной инженерии.
Существует реальная опасность использования CMMI для достижения кратковременных конъюнктурных целей. Мировой опыт доказывает, что успешными являются лишь те программы улучшений, которые привязаны к долгосрочным бизнес-целям организации.
Варианты модели
Модель CMMI выпущена в двух вариантах — непрерывное представление и стадийное представление.
В основе стадийного представления лежит концепция зрелости процессов организации в целом (5 уровней зрелости). В основе непрерывного представления лежит концепция возможностей процессов в определенной области (6 уровней).
Различие между двумя представлениями заключается в том, что концепция возможностей процессов рассматривает комплекс действий («практик»), связанных с одной областью процессов, в то время как концепция зрелости процессов рассматривает комплекс процессов в масштабах всей организации.
Стадийное представление CMMI основано на том, что для достижения определенного уровня зрелости организация должна внедрить все без исключения процессы, относящиеся к данному и всем предыдущим уровням зрелости. Так, организация, ставящая целью достичь 4-го уровня зрелости должна освоить все процессы 2-го, 3-го и 4-го уровней. Если окажется, что данная организация освоила все процессы 3-го и 4-го уровней, но не освоила хотя бы одного процесса 2-го уровня зрелости, она не будет признана соответствующей даже 2-му уровню зрелости.
Непрерывное представление CMMI рассматривает четыре категории процессов: управление процессами, управление проектами, инженерия, поддержка. Организация может сосредоточиться на той области процессов, которая является для нее наиболее критической. В этом случае можно говорить об уровне потенциальных возможностей для выбранной области процессов. Это означает, например, что организация может достичь 5-го уровня потенциальной возможности по управлению проектами и оставаться ниже 2-го уровня потенциальной возможности по управлению процессами.
Как СММ, так и CMMI (стадийное представление) предусматривают пять уровней зрелости организации: начальный, управляемый, определенный, количественно управляемый, оптимизационный.
В стадийном представлении CMMI каждый уровень зрелости характеризуется совокупностью процессов, которые в модели обозначаются как «Области процессов» (Process Area). Области процессов для каждого уровня зрелости представлены на рис. 2; как видно из этого рисунка, подавляющее количество процессов относятся ко 2-му и 3-му уровням зрелости.
Рис. 2. Области процессов для каждого уровня зрелости
На пути к совершенству
В чем привлекательность CMM и CMMI для разработчиков программных продуктов и компаний, специализирующихся на офшорных программных услугах? Это не только свидетельство принадлежности к «клубу избранных». Это еще и надежда сделать производственные процессы управляемыми, а результаты предсказуемыми. Считается, что при достижении уже 3-го уровня зрелости резко ослабляется зависимость деятельности компании от индивидуальных особенностей конкретных исполнителей. В этом аспекте ключевые практики CMMI можно использовать в качестве «рецепта» улучшения действующих процессов и основы для разработки новых процессов.
CMMI — большая по объему и сложная для понимания модель. При ее внедрении возникает большое количество проблем, связанных с интерпретацией, пониманием сотрудниками, объективностью оценок и эффективным применением. В зависимости от способа применения преимущества модели могут быть использованы полностью или утеряны.
Модель CMMI предоставляет комплекс общедоступных критериев, описывающих характеристики организаций, которые успешно усовершенствовали свои процессы. Модель может быть использована как для установления производственных процессов, так и для усовершенствования существующих процессов. В любом случае требуется профессиональное суждение для интерпретации практик CMMI.
Также необходимо достаточно глубокое понимание используемой модели, особенностей самой организации, делового окружения и специфических обстоятельств, сопровождающих внедрение модели.
Для полного понимания практик CMMI необходимо принять во внимание весь контекст их использования. Модель CMMI не предписывает, какие процессы являются правильными для организации или проекта, но устанавливает минимальные критерии, необходимые для планирования и применения процессов, выбранных организацией в качестве основы для улучшений.
Кирилл Мильман (kmilman@regent.ru) — руководитель службы управления качеством холдинговой компании «Регент», Семен Мильман (SMilman@IBS.RU) — директор по качеству Центра Аутосорсинга DATAFORT группы компаний IBS (Москва). Этой статьей авторы открывают серию публикаций по CMMI.
Основные компоненты CMMI
Область процессов (process area) — группа взаимосвязанных практик, выполнение которых позволяет достичь цели данной группы процессов.
Рис. I. Основные компоненты стадийного представления CMMI |
Цель (goal) представляет собой заявление на высшем уровне о том, что должно быть достигнуто при эффективном применении практик. Специальные цели применимы к данной области процессов.
Практика (practice) — описание действий, которые следует предпринять, чтобы «привести в действие» ключевые элементы данной области процессов. Специальная практика — это активность, которая необходима для достижения специальной цели.
Типичный рабочий продукт (typical work product) — пример того, что должно быть получено в результате выполнения специальной или общей практики. Эти примеры названы типичными рабочими продуктами, потому что могут существовать и другие, не менее эффективные, рабочие продукты.
Субпрактика (subpractice) — детальное описание действий, которые могут служить руководством для интерпретации специальных и общих практик. Субпрактики могут восприниматься как предписывающие элементы, но в действительности они носят информативный характер и дают полезные идеи о том, что реально может принести пользу для улучшения процессов.
Уточнение (discipline amplification) содержат информацию о конкретной инженерной дисциплине (например, программирование, системный инжиниринг) и связаны со специальными практиками.
Рис. II. Основные компоненты непрерывного представления CMMI |
Общая цель (generic goal) называется общей потому, что одна и та же формулировка цели появляется в различных областях процессов. В стадийном представлении CMMI каждая область процессов имеет только одну общую цель.
Общая практика (generic practice) — элемент институализации процессов, некоторого рода гарантия того, что процессы данной области будут эффективными, повторяемыми и стабильными.
Уточнения общих практик (Generic practice elaborations) служат руководством по применению общих практик к конкретной области процессов.