Modelo de maturidade de capacidade (CMM) e seus níveis em engenharia de software
O que é CMM?
O Capability Maturity Model é usado como referência para medir a maturidade do processo de software de uma organização.
O CMM foi desenvolvido no Instituto de Engenharia de Software no final dos anos 80. Foi desenvolvido a partir de um estudo financiado pela Força Aérea dos Estados Unidos como forma de avaliar o trabalho dos subcontratados. Later baseado no modelo CMM-SW criado em 1991 para avaliar a maturidade do desenvolvimento de software, vários outros modelos são integrados ao CMM-I, eles são
O que são os níveis do modelo de maturidade de capacidade (CMM)?
- Inicie
- Repetível/Gerenciado
- Definido
- Gerenciado Quantitativamente
- Otimizando
O que acontece em diferentes níveis de CMM?
Níveis | Atividades | Benefícios |
---|---|---|
Nível 1 inicial |
|
Nenhum. Um projeto é o caos total |
Nível 2 Gerenciado |
|
|
Nível 3 Definido |
|
|
Nível 4 Gerenciado Quantitativamente |
|
|
Otimização de Nível 5 |
|
|
O diagrama a seguir fornece uma representação pictórica do que acontece em diferentes níveis do CMM
Quanto tempo leva para implementar o CMM?
O CMM é o processo mais desejável para manter a qualidade do produto para qualquer empresa de desenvolvimento de software, mas sua implementação demora um pouco mais do que o esperado.
- A implementação do CMM não ocorre da noite para o dia
- Não é apenas uma “papelada”.
- Os tempos típicos para implementação são
- 3-6 meses -> para preparação
- 6-12 meses -> para implementação
- 3 meses -> para preparação de avaliação
- 12 meses ->para cada novo nível
Estrutura Interna do CMM
Cada nível no CMM é definido em área de processo chave ou KPA, exceto para o nível-1. Cada KPA define um cluster de atividades relacionadas, que quando executadas coletivamente atingem um conjunto de metas consideradas vitais para melhorar a capacidade do software
Para diferentes níveis de CMM, há um conjunto de KPAs, por exemplo, para CMM model-2, KPA são
- REQM - Gerenciamento de Requisitos
- PP- Planejamento do Projeto
- PMC- Monitoramento e Controle de Projetos
- SAM- Gestão de Contratos de Fornecedores
- PPQA-Processo e Garantia de Qualidade
- Gerenciamento de configuração do CM
Da mesma forma, para outros modelos de CMM, você tem KPAs específicos. Para saber se a implementação de um KPA é eficaz, duradouro e repetível, ele é mapeado na seguinte base
- Compromisso de realizar
- Capacidade de realizar
- As atividades realizam
- Medição e Análise
- Verificando a implementação
Limitações dos Modelos CMM
- O CMM determina o que um processo deve abordar em vez de como deve ser implementado
- Não explica todas as possibilidades de melhoria do processo de software
- Concentra-se em questões de software, mas não considera planejamento estratégico de negócios, adoção de tecnologias, estabelecimento de linha de produtos e gerenciamento de recursos humanos
- Não diz em que tipo de negócio uma organização deve estar
- O CMM não será útil no projeto em crise agora
Por que usar o CMM?
Hoje o CMM atua como um “selo de aprovação” na indústria de software. Ele ajuda de várias maneiras a melhorar a qualidade do software.
- Ele orienta para o processo padrão repetível e, portanto, reduz o tempo de aprendizado sobre como fazer as coisas
- Praticar o CMM significa praticar o protocolo padrão para desenvolvimento, o que significa que não apenas ajuda a equipe a economizar tempo, mas também oferece uma visão clara do que fazer e do que esperar
- As atividades de qualidade combinam bem com o projeto, em vez de serem consideradas um evento separado
- Ele atua como um viajante entre o projeto e a equipe
- Os esforços da CMM são sempre voltados para a melhoria do processo
Resumo
O CMM foi introduzido pela primeira vez no final dos anos 80 na Força Aérea dos EUA para avaliar o trabalho de subcontratados. Later em diante, com versão melhorada, foi implementado para monitorar a qualidade do sistema de desenvolvimento de software.
Todo o nível CMM é dividido em cinco níveis.
- Nível 1 (Inicial): Onde os requisitos para o sistema são geralmente incertos, incompreendidos e não controlados. O processo é geralmente caótico e ad-hoc.
- Nível 2 (Gerenciado): Estime o custo, o cronograma e a funcionalidade do projeto. Os padrões de software são definidos
- Nível 3 (Definido): Garante que o produto atende aos requisitos e ao uso pretendido
- Nível 4 (Gerenciado Quantitativamente): Gerencia os processos e subprocessos do projeto estatisticamente
- Nível 5 (Maturidade): Identificar e implantar novas ferramentas e melhorias de processos para atender às necessidades e objetivos de negócios