O CMMI (Capability Maturity Model Integration) é um modelo de referência que contém práticas necessárias à maturidade em disciplinas específicas de engenharia de software, o CMMI é uma evolução do CMM e procura estabelecer um modelo único para o processo de melhoria corporativo, integrando diferentes modelos e disciplinas.
A sua metodologia foi criada pela SEI (Software Engineering Institute) para ser um guia destinado a melhorar os processos organizacionais e a habilidade desses em gerenciar o desenvolvimento, a aquisição e a manutenção de produtos e serviços. O CMMI organiza as práticas, que já são consideradas efetivas, em uma estrutura que visa auxiliar a organização a estabelecer prioridades para melhoria e também fornece um guia para a implementação dessas melhorias.
No Brasil, existe um modelo compatível com o CMMI, o MPS/BR (Melhoria de Processos do Software Brasileiro), que tem como uma das principais vantagens é o seu custo reduzido de certificação em relação as outras normas, sendo ideal para micro, pequenas e médias empresas. Um dos objetivos do projeto é replicar esse modelo na América Latina. Para isso, conta com o apoio do Ministério da Ciência e Tecnologia, da FINEP e do Banco Interamericano de Desenvolvimento.
A versão atual do CMMI (versão 1.2) apresenta três modelos:
1. CMMI for Development (CMMI-DEV) ago/2006: Dirige-se ao processo de desenvolvimento de produtos e serviços.
2. CMMI for Acquisition (CMMI-ACQ) nov/2007: Dirige-se aos processos de aquisição e terceirização de bens e serviços.
3. CMMI for Services (CMMI-SVC) fev/2009: Dirige-se aos processos de empresas prestadoras de serviços.
Representações
O CMMI possui duas representações: "contínua" ou "por estágios". Estas representações permitem à organização utilizar diferentes caminhos para a melhoria de acordo com seu interesse.
Representação Contínua
Possibilita à organização utilizar a ordem de melhoria que melhor atende os objetivos de negócio da empresa. É caracterizado por Níveis de Capacidade:
· Nível 0: Incompleto (Ad-hoc)
· Nível 1: Executado
· Nível 2: Gerenciado
· Nível 3: Definido
· Nível 4: Quantitativamente gerenciado
· Nível 5: Em otimização
Representação por Estágios
Disponibiliza uma sequência pré-determinada para melhoria baseada em estágios que não deve ser desconsiderada, pois cada estágio serve de base para o próximo. É caracterizado por Níveis de Maturidade:
· Nível 1: Inicial (Ad-hoc) - falta de planejamento e de controle dos processos. Foco nas atividades corretivas.
· Nível 2: Gerenciado – estabelecimentos dos processos básicos para planejar e acompanhar custos, prazos e funcionalidades. Compromissos são firmados e gerenciados. O sucesso depende basicamente do gerenciamento do projeto.
· Nível 3: Definido – documentação e padronização das atividades de gerenciamento básico e de Engenharia de Software. Possui processos gerencias e técnicos bem definidos, possibilidade de avaliação do processo.
· Nível 4: Quantitativamente gerenciado - Métricas detalhadas do processo de software e da qualidade do produto são coletadas. Tanto o processo como o produto são quantitativamente compreendidos, avaliados e controlados. Relatórios estatísticos são gerados. Tipicamente, encontra-se estabelecido e em uso rotineiro um programa de medições, a qualidade é planejada por um grupo dedicado, sendo rotineiramente avaliada e aprimorada
· Nível 5: Em otimização - A melhoria contínua do processo é estabelecida por meio de sua avaliação quantitativa e da implantação planejada e controlada de tecnologias e ideias inovadoras. O alto nível de qualidade e de satisfação dos clientes é alcançado rotineiramente, com grande foco na melhoria contínua.
Áreas de Processo
O modelo CMMI atual contém 22 áreas de processo. Essas áreas servem para traçar o caminho que a empresa irá trilhar para atingir o objetivo. Em sua representação por estágios, as áreas são divididas da seguinte forma:
· Nível 1: Inicial (Ad-hoc)
· Não possui áreas de processo.
· Nível 2: Gerenciado
· Gerenciamento de Requisitos - REQM
· Planejamento de Projeto - PP
· Acompanhamento e Controle de Projeto - PMC
· Gerenciamento de Acordo com Fornecedor - SAM
· Medição e Análise - MA
· Garantia da Qualidade de Processo e Produto - PPQA
· Gerência de Configuração – CM
· Nível 3: Definido
· Desenvolvimento de Requisitos - RD
· Solução Técnica - TS
· Integração de Produto - PI
· Verificação - VER
· Validação - VAL
· Foco de Processo Organizacional - OPF
· Definição de Processo Organizacional - OPD
· Treinamento Organizacional - OT
· Gerenciamento Integrado de Projeto - IPM
· Gerenciamento de Riscos - RSKM
· Análise de Decisão e Resolução – DAR
· Nível 4: Quantitativamente gerenciado
· Desempenho de Processo Organizacional - OPP
· Gerenciamento Quantitativo de Projeto - QPM
· Nível 5: Em otimização
· Inovação Organizacional e Implantação - OID
· Análise Causal e Resolução - CAR
Cada uma dessas áreas são definidos dois conjuntos de metas: as específicas e as genéricas. A essas metas, a definição do modelo recomenda práticas genéricas divididas em um conjunto de características comuns que por sua vez se divide em quatro categorias. São elas:
1. Comprometimento com a execução – Agrupa práticas relacionadas à definição de políticas e responsabilidades, descrevendo ações para assegurar que o processo se estabeleça e seja duradouro;
2. Habilitação para execução – Agrupa práticas contendo pré-condições para o projeto, de forma a permitir a implementação adequada do processo;
3. Direcionamento a implementação – Agrupa práticas relacionadas ao gerenciamento do desempenho do processo;
4. Verificação da implementação – Agrupa práticas para revisão junto à alta gerência e avaliação objetiva da conformidade com processos, procedimentos e padrões.
As metas específicas, na maioria das vezes, estão focadas no negócio da empresa e buscam alinhar a metodologia CMMI às necessidades próprias; por sua vez as metas comuns focam em aspectos inerentes a qualquer empresa e devem ser considerados para a correta implementação da metodologia, de forma a garantir a maximização dos resultados.