• Nenhum resultado encontrado

CMMI – C APABILITY M ATURITY M ODEL I NTEGRATION

Melhoria de Processo de Software

3. Nível quantitativo (Measure /Métrica)

2.4. M ODELOS DE Q UALIDADE

2.4.1. CMMI – C APABILITY M ATURITY M ODEL I NTEGRATION

O CMMI foi criado pelo SEI - Software Engineering Institute, trata-se de um guia composto por um conjunto de modelos de referência que provê orientação para melhorar os processos organizacionais e a habilidade para gerenciar o desenvolvimento, aquisição e manutenção de produtos ou serviços [SEI, 2006]. Provê também abordagens estruturadas com o intuito de ajudar uma organização a avaliar sua maturidade organizacional e a capacidade de áreas de processo, estabelecer as prioridades de melhoria e implementar as melhorias no processo. O CMMI-DEV 1.2 é uma continuação

e atualização do CMMI-DEV 1.1 e sua compreensão foi facilitada pelo uso do conceito de “constelações” do CMMI onde um conjunto de componentes do núcleo pode ser aumentado por material adicional para fornecer modelos características da aplicação com conteúdo altamente comum [SEI, 2006].

O CMMI originou-se do CMM (Capability Maturity Model) também criado pelo SEI, e incorporou elementos de outros modelos como o padrão ISO 15504. O CMM foi concebido como um modelo de maturidade, publicado no início da década de noventa para ser um guia de melhoria de processo liderado por Humphrey e que mais tarde sofreria evoluções por Paulk [Humphrey, 1989] [Paulk et al., 1993]. O objetivo inicial era criar padrões de processos para os fornecedores do Departamento de Defesa norte- americano. O principal conceito da proposta inicial foi estabelecer níveis de maturidade, que determinassem metas incrementais de melhoria [Humphrey, 1989]. Esse conceito já conhecido nos trabalhos do autor Phillip Crosby da área de qualidade de processos para indústria em geral [Crosby, 1979 citado por [Humphrey, 1989]].

No início o CMM foi criado para processos de engenharia de software, denominado como SW-CMM. Entretanto, a indústria de componentes de software e hardware integrados num mesmo produto motivou a criação de modelos derivado como: i) SE-CMM para engenharia de sistemas que prevê sistemas compostos por componentes de hardware e software; ii) IPD-CMM para o desenvolvimento de produtos integrados que pode incluir a integração de produtos, além de componentes de hardware e software. A alta utilização dos modelos CMM motivou pesquisas de como mantê-los compatíveis e integrados, dissipando algumas divergências.

O principal objetivo da criação do CMMI foi integrar os modelos CMM criados para diferentes áreas de aplicações. A Figura 2.15 apresenta de forma ilustrativa o histórico da evolução do CMM e a atual versão do CMMI. Atualmente o CMMI possui mais dois novos componentes no modelo: um determinado para aquisições (CMMI-

Figura 2.15. Histórico dos modelos CMMs. [SEI, 2006].

Os modelos que compõem o CMMI são um conjunto de requisitos e guias que ajudam a organização a estruturar seus processos. Por natureza, esses modelos priorizam a definição de O que deve ser feito, mas não de Como deve ser feito. São disponibilizados para uso sob duas representações que implicam na escolha de estratégias distintas para a iniciativa de melhoria:

 Representação em Estágios: estruturada em níveis pré-definidos de maturidade organizacional conforme a Figura 2.16. Cada nível de maturidade define um conjunto de áreas de processos com determinadas metas que devem ser atendidas. Iniciativas de melhoria com base nesse modelo pressupõem a evolução total da capacidade dos processos da organização conforme a ordem pré-definida no modelo.

Figura 2.16. Representação em Estágios.

 Representação Contínua: estruturada em níveis pré-definidos de capacidade, para cada área de processo distinta. Iniciativas de melhoria com base nesse modelo permitem a flexibilidade para que a evolução possa ser feita em certas áreas de processo apenas, sem ordem pré-estabelecida, conforme priorizado pela organização. A proposta de representação contínua é possivelmente a maior diferença do CMMI em relação ao seu antecessor, o CMM, que previa apenas a representação em estágios. As definições dos níveis de maturidade são idênticas entre os modelos CMMI e CMM, e são apresentadas na Figura 2.17.

Tabela 2.19. Níveis de capacidade.

Nível de Capacidade Descrição

0 – Incompleto Indica que um determinado processo não é realizado ou é realizado parcialmente.

1 – Realizado Indica que um determinado processo é completamente realizado.

2 – Gerenciado Indica que um processo é planejado e realizado com base num plano.

3 – Definido Indica que um processo é planejado e executado por todas as áreas da organização sob as mesmas especificações de processo.

4 - Quantitativamente gerenciado

Indica que um processo é definido e monitorado estatisticamente ou por outros métodos quantitativos.

5 - Otimizado Indica que um processo definido e monitorado estatisticamente é continuamente adaptado visando atingir objetivos relevantes do negócio.

Embora o modelo CMMI utilizado na representação Contínua seja mais flexível para adequação às necessidades específicas das organizações, a representação em

Estágios é muito mais utilizada. Existem dois motivos principais que justificam essa

utilização: primeiro porque a representação em Estágios foi herdada do antigo modelo CMM, por já ter sido testado na indústria de software e por isso, apresenta-se como uma estratégia mais segura a ser seguida. O segundo motivo, é que a representação em

Estágios permite uma avaliação oficial reconhecida pelo SEI que estabelece o nível de

maturidade do processo da organização. A avaliação oficial foi desde o início é um dos principais objetivos do CMM, para ser um fator de qualificação de fornecedores de produtos e serviços de software [Humphrey, 1989]. Os componentes do CMMI são apresentados na Figura 2.18.

A seguir é apresentada uma breve descrição sobre os componentes ilustrados na Figura 2.18:

 Nível de maturidade: Define o nível evolutivo de melhoria de processo. Provê uma forma de predizer o desempenho de uma organização em uma dada disciplina ou conjunto de disciplinas.

 Área de processo: É um conjunto de práticas relacionadas em uma dada área que, quando desempenhadas coletivamente, satisfazem um conjunto de metas consideradas importantes para uma melhoria significativa nesta área. Na prática as áreas de processo são formas de organizar disciplinas e atividades fundamentais para o desenvolvimento de software.

 Metas específicas: São características que descrevem o que deve ser implementado para satisfazer certa área de processo e por isso são usadas nas avaliações da respectiva área de processos.

 Prática específica: Atividade considerada importante para atender uma meta específica de certa área de processo.

 Características comuns: São componentes do modelo que organizam as práticas genéricas de cada área de processo e não são avaliados. São elas: comprometimento no realizar, habilidade de realizar, direcionamento de implementação e verificação de implementação.

 Metas genéricas: São assim chamadas porque aparecem em múltiplas áreas de processos. Atingir uma meta genérica numa área de processo significa que seu controle foi melhorado em planejar e implementar processos associados àquela área. Indica se um processo é eficaz, repetível e duradouro.

 Práticas genéricas: Provêem institucionalização a fim de certificar que os processos associados a uma área de processo serão efetivos, repetíveis e duradouros.

Tabela 2.20. Níveis de Maturidade do CMMI versão 1.2 [SEI, 2006].

Nível Focos Área de Processo

5 Otimização Foco na melhoria de processo Inovação e Melhoria Organizacional Análise de Causa e Resolução 4 Gerenciado

quantitativamente

Processo medido e controlado Desempenho do Processo Organizacional Gerência Quantitativa de Projeto

3 Definido Processo caracterizado para a organização e proativo Desenvolvimento de Requisitos Solução Técnicas Integração de Produto Validação Verificação

Foco no Processo Organizacional Definição do Processo Organizacional Treinamento Organizacional

Gerência de Riscos

Análise de Decisão e Resolução Gerência Integrada de Projetos para

Desenvolvimento Integrado de Produto e Processo

2 Gerenciado Processo caracterizado por projetos e freqüentemente reativo

Gerência de Requisitos Planejamento de Projetos

Acompanhamento e Controle de Projeto Gerência de Configuração

Medição e Análise

Garantia da Qualidade de Processo e Produto Gerência de Acordos com Fornecedores

1 Inicial Processo imprevisível e pobremente controlado e reativo