Capability Maturity Model
Capability Maturity Model (CMM), também conhecido como Software CMM (SW-CMM) pode ser definido como sendo uma soma de "melhores práticas" para diagnóstico e avaliação de maturidade do desenvolvimento de softwares em uma organização. "CMM" não deve ser entendido como sendo uma metodologia, pois o "CMM" não diz exatamente como fazer, mas sim o que deve ser feito (melhores práticas).
Ele descreve os principais elementos de um processo de desenvolvimento de software. O CMM descreve os estágios de maturidade por que passam as organizações enquanto evoluem no seu ciclo de desenvolvimento de software, através de avaliação contínua, identificação de problemas e ações corretivas, dentro de uma estratégia de melhoria dos processos. Este caminho de melhoria é definido por cinco níveis de maturidade:
- Inicial
- Repetível
- Definido
- Gerenciado
- Otimizado
O CMM fornece às organizações orientação sobre como ganhar controle do processo de desenvolvimento de software e como evoluir para uma cultura de excelência na gestão de software. O objetivo principal nas transições através desses níveis de maturidade é a realização de um processo controlado e mensurado que tem como fundamento a melhoria contínua. A cada nível de maturidade corresponde um conjunto de práticas de software e de gestão específicas, denominadas áreas-chave do processo (KPAs - Key Process Areas). Estas devem ser implantadas para que a organização possa atingir o nível de maturidade desejado.
Índice |
[editar] Modelo de Maturidade
Um modelo de maturidade é uma coleção estruturada de elementos que descrevem certos aspectos da maturidade de uma organização. Um modelo de maturidade fornece, por exemplo:
- um ponto de partida
- os benefícios dos usuários em experiências anteriores
- um vocabulário comum e uma visão compartilhada
- um framework para priorizar ações
- uma forma de definir as melhorias mais significativas para uma organização
Um modelo de maturidade pode ser usado como base para avaliar diferentes organizações e estabelecer comparações. O modelo descreve a maturidade da empresa baseado nos projetos que ela está desenvolvendo e nos clientes relacionados.
[editar] Os 5 Níveis de Maturidade do CMM
[editar] Nível 1: Inicial
No nível 1 de maturidade os processos são geralmente ad hoc(expressão latina cuja tradução literal é "para isto") e caóticos. A organização geralmente não dispõe de um ambiente estável. O sucesso nessas organizações depende da competência e heroísmo dos seus funcionários e não no uso de processos estruturados. Devido ao imediatismo, o nível 1 de maturidade produz produtos e serviços que em geral funcionam, mas frequentemente excedem o orçamento e o prazo dos projetos. No caso de problemas que venham a ocorrer durante a realização de um projeto, a organização tem uma tendência a abandonar totalmente os procedimentos planejados e passa a um processo de codificação e testes, onde o produto obtido pode apresentar um nível de qualidade suspeito.
[editar] Nível 2: Repetível
No nível 2 de maturidade, o desenvolvimento do software é repetido. O processo pode não se repetir para todos os projetos da organização. A organização pode usar ferramentas de Gerência de Projetos para mapear os custos e o prazo do projeto.
A adoção de um processo de desenvolvimento ajuda a garantir que práticas existentes sejam utilizadas em momentos de stress. Quando essas práticas são adotadas, os projetos decorrem (e são gerenciados) de acordo com o planejamento inicial.
O status do projeto e os serviços entregues são visíveis ao gerenciamento (por exemplo: é possível a visualização de marcos do projeto e o término da maioria das tarefas).
Técnicas de gerenciamento de projetos são estabelecidas para mapear custos, prazos, e funcionalidades. Um mínimo de disciplina nos processos é estabelecido para que se possa repetir sucessos anteriores em projetos com escopo e aplicação similares. Ainda há um risco significante de exceder as estimativas de custos e o prazo de desenvolvimento.
Este nível apresenta as seguintes KPAs (Key Process Areas ou áreas chave de processo):
- Gerenciamento de Requisitos
- Planejamento de Projetos
- Acompanhamento e Supervisão de Projetos
- Gerenciamento de Subcontratação
- Garantia de Qualidade de Software
- Gerenciamento de Configuração
[editar] Nível 3: Definido
No nível 3 de maturidade, uma organização alcançou todas as metas genéricas e específicas das áreas de processo designadas como de níveis 1 e 2. No nível 3 de maturidade, processos são bem caracterizados e entendidos, e são descritos utilizando padrões, procedimentos, ferramentas e métodos.
A organização possui um conjunto de padrões de processos, os quais são a base do nível 3. Estes estão estabelecidos e são melhorados periodicamente. Estes processos padrões são usados para estabelecer uma consistência dentro da organização. Projetos estabelecem seus processos segundo o conjunto de padrões processuais da organização, de acordo com guias.
O gerenciamento da organização estabelece os objetivos dos processos baseado no conjunto de padrões predefinidos e garante que estes objetivos sejam encaminhados de forma apropriada.
Uma crítica distinção entre os níveis 2 e 3 é o escopo dos padrões e a descrição dos processos e procedimentos. No nível 2, os padrões e a descrição de processos e procedimentos podem ser bem diferentes em cada instância específica do processo (por exemplo, em um projeto particular). No nível 3, os padrões e a descrição de processos e procedimentos para o projeto são guiados pelo conjunto de padrões de processos da organização. O conjunto de padrões de processo da organização inclui os processos do nível 2 e 3. Como resultado, os processos realizados através da organização são consistentes exceto pelas diferenças permitidas pelos guias.
Outra distinção crítica é que, no nível 3, processos são geralmente descritos com mais detalhes e com mais rigor do que no nível 2. No nível 3, processos são gerenciados mais proativamente. Há entendimento acerca das inter-relações entre as atividades dos processos. Há medidas detalhadas dos processos, produtos e serviços.
KPAs deste nível:
- Revisões (peer review)
- Coordenação de Intergrupos
- Engenharia de Produto de Software
- Gerenciamento de Software Integrado
- Programa de Treinamento
- Definição do Processo da Organização
- Foco no Processo da Organização
[editar] Nível 4: Gerenciado
Utilizando métricas precisas, o gerenciamento pode efetivamente controlar os esforços para desenvolvimento de software. Em particular, o gerenciamento pode identificar caminhos para ajustar e adaptar o processo a projetos particulares, sem perda de métricas de qualidade ou desvios das especificações.
Organizações neste nível conseguem metas quantitativas para o processo de desenvolvimento de software e de manutenção.
Subprocessos são selecionados conforme a importância na performance total do processo. Esses subprocessos selecionados são controlados usando técnicas estatísticas e quantitativas.
Uma distinção crítica entre o nível de maturidade 3 e 4 é a previsibilidade do desempenho do processo. No nível 4, o desempenho do processo é controlado usando técnicas estatísticas e quantitativas, e é previsível quantitativamente. No nível 3, os processos são somente previsíveis qualitativamente.
KPAs deste nível:
- Gerenciamento da Qualidade do Software
- Gerenciamento Quantitativo do Processo
[editar] Nível 5: Otimizado
No nível 5, uma organização adquiriu todas as metas específicas das áreas de processo dos níveis 2, 3, 4, e 5 e as metas genéricas dos níveis 2 e 3. Processos são continuamente melhorados com base no entendimento quantitativo das causas comuns de variação inerente aos processos.
No nível de maturidade 5, o foco é o contínuo progresso do desempenho dos processos, através da introdução de melhorias de inovação tecnológica e incremental. Objetivos de melhoria quantitativa dos processos para a organização são estabelecidos, continuamente revisados, refletindo as mudanças nos objetivos da organização, e usando critérios de melhoria na gerência de processos.
Os efeitos da melhoria da revisão dos processos são medidos e acompanhados, utilizando-se processos de melhoria de qualidade. Os processos definidos e o conjunto de processos padrões da organização são alvos de melhoria de métricas.
Uma distinção crítica entre os níveis 4 e 5 é o tipo de variação do processo. No nível 4, o interesse é verificar as causas especiais de variação de processo e fornecer resultados estatísticos. No nível 5, o foco são as causas comuns de variação de processo e a introdução de mudanças de modo a melhorar a performance do processo, atingindo objetivos quantitativos.
KPAs deste nível:
- Gerenciamento da Mudança no Processo
- Gerenciamento da Mudança Tecnológica
- Prevenção de Defeitos
[editar] Ver também
- CMMI
- CIMM
- mini CMMI-survey. SQI Hungarian Software Quality Consulting Institute Ltd. (2007). Página visitada em 07 August de 2007.(em inglês)