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