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

  1. 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.
  2. 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:

  3. gerenciamento de requisitos

  4. planejamento de projetos
  5. gerenciamento de subcontratação (terceiros)
  6. garantia da qualidade de software
  7. gerenciamento de configuração

  8. 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:

  9. revisões

  10. coordenação de intergrupos
  11. engenharia de produto de software
  12. gerenciamento de software integrado
  13. programa de treinamento
  14. foco no processo da organização
  15. definição do processo da organização

  16. Gerenciado - quando se consegue fazer medições quantitativas no processo. Fazer medições no produto é praticar o “nível gerenciado”. KPAs:

  17. gerenciamento quantitativo da qualidade do software

  18. gerenciamento quantitativo do processo

  19. Otimizado - é a melhoria contínua do processo de desenvolvimento. Promover inovação no seu processo. KPAs:

  20. gerenciamento de mudança no processo

  21. gerenciamento de mudança tecnológica
  22. 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