domingo, 30 de outubro de 2011

CMMI

Capability Maturity Model (CMM)

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 CMMI (Capability Maturity Model Integration) é um modelo de referência que contém práticas (Genéricas ou Específicas) necessárias à maturidade em disciplinas específicas (Systems Engineering (SE), Software Engineering (SW), Integrated Product and Process Development (IPPD), Supplier Sourcing (SS)). Desenvolvido pelo SEI (Software Engineering Institute) da Universidade Carnegie Mellon, o CMMI é uma evolução do CMM e procura estabelecer um modelo único para o processo de melhoria corporativo, integrando diferentes modelos e disciplinas.
O CMMI foi baseado nas melhores práticas para desenvolvimento e manutenção de produtos. Há uma ênfase tanto em engenharia de sistemas quanto em engenharia de software, e há uma integração necessária para o desenvolvimento e a manutenção. A versão atual do CMMI (versão 1.3) foi publicada em 27 de outubro de 2010 e apresenta três modelos:
CMMI for Development (CMMI-DEV), voltado ao processo de desenvolvimento de produtos e serviços.
CMMI for Acquisition (CMMI-ACQ), voltado aos processos de aquisição e terceirização de bens e serviços.
CMMI for Services (CMMI-SVC), voltado aos processos de empresas prestadoras de serviços.


O CMMI é um modelo de maturidade para o desenvolvimento e manutenção de software e dos serviços que abrangem o ciclo de vida do produto, desde sua concepção até a sua entrega e manutenção. Este modelo dá ênfase às disciplinas de engenharia de sistemas e também à engenharia de software e à integração necessária para construir e manter os produtos de forma abrangente. Este modelo oferece um conjunto de boas práticas agrupadas de acordo com áreas de atividades correlatas e níveis de maturidade. Estes níveis correspondem a etapas progressivas de eficácia gerencial e se apresentam como um caminho evolucionário para qualquer organização que pretenda melhorar seus processos de desenvolvimento e manutenção de software .Implantar um determinado nível do CMMI dentro de uma organização constitui, entretanto, um processo penoso e demorado. Além disso, a qualidade da implementação do CMMI afeta diretamente os benefícios obtidos.


Do ponto de vista organizacional, as empresas vêm buscando cada vez mais explicitar os princípios que as governam através das chamadas Regras de Negócio. As Regras de Negócio são uma forma de se expressar o conhecimento organizacional. Elas determinam como o negócio deve operar, mantendo a estrutura do negócio, controlando ou influenciando algum aspecto do negócio, sob o ponto de vista do desenvolvimento de software, as Regras de Negócio podem ser consideradas como requisitos de um projeto, pois deverão ser implementadas nas aplicações informatizadas que dão suporte às operações de um negócio. Assim, a abordagem ao desenvolvimento de software baseada em Regras de Negócio consiste, basicamente, em tratá-las como requisito prioritário.
Esta abordagem tem duas motivações principais. Em primeiro lugar, a explícita consideração das Regras de Negócio como requisito prioritário tende a assegurar o alinhamento entre os objetivos da organização e os seus sistemas Em segundo lugar, as Regras de Negócio são naturalmente mais familiares aos clientes e usuários do que os modelos usuais de captura de requisitos. Tal familiaridade tende a aumentar sua participação e responsabilidade na especificação dos requisitos e, ao mesmo tempo, tende a reduzir as falhas de tradução dos mesmos.
A adoção das práticas recomendadas pelo CMMI por uma organização implica na implantação, implícita ou explícita, de novas Regras de Negócio. .
Para apoiar esta abordagem baseada em Regras de Negócio foi desenvolvida uma ferramenta chamada. A ferramenta provê uma forma estruturada para capturar, armazenar e recuperar as informações sobre as Regras de Negócio, facilitando o trabalho de especificação e implementação destas regras.
O principal objetivo é contribuir para a disseminação do CMMI, facilitando sua adoção e certificação.
O CMMI consiste nas melhores práticas direcionadas ao desenvolvimento e à manutenção de produtos e dos serviços, abrangendo todo o ciclo de vida do produto, desde sua concepção até a sua entrega e manutenção Muitas organizações no mundo todo têm adotado este modelo com o objetivo de possibilitar a elevação da maturidade da capacidade de suas equipes nas atividades relacionadas ao software.
O modelo de maturidade CMMI descreve um caminho evolucionário, que começa com processos imaturos (inicial) e segue até um processo maduro e disciplinado (otimizado), onde é possível o controle do processo de produção de software por meio de métricas e modelos estatísticos. No nível 2 de maturidade de software (gerenciado), os projetos da organização garantem que os requisitos são gerenciados e que os processos são planejados, executados, medidos e controlados. A disciplina do processo refletida pelo nível de maturidade 2 ajuda a garantir que as práticas existentes sejam mantidas mesmo em situações de stress.

SIX Sigma

Uma das grandes dificuldades do desenvolvimento de software é adequar, de forma sistemática, os esforços na resolução de problemas e nas melhorias dos processos internos aos objetivos do negócio. O Seis Sigma é uma metodologia estruturada que incrementa a qualidade dos processos e o alinhamento com as estratégias empresariais, proporcionando altos ganhos financeiros para quem o utiliza. Surgido inicialmente na manufatura, o Seis Sigma vem sendo aplicado também noutros setores. No desenvolvimento de software, o seu uso é ainda restrito, mas há indícios de que possa ser utilizado com o mesmo sucesso. O objetivo desta dissertação de mestrado é propor um roteiro específico para a implementação do Seis Sigma nas organizações desenvolvedoras de software.






Além do levantamento teórico, foi realizado um estudo de casos múltiplos para analisar as razões da sua adoção, as modalidades de seu uso, os seus benefícios e as suas limitações para os processos de software. Os resultados observados mostram que o Seis Sigma pode ser aplicado total ou parcialmente na melhoria dos processos de software. Além disso, é necessário alguma customização nos processos do Seis Sigma convencional, uma vez que os projetos de melhoria podem estar orientados para novos produtos, novos clientes ou, ainda, que os trabalhos de desenvolvimento fiquem a cargo de novas equipes, que muitas vezes são terceirizadas.
O trabalho conclui que o Seis Sigma pode contribuir efetivamente para a melhoria dos processos de software, independentemente da organização objetivar níveis superiores de maturidade. O estudo sugere também um roteiro específico, chamado SW-DMAIC, para a aplicação do Seis Sigma em empresas desenvolvedoras de software. Este roteiro é composto por três etapas: implementação da filosofia do Seis Sigma, reciclagem desta filosofia, quando necessário e execução de projetos específicos.


1.  




Um comentário:

  1. Olá bom dia!
    Muito bom o post sobre CMMI, estou fazendo um trabalho na faculdade e gostaria de saber você tem mais algum material sobre CMMI-ACQ - CMMI Acquisition ou onde posso encontrar mais sobre o assunto

    Qualquer coisa manda no meu e-mail - lfabiof@gmail.com

    Obrigado

    ResponderExcluir