CMMI: do desenvolvimento à gestão de projetos

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on pocket

O CMMI é um conjunto de práticas de gerenciamento e de melhoria da qualidade a serem aplicadas criteriosamente no processo de desenvolvimento de software.

Foi criado para garantir maturidade na capacidade de desenvolver software, em 1987, por Watts Humphrey, pela Universidade Carnegie Mellon, ligada ao Software Engineering Institute ? SEI.

A primeira versão do CMMi foi oficialmente publicada no ano de 2000. A versão atual é a 1.2.

O CMMI é dividido em cinco níveis de maturidade, aqui representados graficamente:

mmi.jpg

Fonte: PMTech ? Mauro Sotille

As características de uma organização madura em seus projetos e processos são:

  • Processos são definidos, documentados e utilizados;
  • Planos de gestão são desenvolvidos, monitorados e comunicados;
  • Papéis e responsabilidades são claros;
  • Produto e processo são medidos;
  • Qualidade, custo e prazo são previsíveis;
  • Tecnologia é planejada e utilizada com eficácia;
  • Melhoria contínua é um ?estilo de vida?.

Legal, mas e agora?

O objetivo deste artigo não é ensinar ou se aprofundar em como uma empresa pode implantar o modelo CMMI 2 para um processo formal de certificação, e sim identificar e mostrar como a utilização de conceitos e práticas deste modelo podem, de forma simples, ajudar as empresas orientadas a projetos a melhorarem a gestão de seus projetos e processos internos.

O modelo CMMI foi concebido especificamente para organizações que desenvolvem softwares, mas em seu nível de maturidade 2 o foco é a gestão de projetos, o que pode fazer com que seus conceitos possam ser facilmente aplicados em outros tipos de organização que trabalham orientadas a projetos.

O nível 2 do CMMI está dividido em sete áreas de processos chave:

  • Gerência de requisitos (REQM);
  • Planejamento de projetos (PP);
  • Acompanhamento de projetos (PMC);
  • Garantia de qualidade do processo e do produto (PPQA);
  • Medição e análise (MA);
  • Gerência de configuração (CM);
  • Gerenciamento de acordos com fornecedores (SAM);

Levando essas áreas de processo para um contexto de projeto web, por exemplo, poderíamos ter esses processos agrupados da seguinte forma:

  • 1. Gerência de requisitos: entender e documentar formalmente todas as solicitações do cliente e os propósitos e ?desenho? do website que será criado.
  • 2. Planejamento de projetos: definir e documentar os objetivos do projeto, as entradas e o produto final a ser entregue. Definir os responsáveis por cada etapa do processo de criação. Definir um cronograma para o projeto.
  • 3. Acompanhamento de projetos: reportar e acompanhar o andamento do projeto, acompanhar o cronograma e as entregas. Agir no caso de atrasos e reportar problemas e/ou atrasos para o cliente.
  • 4. Garantia da qualidade do processo e do produto: ao final de cada entrega, testar e documentar os testes do que já foi entregue. Testar cada componente em separado dentro dos requisitos que foram passados e depois executar um teste do ?todo?. Exemplo de teste unitário: testar o formulário de contato, se envia o e-mail de contato e se faz as validações necessárias para não enviar um e-mail vazio.
  • 5. Medição e análise: medir a produtividade da sua equipe, baseado no cronograma e nos tempos que foram gastos para cada entrega. Medir o número de defeitos que foram corrigidos e onde aconteceram para agir para que não aconteçam mais. Medir as horas previstas x horas trabalhadas para se ter um cenário realista dos custos do projeto.
  • 6. Gerência de configuração: gerenciar toda a entrega e ?instalação? do website no servidor onde ele será hospedado. É interessante, nesse caso específico fazer um checklist das etapas e verificar se foram corretamente seguidas. (Exemplo: 1. zipar todo o conteúdo; 2) upload via ftp para o diretório de destino..). Nesta etapa, também é interessante gerar uma documentação com os dados relevantes para o cliente, como por exemplo os endereços de FTP, senhas, estrutura de diretórios do site e, no caso de um site dinâmico, anexar um pequeno manual de como atualizar as seções do website.
  • 7. Gerenciamento de acordos com fornecedores: no caso de você dividir o trabalho com outras empresas, é importante estabelecer um cronograma de entregas e fazer o controle de qualidade do produto final entregue por seu fornecedor. A estrutura de acompanhamento pode ser a mesma do seu próprio projeto (com cronograma, evidências de teste, controles de custo, etc…) ou somente um controle macro de entregar com datas previstas x realizadas. Lembre-se que as datas de entrega do seu fornecedor impactam diretamente no cronograma do seu projeto.

O CMMI é um modelo bastante interessante e abrangente para controle de projetos e processos. Uma rápida busca no Google pode lhe trazer milhões de referências. Outro aspecto interessante deste modelo é que ele está em constante evolução, de acordo com as experiências adquiridas pelas empresas que o conceberam.

Para começar, recomendo uma visita ao site da SEI, que criou e mantém o modelo. [Webinsider]

.

Guilherme Schneider (@guilhermebarcha) é executivo na área de consultoria e tecnologia da informação e mantém um blog pessoal.

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on pocket

Mais lidas

4 respostas

  1. Guilherme,
    acho tudo muito bonito e interessante, uma pena que SEMPRE pecam em Processos, uma das ferramentas exatas para que um projeto funcione. Se toda empresa tivesse um DONO dos processos, que desse apoio a todas as áreas e equipes, já seria um bom começo.
    Abs,

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *