Capability Maturity Model - CMM
Surgiu na área militar do EUA ao terceirizar a produção de software, havia necessidade de qualificar uma empresa de software.
Definição
É uma soma de “melhores práticas” para diagnóstico e avaliação de maturidade no desenvolvimento de software.
Organizações maduras:
- papéis e responsabilidades bem definidos
 - existe base históricas
 - é possível julgar a qualidade do produto
 - qualidade é monitorada
 - o processo pode ser atualizado
 - modelo de comunicação bem definido
 
Organização imaturas:
- processo improvisado
 - não possui base histórica (a cada novo projeto um recomeço)
 - não há maneira objetiva de julgar a qualidade do produto
 - não há rigor no processo
 - resolução de crises imediatas
 
O modelo é definido por 5 níveis de maturidade
- Inicial - todos estamos nele, quando não existe clareza na forma de desenvolvimento de software. Não há KPAs. Depende do desenvolvedor que abraça o projeto e o leva até o fim.
 Repetível - o desenvolvimento de software já tem alguma repetição de sucesso nas entregas. Empresa já adota algumas práticas sempre. Já se consegue estimar com maior clareza. Seria o primeiro nível de maturidade. É o passo mais difícil, por ter que sair de zero maturidade. Possui as seguintes KPAs:
gerenciamento de requisitos
- planejamento de projetos
 - gerenciamento de subcontratação (terceiros)
 - garantia da qualidade de software
 gerenciamento de configuração
Definido - já implantou e tem uma série de práticas definidas. É obrigatório seguir padrões, não é possível alguém fazer algo diferente. KPAs:
revisões
- coordenação de intergrupos
 - engenharia de produto de software
 - gerenciamento de software integrado
 - programa de treinamento
 - foco no processo da organização
 definição do processo da organização
Gerenciado - quando se consegue fazer medições quantitativas no processo. Fazer medições no produto é praticar o “nível gerenciado”. KPAs:
gerenciamento quantitativo da qualidade do software
gerenciamento quantitativo do processo
Otimizado - é a melhoria contínua do processo de desenvolvimento. Promover inovação no seu processo. KPAs:
gerenciamento de mudança no processo
- gerenciamento de mudança tecnológica
 - prevenção de defeitos
 
Há outros processos de maturidade como:
- Personal Software Process - PSP
 - MPS-BR
 - SPICE - ISO/15504
 - CMMi (evolução do CMM)
 - Outros