PARTE II Controle Estatístico de Processos
Capítulo 6 Controle Estatístico de Processos e a Gerência Quantitativa de Projetos
6.6 Melhoria do Desempenho de Processos Estáveis e Capazes
Medição de Software e Controle Estatístico de Processos
Figura 6.22 – Inclusão de novos dados do processo de Testes.
Conforme discutido na seção 6.2, o refinamento da baseline de desempenho a partir de novos dados é realizado quando os limites de controle encontrados considerando os novos dados diferem significativamente dos anteriores ou quando os novos dados mostram alteração no comportamento do processo. No exemplo, os limites resultantes praticamente não diferem dos limites da baseline e sabe-se que não houve mudança no processo, então não é necessário refinar a baseline.
a) Desempenho: para melhorar um processo é preciso conhecer seu desempenho, ou seja, é preciso saber o que o processo está produzindo no momento em relação a qualidade, quantidade, custos e tempo.
b) Estabilidade: conhecido o desempenho, é preciso analisar se ele é previsível, ou seja, se o processo é estável e, se não for, é preciso estabilizá-lo.
c) Conformidade: a estabilidade de um processo é obtida quando seu comportamento é repetível dentro de limites de variação estabelecidos.
Para isso, é preciso garantir que o processo seja apoiado suficientemente para que sua execução possa ser repetida por membros distintos da organização. Tal apoio inclui, dentre outros, definição clara e completa das atividades do processo e ferramental de suporte à sua execução.
d) Capacidade: um processo estável não necessariamente é capaz de alcançar os objetivos para ele determinados. Processos não capazes devem ser modificados através da realização de ações de melhoria que apoiem o alcance aos objetivos da organização.
e) Melhoria: processos capazes, que produzem resultados satisfatórios, podem, ainda, ser melhorados para que resultados ainda melhores sejam produzidos.
Em linha com esses aspectos, que indicam que conhecer o desempenho dos processos é o primeiro passo para melhorá-los, FLORAC e CARLETON (1999) propuseram um framework para medição do comportamento de processos. Na verdade, o framework proposto extrapola o que é sugerido por seu nome, uma vez que, além de contemplar a medição do comportamento dos processos, inclui passos que orientam à melhoria contínua. Esse framework pode ser visto como um ciclo para melhoria contínua baseada no controle estatístico de processos. O framework é ilustrado na Figura 6.23.
Medição de Software e Controle Estatístico de Processos
Figura 6.23 – Framework para medição do comportamento de processos [FLORAC e CARLETON, 1999].
Conforme dito anteriormente neste livro, o controle estatístico de processos pode ser visto como uma evolução do processo de medição.
Observando-se atentamente a Figura 6.23 é possível perceber a relação entre as atividades do framework e o processo de medição. As atividades Entender os objetivos de negócio, Identificar e priorizar questões e Selecionar e Definir medidas correspondem ao planejamento da medição. As atividades Coletar, verificar e armazenar dados e Analisar comportamento do processo correspondem à execução da medição, ou seja, à coleta e análise dos dados. As demais atividades dizem respeito à melhoria de processo propriamente dita.
A seguir, as atividades do framework são sucintamente descritas.
a. Entender os objetivos de negócio: consiste em entender como os objetivos de negócio, metas, planos e estratégias da organização se relacionam com os processos de software. Ou seja, consiste na identificação das relações entre processos e objetivos organizacionais.
b. Identificar e priorizar questões: consiste em identificar quais são as necessidades de informação críticas para determinar se o processo será capaz de alcançar os objetivos de negócio estabelecidos.
c. Selecionar e definir medidas: consiste em selecionar e definir as medidas que serão utilizadas para caracterizar o desempenho dos processos.
d. Coletar, verificar e armazenar dados: consiste em coletar os dados para as medidas definidas, verificar se são corretos e armazená-los.
e. Analisar o comportamento dos processos: consiste em utilizar os métodos estatísticos apropriados para representar em gráficos de controle os dados coletados para as medidas, permitindo, assim, a análise do comportamento do processo. A análise do comportamento do processo pode levar a três direções:
• Remover causas especiais: consiste em realizar ações para tratar as causas especiais e tornar o comportamento do processo estável.
• Mudar o processo: consiste em realizar alterações no processo, tratando suas causas comuns, para que ele seja capaz de produzir os resultados necessários ao alcance dos objetivos.
• Melhorar continuamente o processo: consiste em realizar ações que levem o processo a produzir resultados cada vez melhores.
É muito importante entender a natureza contínua da melhoria. Assim, uma vez que os processos estão estáveis e são capazes, o papel do controle estatístico de processos não se encerra. Quando um processo torna-se capaz, um novo ciclo de melhoria pode (e, normalmente, deve) ser iniciado, estabelecendo-se novos objetivos para que o processo possa ser melhorado continuamente.
Muitas organizações, conhecidas pela excelência de seus programas de qualidade, estabelecem limites de variação bastante estreitos para os processos e,
Medição de Software e Controle Estatístico de Processos
uma vez que estes são alcançados, a organização obtém processos estáveis, capazes e com um grau de variabilidade consideravelmente baixo.
Quanto menor a variação dos processos, menores são as chances de desvios entre os valores planejados e realizados nos projetos, ou seja, maior é a aderência dos projetos aos cronogramas, orçamentos e demais planejamentos estabelecidos.
Quando o processo é alterado para tornar-se estável, capaz ou para sofrer uma melhoria contínua, é estabelecida uma nova definição para o processo, a qual deve ser executada nos projetos da organização, para que novos dados sejam coletados, o comportamento da nova definição do processo seja analisado e o ciclo apresentado no framework se repita.
Exemplificando a execução de um ciclo do framework, suponha que uma organização esteja recebendo reclamações dos clientes sobre a demora para resolver problemas por eles relatados. Com isso, um de seus objetivos de negócio críticos é melhorar o suporte aos clientes. Para monitorar esse objetivo, foi identificada a necessidade de informação Qual a taxa de problemas reportados pelo cliente não resolvidos? e foi selecionado o processo Manutenção, responsável pela correção de problemas nos sistemas de informação entregues aos clientes, para ter seu comportamento analisado por meio da medida taxa de problemas não resolvidos. Para análise do comportamento foi elaborado o gráfico de controle apresentado na Figura 6.24, que revelou instabilidade no comportamento do processo.
Figura 6.24 – Processo de manutenção instável.
Como o processo é instável, deve ser conduzida uma investigação das causas dos pontos que se encontram fora dos limites de controle, que indicam o comportamento esperado para o processo. Suponha que essa investigação tenha sido conduzida, tendo sido percebido que nas semanas em que a taxa de problemas não resolvidos extrapolou os limites esperados, ocorreu greve no transporte público levando vários funcionários a faltarem o trabalho.
Considerando que essas causas não são inerentes ao processo, ou seja, não há necessidade de mudar o processo para tratá-las, esses pontos podem ser excluídos da análise do comportamento do processo. Com isso, como mostra a Figura 6.25, o comportamento do processo torna-se estável.
Figura 6.25 – Processo de manutenção estabilizado.
Uma vez estabilizado, a capacidade do processo deve ser analisada.
Suponha que a organização tenha estabelecido que a taxa de problemas não resolvidos não deve ultrapassar 0,25. Nesse caso, como mostra a Figura 6.26, o processo não é capaz. Na figura, o limite especificado para o processo (voz do cliente) é representado pela linha sólida verde. A incapacidade do comportamento do processo (voz do processo) atender o limite especificado é bem visível (limite de controle superior é maior que a meta estabelecida), não tendo, por esse motivo, sido realizado o cálculo do índice de capacidade.
Medição de Software e Controle Estatístico de Processos
Figura 6.26 – Processo de manutenção não capaz.
Buscando tornar o processo capaz, a organização analisou a definição atual do processo e decidiu realizar algumas alterações para minimizar o tempo de análise da prioridade de um problema e melhorar a distribuição dos problemas entre a equipe de execução das manutenções. Após essa alteração, o processo entrou em execução e foram coletados novos dados para a taxa de problemas não resolvidos. A análise do comportamento da nova definição do processo mostrou que ele tornou-se capaz, como mostra a Figura 6.27.
Figura 6.27 – Processo de manutenção capaz.
Suponha, agora, que a organização, em uma ação de melhoria de um processo estável e capaz, tenha decidido diminuir ainda mais a taxa de problemas não resolvidos, tendo estabelecido que ela não deva ultrapassar 0,20. Essa decisão levou a mais uma alteração no processo, que passou a adotar alguns princípios do desenvolvimento ágil nas manutenções maiores. O processo entrou em execução e teve dados de sua execução coletados. Como resultado, a análise do
comportamento do processo mostrou que ele manteve-se capaz e com melhor desempenho (limites mais estreitos), como mostra a Figura 6.28.
Figura 6.28 – Processo de manutenção após melhoria contínua: estável, capaz e com melhor desempenho (limites mais estreitos).
Vale destacar que alterações nos processos podem levar à desestabilização.
Por exemplo, a última alteração realizada no processo de manutenção do exemplo poderia ter resultado em instabilidade e incapacidade. Nesse caso, as causas deveriam ser investigadas e o ciclo se repetiria.
6.6.1 Por onde começar
Mesmo sabendo como melhorar o desempenho dos processos utilizando o controle estatístico, fica, ainda, uma questão: por onde começar?
Processos de software são consideravelmente distintos dos processos da manufatura, onde o controle estatístico de processos teve origem. Implementar as ações que levam à melhoria dos processos de software envolve algumas dificuldades inerentes a essa área. Uma delas é a dificuldade de não poder experimentar uma melhoria antes de implementá-la sem interferir, ou interferindo o mínimo possível, na rotina e produtividade da organização.
Empresas que desenvolvem software raramente conseguem fazer experiências de laboratório para avaliar as propostas de melhoria antes da implementação. Em diversas áreas, para identificar se uma determinada proposta de melhoria será realmente efetiva, são realizadas experiências para garantir que, ao ser implementada a melhoria, os resultados esperados serão obtidos. Por exemplo, uma indústria de veículos faz testes em laboratório antes de incluir um
Medição de Software e Controle Estatístico de Processos
novo dispositivo de segurança em seus automóveis e disponibilizá-los para a população.
Considerando as particularidades do desenvolvimento de software, a fim de reduzir os riscos e gerenciar consequências inesperadas, as melhorias devem, frequentemente, ser introduzidas por meio de projetos piloto, que permitem avaliar os resultados das modificações antes de implementá-las em toda a organização.
A melhoria baseada no controle estatístico de processos também pode seguir essa linha. Ou seja, uma vez identificadas as necessidades de melhoria para um dado processo, ao invés de alterar o processo e utilizar sua nova definição em todos os projetos correntes, pode ser selecionado um projeto piloto para utilizar a nova definição do processo e fornecer resultados iniciais que permitirão decidir pela implementação ou não da melhoria para a organização como um todo.