CMM/CMMI — модель зрелости процессов создания ПО, или эволюционная модель развития способности компании разрабатывать качественное программное обеспечение. Модель CMM не противоречит международным стандартам ИСО и близка по духу концепции и теории TQM (Total Quality Management).
Ключевым понятием стандарта является зрелость организации. Незрелой считается организация, в которой процесс разработки программного обеспечения зависит только от конкретных исполнителей и менеджеров, а решения зачастую просто импровизируются «на ходу» — то, что на современном языке называется творческим подходом, или искусством. В этом случае велика вероятность превышения бюджета или выхода за рамки сроков сдачи проекта, поэтому менеджеры и разработчики вынуждены заниматься только разрешением актуальных проблем, становясь тем самым заложниками собственного программного продукта. К сожалению, на данном этапе развития находится большинство компаний (по градации CMM этот уровень обозначается числом 1).
В зрелой организации, напротив, имеются четко определенные процедуры создания программных продуктов и отработанные механизмы управления проектами. Все процедуры и механизмы по мере необходимости уточняются и совершенствуются в пилотных проектах. Оценки времени и стоимости выполнения работ основываются на накопленном опыте и достаточно точны. Наконец, в компании существуют стандарты на процессы разработки, тестирования и внедрения, а также правила оформления конечного программного кода, компонентов, интерфейсов и т.д. Все это составляет инфраструктуру и корпоративную культуру, поддерживающую процесс разработки программного обеспечения. Технология выпуска будет лишь незначительно меняться от проекта к проекту на основании абсолютно стабильных и проверенных подходов.
Существует 5 уровней зрелости, каждый из которых указывает на зрелость процессов организации.
5. Фокус на совершенствование процессов |
Оптимизируемый |
4. Процессы измеряются и контролируются |
Управляемый на основе количественных данных |
3. Процессы определены на уровне всей организации. Процессы исполняются заблаговременно |
Определенный |
2. Процессы определены на уровне проектов. Зачастую процессы появляются в ответ на определенные события |
Управляемый |
1. Процессы непредсказуемые, слабо контролируемые. процессы появляются в ответ на определенные события |
Начальный |