CMM vs CMMI: Qual Modelo de Maturidade Escolher para sua Empresa?

O Modelo de Maturidade de Capacidade (CMM) representa uma abordagem eficaz e simples para avaliar as diversas atividades de uma organização.

Para conduzir um negócio, supervisionar um sistema ou administrar uma equipe, a compreensão das capacidades é um elemento essencial.

Após identificar as diferentes funções de sua empresa, é crucial avaliar o desempenho de cada uma delas. Com base nessa avaliação, você pode estabelecer padrões e metas para o seu negócio.

Portanto, para monitorar e controlar o desempenho e o progresso do trabalho de cada função e indivíduo, empresários e líderes necessitam de uma solução robusta e eficiente.

Desta forma, uma empresa pode construir sistemas que simplifiquem as complexidades e proporcionem a precisão necessária para o crescimento.

É nesse contexto que o CMM se destaca.

Neste artigo, abordarei o conceito de CMM e CMMI, seus níveis e as distinções entre eles.

Vamos começar!

O que é o Modelo de Maturidade de Capacidade?

O Modelo de Maturidade de Capacidade (CMM) é uma metodologia descomplicada empregada para estruturar e aprimorar o processo de desenvolvimento de aplicativos de uma organização. Isso possibilita que os desenvolvedores aperfeiçoem o processo de desenvolvimento de software, resultando em maior consistência e eficiência.

Independentemente do seu papel na equipe de desenvolvimento, familiarizar-se com o CMM pode contribuir para a melhoria do seu desempenho. Portanto, o CMM pode ser considerado um método que facilita a avaliação, desenvolvimento e aprimoramento do processo de desenvolvimento de software.

O CMM detalha os procedimentos essenciais para o desenvolvimento de software e outros processos que envolvem engenharia, gestão e planejamento. Ele parte do princípio de que a melhoria contínua é alcançável por meio de pequenos avanços, ao invés de grandes saltos.

Adicionalmente, oferece uma estrutura para gerenciar esses pequenos avanços em diversos níveis de maturidade, a fim de proporcionar uma base para a melhoria constante do processo de desenvolvimento de software. Assim, essa metodologia funciona como a base de sistemas de gestão especificamente criados para elevar a qualidade do desenvolvimento de produtos e serviços, juntamente com suas entregas.

O CMM foi concebido e promovido pelo SEI (Software Engineering Institute), um centro de pesquisa e desenvolvimento financiado pelo Departamento de Defesa dos EUA. Atualmente, faz parte da Universidade Carnegie Mellon. O SEI foi estabelecido em 1984 com o objetivo de abordar diversos problemas de software e desenvolver metodologias para tal.

O SEI foi criado para otimizar o processo de desenvolvimento, aquisição e manutenção de sistemas com forte dependência de software para o Departamento de Defesa (DOD). Ele defende a adoção focada na indústria do CMM evoluído, ou seja, a Integração do CMM (CMMI).

Por que a sua empresa precisa do CMM?

O CMM possui muitos pontos fortes, e o benefício mais notável de utilizar essa metodologia é sua capacidade de economizar tempo e recursos financeiros. Isso se deve ao fato de que o sistema foi perfeitamente projetado para identificar as falhas no processo de melhoria de maneira mais eficaz do que outros modelos.

Além disso, o CMM aperfeiçoa os processos de negócios e também reduz mudanças abruptas nos cronogramas de produção. Como o CMM foi o primeiro modelo criado para otimizar o processo industrial, ele pode servir como base para a criação de outros modelos, como a versão aprimorada do CMM (CMMI), o Modelo de Maturidade de Capacidade de Negócios (BCMM), entre outros.

O CMM é um modelo bastante flexível para todos os processos e mercados. Independentemente do setor em que você atua, se você possui uma equipe de desenvolvimento, os membros podem utilizar o modelo para corrigir erros no processo.

Cinco níveis de maturidade no CMM

Os cinco níveis do Modelo de Maturidade de Capacidade (CMM) no processo de desenvolvimento são:

#1. Nível Inicial

Nesse estágio, os processos não seguem uma ordem adequada, podendo ser até caóticos em certos momentos. O sucesso, aqui, depende dos esforços individuais de cada membro, não sendo considerado um processo replicável. Isso acontece porque o processo não está bem documentado e definido de forma que possa ser replicado.

Os processos seguidos são imaturos e ad hoc, o que gera um ambiente instável para o desenvolvimento de software. Além disso, não existe uma base para prever a qualidade do produto e seu prazo de conclusão.

#2. Repetível

Neste nível, os processos necessários são bem estabelecidos, documentados e definidos. Como resultado, as técnicas de gerenciamento de projetos são devidamente estabelecidas e o sucesso pode não ser replicado em algumas áreas-chave do processo.

O nível repetível pode ser alcançado através do estabelecimento de algumas políticas básicas de gerenciamento de projetos. A experiência obtida em projetos anteriores é utilizada para gerenciar projetos de natureza similar. Isso inclui a definição de recursos necessários, objetivos, restrições e outros aspectos relevantes para o projeto.

Este nível apresenta um plano detalhado que deve ser seguido corretamente para a conclusão bem-sucedida de um software de qualidade. O objetivo principal é manter o desempenho do produto, como seus componentes, durante todo o ciclo de vida do software.

O nível repetível também inclui o feedback do cliente e o gerenciamento de revisões, o que pode levar a alterações no requisito estabelecido. Este gerenciamento de requisitos consiste na adaptação aos requisitos modificados.

Além disso, o gerenciamento de subcontratos se concentra na gestão de contratados qualificados para o desenvolvimento de software. Isso significa que ele gerencia algumas partes do software desenvolvidas por terceiros. A garantia da qualidade do software assegura um produto de software de qualidade com certas regras e diretrizes padrão durante o processo de desenvolvimento.

#3. Definido

Neste nível, ocorre a documentação das diretrizes e procedimentos. Trata-se de um conjunto bem definido de processos e gestão de engenharia de software. Isso inclui:

  • Revisões por pares: Nesse método, as falhas precisam ser corrigidas por meio de diversos processos de revisão, como inspeções, verificações por colegas, orientações, etc.
  • Coordenação intergrupo: Este método envolve interações entre várias equipes de desenvolvimento para garantir o atendimento adequado e eficiente das necessidades.
  • Definição do processo da organização: O método se concentra no desenvolvimento e manutenção dos processos de desenvolvimento de software.
  • Foco no processo da organização: Isso inclui práticas e atividades que precisam ser seguidas para aprimorar as capacidades do processo da organização.
  • Programas de treinamento: Os programas de treinamento visam aprimorar os conhecimentos e habilidades dos membros da equipe e assegurar uma melhora na eficiência do trabalho.

#4. Gerenciado

Nesse nível, são estabelecidas metas quantitativas para a qualidade do produto de software e para os processos de software de uma organização. As medições realizadas permitem à organização prever a qualidade do processo e do produto dentro dos limites definidos quantitativamente.

Este nível inclui estratégias e planos definidos para desenvolver e compreender a análise quantitativa e a qualidade do produto. Ele também se concentra no gerenciamento do desempenho do projeto.

#5. Otimizando

Esta é a etapa final da maturidade do processo no CMM, que se concentra exclusivamente na melhoria contínua dos processos de desenvolvimento na organização por meio de feedback quantitativo. Isso é alcançado por meio de técnicas, avaliações e ferramentas para processos de software, com o objetivo de evitar a repetição de falhas conhecidas.

Este nível inclui:

  • Gestão de mudanças de processos: Este processo de gestão se concentra na melhoria contínua dos processos de desenvolvimento de software. Isso aprimora a qualidade, o tempo de ciclo e a produtividade do produto de software.
  • Gerenciamento de mudanças tecnológicas: Consiste no uso de tecnologias e técnicas de identificação para melhorar a qualidade do produto e minimizar o tempo de desenvolvimento.
  • Prevenção de falhas: A prevenção de falhas pode ser feita ao identificar a causa das falhas e evitar que elas se repitam em projetos futuros. Isso aprimora os processos definidos pelo projeto.

Integração do Modelo de Maturidade de Capacidade

A Integração do Modelo de Maturidade de Capacidade (CMMI) é um modelo de processo simples que as organizações podem utilizar para aprimorar os processos de desenvolvimento, fomentar comportamentos eficientes e aumentar a produtividade no fluxo de trabalho durante o desenvolvimento de um produto, serviço ou projeto. Isso resulta na redução de riscos ao longo do processo.

O CMMI foi desenvolvido e introduzido pela Universidade Carnegie Mellon. O principal propósito deste desenvolvimento é aumentar a eficiência e a usabilidade de modelos de maturidade que possam avaliar a capacidade de uma organização de buscar melhorias contínuas em áreas específicas. Isso só é possível ao integrar diversos modelos em uma única estrutura.

A primeira versão foi lançada em 2002, e a versão seguinte em 2006. Em 2010, surgiu a versão 1.3, e a versão mais recente, 2.0, foi lançada em 2018, trazendo diversas mudanças, como torná-la mais acessível e eficaz para as empresas.

O CMMI foi adquirido pela ISACA (anteriormente conhecida como Information Systems Audit and Control Association), que possui certificações como o framework COBIT. O CMMI é um processo e modelo comportamental que auxilia as organizações em todo o processo de desenvolvimento de produtos ou serviços.

Assim, o objetivo do CMMI é bastante claro. Ele é utilizado para aprimorar a qualidade do serviço ou produto, seguindo um modelo que atende às expectativas do cliente e aumenta o valor de uma organização no mercado. Ele também avalia a reputação do seu negócio e o valor das partes interessadas no setor.

O CMMI atualmente aborda as seguintes áreas de interesse:

  • CMMI para Desenvolvimento: Destina-se ao desenvolvimento de produtos e serviços.
  • CMMI para Serviços: É para o estabelecimento, entrega e gerenciamento de serviços.
  • CMMI para Aquisição: Envolve a aquisição de produtos e serviços.

Representação do CMMI

A representação do CMMI permite que uma organização persiga um conjunto de metas de melhoria. Existem duas representações:

Representação Encenada

  • Ela utiliza um conjunto definido de áreas de processo de desenvolvimento para descrever o caminho de melhoria.
  • Ela oferece uma série de melhorias, onde cada parte da série serve como estrutura para a próxima melhoria.
  • Ela define um caminho aprimorado com o auxílio de níveis de maturidade. E o nível de maturidade informa sobre a maturidade de diferentes processos na organização.
  • Ela possibilita a comparação entre diversas organizações para diferentes níveis de maturidade.

Representação Contínua

  • Ela permite a seleção de áreas de processo específicas.
  • Ela utiliza níveis de capacidade para medir o aprimoramento do processo individual.
  • Adicionalmente, permite a comparação entre organizações com base na área de processo por área de processo.
  • A representação contínua também permite que as organizações escolham entre diversos processos para melhor aprimoramento.
  • Nessa representação, as organizações podem atender melhor aos seus objetivos e reduzir riscos ao selecionar a ordem de melhoria dos diferentes processos.

Estágios no CMMI

Existem cinco estágios de maturidade no CMMI com representação em estágios:

#1. Inicial: Neste nível, os processos de desenvolvimento são mal controlados ou gerenciados. Também envolve resultados imprevisíveis dos processos de desenvolvimento. Além disso, são usadas abordagens caóticas e ad hoc. Não são encontradas áreas de processo chave (KPAs) definidas. A qualidade não é tão boa e o produto ou serviço corre o maior risco.

#2. Gerenciado: Nesta fase de maturidade, os requisitos são gerenciados adequadamente e os processos de desenvolvimento são controlados e planejados. Aqui, o projeto é gerenciado e implementado corretamente, de acordo com os planos documentados. No entanto, o risco ainda existe, mas é menor do que no nível inicial.

#3. Definido: No nível de maturidade definido, os processos de desenvolvimento são bem descritos e caracterizados por meio de procedimentos, padrões, ferramentas e métodos adequados. A qualidade encontrada é de nível médio e o risco também é médio.

#4. Gerenciado Quantitativamente: Neste modelo, são estabelecidos objetivos quantitativos para os processos de qualidade e desempenho. Baseia-se nas necessidades da organização, nos requisitos do cliente, entre outros. As medidas de desempenho do processo são analisadas quantitativamente. Aqui, são encontrados processos de maior qualidade com menor risco.

#5. Otimização: Esta é a última etapa do modelo de maturidade, que envolve a melhoria contínua do desempenho e dos processos. A melhoria neste nível é inovadora e gradual. Os processos e o desempenho são de maior qualidade, e o risco é o menor.

Níveis de Capacidade do CMMI

Um nível de capacidade informa sobre as práticas relevantes para uma área de processo específica, com o objetivo de aprimorar os processos de uma organização relacionados à área de processo. Existem seis níveis de capacidade para os modelos CMMI:

  • Nível de Capacidade 0 (Incompleto): Inclui processos incompletos, parciais e não executados. Nesse nível, não existem metas genéricas.
  • Nível de Capacidade 1 (Executado): O desempenho do processo não é estável neste nível. Os objetivos de custo, cronograma e qualidade não são alcançados. O processo de nível 1 precisa realizar práticas específicas.
  • Nível de Capacidade 2 (Gerenciado): O processo é monitorado, controlado e planejado neste nível. Aqui, os objetivos são modelados e outros, como qualidade, cronograma e custo. A organização precisa gerenciar ativamente os processos com o auxílio de métricas.
  • Nível de Capacidade 3 (Definido): É um nível definido no qual o processo é bem gerenciado e segue um conjunto de diretrizes e padrões organizacionais. Tem como foco a padronização de processos.
  • Nível de Capacidade 4 (Gerenciado Quantitativamente): Aqui, o processo é controlado usando técnicas quantitativas e estatísticas. Nesse nível, o desempenho do processo é compreendido em termos de métricas e estatísticas.
  • Nível de Capacidade 5 (Otimizando): Este nível se concentra na melhoria contínua do desempenho do processo. O desempenho é aprimorado de formas inovadoras e incrementais.

CMM vs. CMMI: Diferença

O CMMI é um modelo atualizado ou mais recente do CMM. O SEI desenvolveu o CMMI para padronizar e integrar o CMM, que possui diversos modelos para cada função que abrange. Esses modelos não são sincronizados; integrá-los torna o processo flexível e eficiente.

Em relação às principais áreas de processo, práticas, níveis de maturidade e metas, a estrutura do CMMI é semelhante à estrutura do CMM. No entanto, o CMMI oferece duas representações distintas dos processos.

Vamos explorar mais algumas diferenças entre CMM e CMMI:

CMM CMMI
Significado CMM significa Modelo de Maturidade de Capacidade, desenvolvido em 1984. CMMI significa Integração do Modelo de Maturidade de Capacidade, desenvolvido em 2006.
Objetivo É um modelo comportamental desenvolvido para avaliar os processos de desenvolvimento de software em uma organização. É a versão atualizada do modelo CMM, que é mais orientada para a tarefa e eficaz. O principal objetivo é avaliar os níveis de maturidade no processo de desenvolvimento de software.
Foco O CMM tem como objetivo principal combinar diferentes modelos de software em um único software e superar algumas desvantagens do CMM. O CMM possui cinco estágios: inicial, repetido, definido, gerenciado e otimizado.
Estágios O CMMI possui cinco estágios: inicial, gerenciado, definido, gerenciado quantitativamente e otimizado. O CMM é menos eficaz.
Eficácia O CMMI é mais eficaz. É muito orientado para o processo.
Orientação É orientado para os objetivos.

Conclusão

O Modelo de Maturidade de Capacidade (CMM) é um sistema de resolução de problemas para processos de desenvolvimento de software em diversas indústrias. Ele pode impedir que as empresas enfrentem problemas de processo.

Por outro lado, o CMMI possui uma metodologia avançada em comparação com o CMM. Ele engloba atender às expectativas dos clientes, valorizar a criação, o crescimento do mercado, melhorar a qualidade dos produtos e serviços e aumentar a reputação.

Você também pode explorar a estrutura de gerenciamento do ciclo de vida do aplicativo, que auxilia no desenvolvimento e na entrega de software dentro do prazo, do orçamento e com qualidade superior.