Capability Maturity Model
O Capability Maturity Model (CMM), também conhecido como Software CMM (SW-CMM), é um conjunto de 'melhores práticas' para diagnosticar e avaliar a maturidade do desenvolvimento de software em uma organização. O CMM não é uma metodologia, pois não dita exatamente como fazer, mas sim o que deve ser feito.
Pontos-chave
- O CMM foi criado para avaliar a previsibilidade de qualidade, custos e prazos em projetos de software.
- Um modelo de maturidade avalia e compara o desenvolvimento de software com base em projetos e clientes.
- Existem 5 níveis de maturidade: Inicial, Repetível, Definido, Gerenciado Quantitativamente e Otimização.
- Níveis mais altos de maturidade indicam processos mais previsíveis e controlados quantitativamente.
- O objetivo final é a melhoria contínua dos processos de desenvolvimento de software.
Imagem: Ency · BY-SA · Openverse
O CMM surgiu na década de 1980, idealizado pelo Departamento de Defesa dos EUA para avaliar o risco na contratação de empresas de software. O objetivo era prever a qualidade, custos e prazos dos projetos. Para isso, o Departamento de Defesa, em parceria com a Carnegie-Mellon University, fundou o SEI (Software Engineering Institute), responsável pela evolução do CMM e outras pesquisas em engenharia de software.
Imagem: Sean p connors · BY-SA · Openverse
Um modelo de maturidade é uma estrutura organizada que descreve aspectos da maturidade de uma organização. Ele serve como base para avaliar e comparar diferentes organizações, detalhando a maturidade da empresa com base em seus projetos e clientes.
Imagem: Sean p connors · BY-SA · Openverse
O CMM classifica a maturidade do desenvolvimento de software em cinco níveis distintos, cada um com características específicas sobre a forma como os processos são conduzidos e controlados.
Nível 1: Inicial
Neste nível, os processos são geralmente informais e caóticos, sem um ambiente estável. O sucesso depende da habilidade individual dos funcionários, não de processos estruturados. Projetos frequentemente excedem o orçamento e o prazo, e em caso de problemas, a organização tende a abandonar o planejado, focando em codificação e testes, o que pode comprometer a qualidade do produto final.
Nível 2: Repetível
No nível Repetível, o desenvolvimento de software começa a ser repetido, embora não necessariamente em todos os projetos. Ferramentas de Gerenciamento de Projetos podem ser usadas para estimar custos e prazos. A adoção de um processo de desenvolvimento ajuda a garantir que práticas existentes sejam seguidas, mesmo sob pressão. O status do projeto e os entregáveis tornam-se visíveis para a gerência, com marcos e tarefas sendo acompanhados.
Nível 3: Definido
Organizações neste nível atendem às metas de processo dos níveis 1 e 2. Os processos são bem caracterizados, entendidos e documentados com padrões, procedimentos e ferramentas. Um conjunto de padrões de processos estabelecidos e melhorados periodicamente serve de base. Projetos adaptam esses padrões organizacionais para definir seus próprios processos, garantindo consistência.
Nível 4: Gerenciado Quantitativamente
Com métricas precisas, o gerenciamento controla efetivamente o desenvolvimento de software, permitindo ajustes no processo sem perda de qualidade ou desvios. Organizações atingem metas quantitativas para desenvolvimento e manutenção, controlando subprocessos importantes com técnicas estatísticas. A principal diferença para o nível 3 é a previsibilidade quantitativa do desempenho do processo, controlada estatisticamente.
Nível 5: Em Otimização
Neste nível, todas as metas de processo dos níveis anteriores são atendidas. A melhoria contínua é o foco, baseada na compreensão quantitativa das causas de variação nos processos. O progresso é impulsionado por inovações tecnológicas e incrementais. Metas de melhoria quantitativa são estabelecidas, revisadas e alinhadas aos objetivos da organização, utilizando critérios de melhoria na gestão de processos.


