sexta-feira, 28 de outubro de 2011

CMM – Capability Maturity Model

O CMM (Capability Maturity Model) é uma iniciativa do SEI (Software Engineering Institute) para avaliar e melhorar a capacitação de empresas que produzem software. O projeto CMM foi apoiado pelo Departamento de Defesa do Governo dos Estados Unidos, que é um grande consumidor de software e precisava de um modelo formal que permitisse selecionar os seus fornecedores de software de forma adequada.

Embora não seja uma norma emitida por uma instituição internacional (como a ISO), esta norma tem tido uma grande aceitação mundial. O modelo pode ser obtido na própria Internet com facilidade no site do SEI/CMU (http://www.sei.cmu.edu/cmm). O CMM também é conhecido como SW-CMM (CMM for Software). 

Maturidade

Sendo o CMM um modelo para medição da maturidade de uma organização no que diz respeito ao processo de desenvolvimento de software, a definição do que é “Maturidade” pode ser compreendida através da análise do quadro abaixo:

Níveis

O CMM classifica as organizações em cinco níveis distintos, cada um com suas características próprias. No nível 1, o das organizações mais imaturas, não há nenhuma metodologia implementada e tudo ocorre de forma desorganizada (ad-hoc). No nível 5, o das organizações mais maduras, cada detalhe do processo de desenvolvimento está definido, quantificado e acompanhado e a organização consegue até absorver mudanças no processo sem prejudicar o desenvolvimento.

Uma empresa no nível 1 não dá garantia de prazo, custo ou funcionalidade. No nível 2, a empresa já consegue produzir bons softwares, no prazo e a um custo previsível. O nível 3 garante um excelente nível de qualidade, tanto no produto quanto no processo de desenvolvimento como um todo. Não há, no mundo, muitas empresas que tenham chegado aos níveis 4 e 5. Segue abaixo a descrição de cada nível do CMM. 

Inicial

O processo de desenvolvimento é desorganizado e até caótico. Poucos processos são definidos e o sucesso depende de esforços individuais e heróicos.

Repetível

Os processos básicos de gerenciamento de projeto estão estabelecidos e permitem acompanhar custo, cronograma e funcionalidade. É possível repetir o sucesso de um processo utilizado anteriormente em outros projetos similares. 

Definido

Tanto as atividades de gerenciamento quanto de engenharia do processo de desenvolvimento de software estão documentadas, padronizadas e integradas em um padrão de desenvolvimento da organização. Todos os projetos utilizam uma versão aprovada e adaptada do processo padrão de desenvolvimento de software da organização. 

Gerenciado

São coletadas medidas detalhadas da qualidade do produto e processo de desenvolvimento de software. Tanto o produto quanto o processo de desenvolvimento de software são entendidos e controlados quantitativamente.

Otimizado

O melhoramento contínuo do processo é conseguido através de um “feedback” quantitativo dos processos e pelo uso pioneiro de idéais e tecnologias inovadoras.

Áreas-chave de processo (key process areas ou KPAs)

Exceto no nível 1, todos os níveis são detalhados em áreas-chave de processo. Estas áreas são exatamente aquilo no que a organização deve focar para melhorar o seu processo de desenvolvimento de software. Para que uma empresa possa se quailificar em um determinado nível de maturidade CMM, deve estar realizando os processos relacionados às áreas-chave daquele determinado nível. Todas as áreas-chave estão citadas na tabela abaixo:

Objetivos das áreas-chave de processo (KPAs)

O modelo CMM define um conjunto de dois a quatro objetivos para cada área-chave. Estes objetivos definem aquilo que deve ser alcançado no caso dos processos desta área-chave serem realmente realizados.

Características comuns e práticas-base

As características comuns são itens a serem observados para que se possa verificar a implementação e institucionalização de cada área-chave de processo. Elas podem indicar se a área-chave de processo é eficiente, repetível e duradoura. São cinco as características comuns no modelo CMM e cada uma possui suas práticas-base a serem realizadas.

As práticas-chave descrevem as atividades que contribuem para atingir os objetivos de cada área-chave do processo. Em geral são descritas com frases simples, seguidas de descrições detalhadas (chamadas de subpráticas) que podem até incluir exemplos. As práticas-base devem descrever “o que” deve ser feito e não “como” os objetivos devem ser atingidos. O modelo CMM inclui um extenso documento em separado, chamado “Práticas-base para o CMM”, que lista todas as práticas-chave e subpráticas para cada uma das áreas-chave de processo. 

Conclusão

A melhoria contínua se aplica ao modelo de maturidade e às práticas, assim como ao processo de software. O impacto potencial das mudanças do CMM na comunidade de software está sendo cuidadosamente considerado, mas o CMM, a avaliação de processo de software e os métodos de determinação da capacitação de software continuarão a evoluir à medida que se ganha experiência no processo de software.

O CMM fornece uma estrutura conceitual para a melhoria da gestão e do desenvolvimento de produtos de software de uma forma consistente e disciplinada. Ele não garante que os produtos de software serão construídos com sucesso ou que todos os problemas de desenvolvimento de software serão resolvidos adequadamente. O CMM identifica práticas para um processo de software maduro e fornece exemplos da prática, mas não tem a intenção de ser ditatorial. O CMM identifica as características de um processo de software efetivo, mas a organização madura trata de todas as questões essenciais para um projeto bem sucedido, incluindo pessoas e tecnologia, tanto quanto processos.

0 comentários:

Postar um comentário