1 INTRODUÇÃO
2.5 MODELOS DE MELHORIA DO PROCESSO DE SOFTWARE
2.5.2 CMMI
2.5.2.2 Níveis de maturidade e capacidade
Segundo Software Engineering Institute (2006, p. 31), “no modelo CMMI, utilizam-se níveis para descrever um caminho evolutivo recomendado para uma organização que deseja melhorar os processos utilizados para desenvolver e manter seus produtos e serviços.”
Os níveis caracterizam melhorias a partir de um estado em que processos estão mal definidos em direção a um estado que utilize informações quantitativas a fim de determinar e gerenciar melhorias necessárias para satisfazer aos objetivos estratégicos da organização. (SOFTWARE ENGINEERING INSTITUTE, 2006, p.31) Pressman (2006) explica que o CMMI possui duas formas de representar as melhorias nos processos: como um modelo contínuo e como um modelo em estágios. No modelo contínuo, a representação dos níveis é realizada com base na capacidade. Por outro lado, o modelo em estágios utiliza a expressão níveis de maturidade para analisar o nível em que os processos de uma empresa se encontram.
A escolha do tipo de representação depende da forma de que a empresa deseja implantar as melhorias, por exemplo, a representação contínua permite a escolha da sequência da implantação das melhorias, diferentemente da melhoria por estágios que define um caminho a ser percorrido. Além disso, o conhecimento das pessoas envolvidas na implantação e a existência de um legado podem ser levados em consideração no momento da escolha. Ambas as representações possuem vantagens e desvantagens, e por isso algumas empresas optam por utilizar as duas representações. (SOFTWARE ENGINEERING INSTITUTE, 2006).
2.5.2.2.1 Representação contínua
Segundo Software Engineering Institute (2006, p. 25), “a representação contínua permite que a organização escolha uma determinada área de processo (ou grupo de áreas de processos) e melhore processos relacionados a ela.” A representação contínua utiliza níveis de capacidade para caracterizar a melhoria. Existem seis níveis de capacidade que vão do nível “incompleto” ao em “otimização”. Esse tipo de representação é flexível na implantação porque permite a melhoria no processo de diferentes áreas com nível de profundidade diferente.
Uma empresa possui nível de capacidade 0, ou incompleto, quando o processo é executado parcialmente ou não é executado. “Uma ou mais metas específicas da área de processo não são satisfeitas e não existem metas genéricas para esse nível, já que não há razão para institucionalizar um processo executado parcialmente.” (SOFTWARE ENGINEERING INSTITUTE, 2006, p. 34).
No nível 1 de capacidades, realizado, os objetivos específicos de cada área devem ser cumpridos com a utilização de processos. (KOSCIANSKI; SOARES, 2007).
O nível gerenciado, ou nível 2 de capacidade, tem como característica a execução de processo, utilizando ferramentas adequadas no apoio das atividades e emprega pessoas experientes. Quando uma empresa implementa o nível 2 de capacidade, os processos devem ser monitorados, controlados e revisados. (SOFTWARE ENGINEERING INSTITUTE, 2006).
No nível definido, ou nível 3 de capacidade, os processos são executados, seguindo com rigor os padrões definidos. São especificados os padrões e os mesmos devem ser utilizados em qualquer tipo de projeto da empresa. (KOSCIANSKI; SOARES, 2007).
No nível 4 de capacidade, gerenciado quantitativamente, os processos são controlados e monitorados por meio do uso de estatísticas. (SOFTWARE ENGINEERING INSTITUTE, 2006).
No nível 5, otimizado, os processos são “[...]sistematicamente gerenciados e implantados. Os efeitos da implantação da melhoria de processos são medidos e avaliados em relação aos objetivos de melhoria quantitativa previamente estabelecidos.” (KOSCIANSKI; SOARES, 2007). Os processos são avaliados e melhorados constantemente.
2.5.2.2.2 Representação por estágios
A representação por estágios utiliza caminhos em áreas predefinidas para aplicar as melhorias nos processos. O caminho é chamado de nível de maturidade. (SOFTWARE ENGINEERING INSTITUTE, 2006).
Um nível de maturidade é um platô evolutivo definido para melhoria de processo da organização. Cada nível de maturidade representa o amadurecimento de um importante subconjunto dos processos da organização, preparando-os para alcançar o próximo nível de maturidade. Os níveis de maturidade são medidos pela satisfação das metas específicas e genéricas associadas a cada conjunto predefinido de áreas de processo. (SOFTWARE ENGINEERING INSTITUTE, 2006, p. 37).
A representação por estágios prescreve uma ordem de implementação das áreas de processo de acordo com níveis de maturidade, definido um caminho de melhoria para a organização, do nível „inicial‟ ao nível „em otimização‟. (SOFTWARE
ENGINEERING INSTITUTE, 2006, p.10).
O CMMI agrupa as áreas de processo em quatro categorias: gestão de processo, gestão de projeto, engenharia e suporte. Frequentemente, as áreas de processo interagem entre si. (SOFTWARE ENGINEERING INSTITUTE, 2006).
Além disso, na representação por estágios, cada área de processo está relacionada a um nível de maturidade, ou seja, cada nível foca a implantação das melhorias em um determinado conjunto de áreas de processo.
No nível inicial, a empresa, muitas vezes, possui um ambiente de desenvolvimento de software caótico. Geralmente, os projetos atrasam, e os custos ficam acima do previsto. Nesse nível, o sucesso dos projetos depende muito do comprometimento e empenho das pessoas envolvidas. (KOSCIANSKI; SOARES, 2007).
Já o nível 2 de maturidade, também chamado de gerenciado, garante que os projetos da organização são planejados e executados conforme uma política, ou seja, a empresa deixa o caos de lado e adota medidas de monitoramento, controle e revisão dos projetos. A implantação do nível 2 de maturidade permite o aumento da visibilidade do andamento e dos resultados de um projeto. (SOFTWARE ENGINEERING INSTITUTE, 2006). No nível definido, ou nível de maturidade 3, os processos são bem entendidos e caracterizados.“A padronização de processos possibilita maior consistência nos produtos gerados pela organização. Na descrição dos processos, são usados padrões, procedimentos, ferramentas e métodos bem definidos.” (KOSCIANSKI; SOARES, 2007, p. 107). Para conseguir atingir o nível 3 de maturidade, as empresas devem seguir o mesmo padrão, independente do tipo do projeto, essa é a principal diferença do nível 3 para o nível 2.
O nível de maturidade 4, gerenciado quantitativamente, é caracterizado pela definição de objetivos de forma quantitativa para o desempenho e qualidade dos projetos. A principal diferença desse nível para o anterior é a análise estatística do desempenho dos processos. (SOFTWARE ENGINEERING INSTITUTE, 2006).
Para atingir o nível 5 de maturidade, otimizado, a empresa deve buscar a melhoria contínua de processos. O uso de tecnologia e de inovações e a revisão contínua dos objetivos são necessários para a implantação do nível otimizado.