Processo
Melhorando Processos de Software através de Análise Causal de Defeitos
Este artigo fornece uma visão geral de como a análise causal de defeitos pode ser aplicada para obter melhoria de processo baseada no produto. A base teórica a respeito de análise causal de defeitos é descrita, bem como maneiras eficientes de implementar a mesma em organizações de software. Adicionalmente, um exemplo real de sua aplicação na indústria é apresentado. Considerando que apenas dados relacionados a defeitos precisam ser coletados, a análise causal de defeitos é indicada mesmo para empresas com baixo nível de maturidade, permitindo a estas reduzir significativamente suas taxas de defeitos e conseqüentemente o custo e tempo de desenvolvimento.
Introdução
Análise causal é considerada na maioria das abordagens de melhoria de processo de software, tais como MPS, CMMI, Six Sigma, e Lean. A análise causal de defeitos visa identificar as causas dos defeitos para que ações possam ser tomadas para prevenir sua ocorrência em iterações ou projetos futuros. Embora a identificação das causas seja realizada em projetos específicos, estas causas podem revelar oportunidades de melhoria dos ativos de processo organizacionais.
Por trás da idéia da melhoria do processo de software baseada em produto (product focused software process improvement) está realizar um programa de melhoria de processos que trate características de qualidade do produto de uma maneira explícita. Inquestionavelmente, uma das principais características de qualidade do produto de software são os defeitos encontrados em seus artefatos. Desta forma, a análise causal de defeitos fornece uma oportunidade eficiente de melhoria de processos de software baseada em produto, conforme apontado em (Kalinowski, 2007).
Considerando ainda que dados relacionados a defeitos são comumente coletados em organizações de software, a análise causal de defeitos fornece um meio para que organizações melhorem seus processos, migrando para níveis mais altos de maturidade, com ênfase direta na diminuição da taxa de defeitos e conseqüentemente no retorno de investimento das melhorias implementadas. Assim, a implementação eficiente de métodos de análise causal de defeitos tem se tornado uma vantagem competitiva para organizações de software.
Além desta base conceitual introdutória, este artigo também apresenta uma fundamentação teórica a respeito de análise causal de defeitos e maneiras como ela pode ser implementada em organizações de software são descritas, e um exemplo de sua aplicação na indústria.
Análise Causal de Defeitos
Análise causal de defeitos melhora a qualidade e produtividade tratando da melhoria de processos de modo a prevenir a introdução de defeitos no produto. Como conseqüência, de acordo com o SEI (Software Engineering Institute) (SEI, 2006), ajuda a atingir objetivos de qualidade e produtividade dos projetos. Neste contexto, Robitaille (2004) ressalta a importância de se tratar o processo de análise causal como um meio para identificar oportunidades de melhoria dos ativos de processo organizacionais. Card (2005), por sua vez, discute a importância de gerenciar e aprender a partir dos defeitos de software.
Dada tal importância, a análise causal de defeitos tem sido discutida desde os anos 70 (Endres, 1975) e é citada por Boehm (2006) como uma das principais contribuições daquela década para a engenharia de software. Desde aquele artigo inicial, várias abordagens têm sido formalizadas e implementadas em organizações de software de diferentes tamanhos e níveis de maturidade. De acordo com uma revisão sistemática sobre análise causal de defeitos (Kalinowski et al., 2008) o esforço para realizar análise causal é extremamente baixo e varia entre 0,5 e 1,5% do esforço total do desenvolvimento, já incluindo o esforço para implementar as oportunidades de melhoria identificadas. De acordo com esta mesma revisão, a redução média na taxa de defeitos, por outro lado, tem sido superior a 50%. Tendo em vista o impacto positivo da redução da taxa de defeitos em variáveis como esforço, custo e tempo, trata-se de um processo cuja implementação traz um alto retorno de investimento para a organização.
A análise causal de defeitos é um processo sistemático para identificar e analisar causas associadas à ocorrência de tipos específicos de defeitos, permitindo identificar oportunidades de melhoria para os ativos de processo organizacionais a fim de prevenir a ocorrência daquele mesmo tipo de defeito em projetos futuros. Card (2005) resume a análise causal de defeitos em seis passos: