Второй уровень. Компания на основе анализа успешных проектов начинает повторно использовать подходящие ПСПО. Положительная практика документируется, организуется учеба сотрудников и определяются пути улучшения ПСПО для их применения в смежных проектах. Создаются внутрифирменные стандарты ПСПО, внедряются процессы планирования и контроля за работой. Налаживается обратная связь с заказчиками. Определяются примерные ресурсы на используемые ПСПО (например: для процесса тестирования модуля из 10 тыс. строк требуется один программист, месяц времени и 1000 долл.). Однако успех проектов по-прежнему зависит от ведущих специалистов, а ПСПО разработаны только для конкретных областей (бухгалтерское или математическое ПО и т. п.). Но фирме уже удается укладываться в заданные сроки и бюджет (с определенной вероятностью отклонения).
Проект разбивается на небольшие части и становится более понятным менеджерам и разработчикам. Обычно на этом уровне компания создает информационные и функциональные модели, что нередко считается чуть ли не пределом совершенства и критерием высочайшего профессионализма. Увы, этот уровень не дотягивает даже до среднемирового. Дело в том, что такие модели не объясняют, каким образом будут реализовываться конкретные программные блоки. Поэтому на этапе программирования все проблемы решаются по мере их возникновения.
Третий уровень. Это уже уровень мирового класса. Компания детально стандартизует используемые ПСПО (пока для решения достаточно общих задач) с учетом их дальнейшего развития. Все процессы интегрированы в жестко регламентированный общефирменный процесс разработки ПО. При этом большинство ПСПО удается успешно адаптировать для работы над проектами из разных областей. Каждый раз по завершении проекта ПСПО улучшаются, причины улучшений документируются, и новые проекты реализуются на основе более зрелых процессов. Широко внедряются всевозможные учебные программы. Роль отдельных личностей перестает влиять на результат.
Этот уровень характеризуется тем, что в фирме должна быть создана специальная группа софт-инжиниринга (software engineering process group). Теперь и менеджеры, и программисты понимают, как будут реализовываться программные блоки системы, потому что их внутренняя структура формализуется в соответствии с требованиями CMM. Каждый сотрудник - от кодировщика до руководителя - точно знает, что он должен сделать.
При возникновении у заказчика новых требований удается оценить риск изменения проекта. В сравнении со вторым уровнем проекты реализуются быстрее и с меньшими затратами. Снижается вероятность отклонения от срока и уменьшается величина этого отклонения. Фирма подготовлена к любым непредвиденным проблемам и способна их решить. Заказчик в любой момент может получить детальную информацию о текущем состоянии проекта.