Чтобы умно поступать одного ума мало.

Ф. М. Достоевский

Сергей Бобровский

Окончание. Начало см. PC Week/RE, № 3

Компании сертифицируются институтом SEI (Software Engineering Institute) по пяти уровням зрелости (УЗР), каждый из которых описывается в модели CMM (Common Maturity Model) набором целевых критериев. Эти критерии определяют, что компания должна делать, чтобы ее процессы создания ПО (ПСПО) обеспечивали надлежащее качество проекта. Фактически оценке подвергается не компания или продукты, а проекты, то есть определяется, насколько профессионально компания способна разрабатывать ПО. Чтобы компания соответствовала тому или иному УЗр, требуется, чтобы все ее проекты соответствовали этому уровню. В понятие проекта входит, конечно, не только разработка ПО, но и его сопровождение.

Пять уровней CMM

Первый уровень. ПСПО фирмы никак не организованы, и реальные попытки их улучшения не предпринимаются. Практически 99% отечественных программистских компаний соответствуют этому уровню. Успех проектов зависит только от индивидуальных способностей сотрудников, и обычно ни сроки, ни бюджет не укладываются в заданные границы. Сам проект представляет собой “черный ящик”, когда известно только, что есть “на входе” (число программистов и их примерная производительность) и что должно быть на “выходе” (продукт в соответствии с техническим заданием).

Второй уровень. Компания на основе анализа успешных проектов начинает повторно использовать подходящие ПСПО. Положительная практика документируется, организуется учеба сотрудников и определяются пути улучшения ПСПО для их применения в смежных проектах. Создаются внутрифирменные стандарты ПСПО, внедряются процессы планирования и контроля за работой. Налаживается обратная связь с заказчиками. Определяются примерные ресурсы на используемые ПСПО (например: для процесса тестирования модуля из 10 тыс. строк требуется один программист, месяц времени и 1000 долл.). Однако успех проектов по-прежнему зависит от ведущих специалистов, а ПСПО разработаны только для конкретных областей (бухгалтерское или математическое ПО и т. п.). Но фирме уже удается укладываться в заданные сроки и бюджет (с определенной вероятностью отклонения).

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

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

Этот уровень характеризуется тем, что в фирме должна быть создана специальная группа софт-инжиниринга (software engineering process group). Теперь и менеджеры, и программисты понимают, как будут реализовываться программные блоки системы, потому что их внутренняя структура формализуется в соответствии с требованиями CMM. Каждый сотрудник  -  от кодировщика до руководителя  -  точно знает, что он должен сделать.

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

Четвертый уровень. Все ПСПО компании могут быть использованы для работы над программными проектами разной тематики. Процессы оценены по множеству критериев, максимально документированы и легко управляемы. Фактически они превращены в рабочие инструменты.

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

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

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

Описание уровней CMM

Каждый УЗР (за исключением, конечно, первого) описывается областями ключевых процессов (ОКП), определяющими ключевые цели и действия для их достижения. Если эти действия по руководству проектами не будут исполняться, ПСПО компании не обеспечат требуемое качество ПО. Цель ОКП считается достигнутой при успешном завершении всех ориентированных на нее действий. Для сертификации компании требуется, чтобы были достигнуты все цели каждой ОКП. Какими способами, с помощью каких технологий фирма будет выполнять эти действия, значения не имеет.

Некоторые ОКП уровней 2 -5

УЗР 2. Подбор сотрудников, учет производительности их труда и документирование обязанностей; контроль за соответствием создаваемого продукта требованиям заказчика; контроль качества в соответствии с внутрифирменными стандартами; контроль за работой над проектами; планирование проектов, определение их объемов и требуемых ресурсов.

УЗР 3. Координация работы внутри групп  -  каждый сотрудник включается в процессы оценки и совершенствования своей работы; координация совместной работы групп для более полного видения проекта; создание формальных моделей для описания программных модулей, тестирования и ведения групповых проектов; выбор и использование наиболее подходящих программных и бизнес-технологий во всех процессах управления работой с использованием формальных методик; организация регулярной учебы; выявление ошибок на ранних стадиях.

УЗР 4. Управление качеством, производительностью и эффективностью ПСПО на базе их количественных характеристик. На этом уровне цели имеют числовые эквиваленты (реальные примеры: продукт должен иметь не более одной ошибки на 10000 строк кода; отклонение продолжительности проекта от запланированной не должно превышать 3%), поэтому менеджеры способны точно оценить результаты своих решений. Влияние любых побочных воздействий оценивается перед началом проекта.

Главная ОКП данного уровня  -  статистический контроль. Конкретные нормы каждая компания разрабатывает самостоятельно. Это может быть, например, число ошибок, обнаруженных во время семантического анализа текстов, при тестировании, в процессе эксплуатации и т. д.

УЗР 5. Непрерывное глобальное улучшение ПСПО. При этом процессы изменяться могут как постепенно, так и резко; предупреждение ошибок во избежание их повторения в будущем; управление технологиями  -  эффективность новых технологий оценивается количественно, и они легко интегрируются в ПСПО. Интересно, что даже творческое озарение и уникальные открытия на пятом уровне можно оценить численно и включить в план! Такие возможности дают компании огромное конкурентное преимущество.

Уровень  зрелости  компании  -  уровень  взаимопониманиЯ  между менеджерами  и  программистами

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

Переход от уровня к уровню занимает несколько лет. Чтобы перейти на второй уровень, надо стремиться формализовывать удачные ПСПО. Ключевую роль здесь играют менеджеры, которые должны собирать и документировать нужную информацию. На УЗР 2 начинается улучшение ПСПО, на УЗР 3  -  интеграция процессов, анализ и обобщение результатов успешных проектов.

Четвертый и пятый уровни редко встречаются в индустрии ПО. По данным журнала CrossTalk, на май 1997 г. из 533 американских фирм, выполняющих крупнейшие коммерческие, государственные и военные заказы, к УЗР 1 относилось 328 фирм, к УЗР 2  -  124, к УЗР 3  -  70, к УЗР 4  -  9 и к УЗР 5  -  только две компании. Для достижения этих уровней CMM требуется десять и более лет. Но даже УЗР 3 позволяет смело выходить на международную арену. Самое главное  -  для использования CMM компании не надо искать сотрудников с какими-то уникальными способностями, достаточно понять общую идею. Как уже говорилось, в руководстве, включающем все ОКП и другую информацию, детально описано, что надо делать, чтобы развиваться в соответствии с моделью CMM. Следовать регламентированным действиям CMM способен любой менеджер среднего класса.

Что дальше?

Текущая версия CMM 1.1 ориентирована на крупные компании, занимающиеся реализацией очень больших проектов. Но она вполне может использоваться группами из двух-трех человек или отдельными программистами для выполнения небольших проектов (продолжительностью до трех месяцев). В таких случаях CMM может сыграть жизненно важную рольпоскольку поступление новых заказов во многом определяется качеством ранее реализованных проектов. Небольшие группы вполне удовлетворятся уровнем 2, так как для небольшого проекта отклонение от срока на пару недель непринципиально. Тем не менее сейчас заканчивается работа над специальной версией SA-CMM 1.01 (Software Acquisition Capability Maturity Model) для небольших фирм, групп программистов и индивидуальных разработчиков.

В следующей, второй версии CMM модель развития будет существенно пересмотрена. Не потому, что текущее описание некорректно, просто SEI как организация пятого уровня зрелости постоянно улучшает CMM и разработала новую, более эффективную модель. В ней изменятся все уровни (с сохранением преемственности), более комплексно будут определены ОКП УЗР 2 и 3, но основной акцент будет сделан на УЗР 4 и 5 как наиболее актуальные для активно развивающейся американской индустрии ПО.

Небольшой пример

Группа оборонно-космических проектов компании Boeing, сертифицированная летом 1996 г. по пятому уровню CMM, выполняла заказ Минобороны США по разработке и обеспечению полного жизненного цикла ПО для системы космической транспортировки оборудования и пристыковки грузовых модулей. Это ПО использовалось как на наземных станциях слежения, так и в бортовых компьютерах космических аппаратов. Когда группа обладала УЗР 4, во время разработки выявлялось 89% ошибок (из них 70%  -  на этапе тестирования). Теперь выявляются практически все ошибки, причем на ранних стадиях, а за полгода, прошедщие после сертификации по УЗР 5, субъективная оценка пользователями качества ПО возросла с 97% до 100%.

Описание CMM и различные комментарии можно найти на узле www.sei.cmu.edu. Если и в России кто-нибудь использует CMM, напишите мне по адресу: softart@postman.ru.

***

Эволюционное развитие компании по модели Common Maturity Model позволяет постепенно добиваться лучшего взаимопонимания между ее менеджерами и программистами  во все возрастающем масштабе

Версия для печати