Esse artigo faz parte da revista Engenharia de Software 12 edição especial. Clique aqui para ler todos os artigos desta edição

Processo

Utilização do Controle Estatístico de Processos na Melhoria de Processos de Software

 

Conhecendo Ferramentas para Análise do Comportamento dos Processos

 

 

De que se trata:

Este artigo está diretamente relacionado ao artigo “Controle Estatístico de Processos de Software: Do “Chão de Fábrica” para as Organizações de Software”, publicado na edição anterior. No artigo citado foram apresentados os principais conceitos e questões relacionados ao controle estatístico de processos e sua utilização em processos de software. Foram abordados os conceitos de estabilidade, causas de variações (comuns e especiais), capacidade e uma breve introdução às técnicas estatísticas utilizadas no controle estatístico de processos foi realizada. Neste artigo, em complemento ao que foi discutido no artigo anterior, é realizada uma contextualização da utilização do controle estatístico de processos na melhoria de processos de software, as principais técnicas estatísticas são apresentadas e é discutido um exemplo de utilização de gráficos de controle para analisar o comportamento (estabilidade) de um processo, e um exemplo de utilização de histograma para analisar a capacidade de um processo.

 

Para que serve:

Incrementar o conhecimento essencial sobre a utilização do controle estatístico de processos para organizações, pesquisadores, estudantes e profissionais de software envolvidos em atividades relacionadas aos níveis gerencial e/ou estratégico das organizações.

 

Em que situação o tema é útil:

Organizações que estão a caminho dos níveis mais elevados de maturidade de seus processos e precisam implantar o controle estatístico de processos; organizações que estão iniciando o caminho de melhoria de processos e desejam, desde já, conhecer aspectos de controle estatístico de processos necessários no futuro, nos níveis mais elevados; profissionais envolvidos na implementação de programas de melhoria de processos de software; estudantes e pesquisadores que desejam explorar o tema.

 

Constantemente as organizações se questionam se os resultados por elas desejados estão sendo alcançados. Essa questão pode ser expressa de várias maneiras: se os objetivos estão sendo atingidos, se os clientes estão satisfeitos, se está havendo retorno do investimento, se o desempenho alcançado é suficiente para o crescimento requerido para a sobrevivência e a competitividade necessários, entre outras.

Para a maioria das organizações, responder a essas questões de forma objetiva e precisa não é uma tarefa trivial, pois nem sempre seus processos são gerenciados e, com isso, seu desempenho real não é conhecido.

W. Eduards Deming, reconhecendo a importância da gerência dos processos, baseou-se nos trabalhos de Walter A. Shewart para definir uma abordagem para gerência de processos e melhoria contínua que, inicialmente, foi implementada com sucesso em indústrias do Japão. A abordagem foi popularizada como PDCA – Plan, Do, Check, Act.

Com o passar do tempo, os conceitos, métodos e práticas associados à gerência de processos e melhoria contínua foram aceitos pela comunidade de software, que percebeu que os princípios do process-thinking poderiam ser aplicados em organizações de software a fim de alcançar melhoria da qualidade, produtividade e competitividade.

Gerenciar processos de software envolve definir, medir, controlar e melhorar os processos de trabalho associados ao desenvolvimento, manutenção e suporte de produtos e serviços de software. A gerência efetiva dos processos corrobora para que os produtos e serviços gerados atendam aos requisitos da organização e dos clientes e, consequentemente, contribuam para o alcance dos objetivos de negócio da organização.

 A aceitação e utilização do process-thinking pelas organizações de software levou à percepção de que os métodos de medição e análise tradicionais, que comparam os valores realizados com os valores planejados, não são suficientes para determinar o desempenho dos processos e responder objetivamente às questões citadas anteriormente.

Mais uma vez, a comunidade de software reconheceu a utilidade de métodos e práticas oriundos da indústria para resolver questões nas organizações de software. O controle estatístico de processos, que envolve gráficos de controle e métodos estatísticos, passou, então, das linhas de produção da manufatura para o desenvolvimento de software.

A utilização de gráficos de controle e métodos estatísticos provê aos engenheiros de software e gerentes uma visão quantitativa do comportamento de seus processos de software. Metaforicamente, os gráficos de controle estão para os gerentes e engenheiros de software assim como um medidor de temperatura está para um profissional que cuida do processo de transformação da matéria-prima em aço e que precisa realizar determinadas ações de acordo com a temperatura atingida pelos materiais ao longo do processo. Ou seja, os gráficos de controle guiam as decisões dos gerentes e engenheiros de software fornecendo o conhecimento necessário sobre o comportamento dos processos.

Gerência de Processos de Software e Controle Estatístico de Processos

Conforme mencionado anteriormente, a gerência de processos de software envolve definir, medir, controlar e melhorar os processos associados ao desenvolvimento, manutenção e suporte de produtos e serviços de software, a fim de que os mesmos contribuam para o alcance dos objetivos organizacionais.

Segundo princípios do controle estatístico de processos, a gerência de processos permite estabilizar e manter estáveis os níveis de variação do comportamento dos processos, possibilitando que resultados futuros sejam previstos, colaborando, assim, para um melhor alinhamento entre os objetivos e expectativas organizacionais e o desempenho dos processos.

Sendo assim, as responsabilidades da gerência de processos, considerando-se os princípios do controle estatístico de processos, podem ser descritas da seguinte forma:

a)     Definir o processo

Consiste em definir a ‘base’ requerida para o controle e melhoria dos processos. Ou seja, envolve a definição dos processos que apóiam os objetivos técnicos e de negócio da organização; identificação das necessidades de informação e medidas relacionadas ao desempenho dos processos; e, fornecimento da infra-estrutura e habilidades necessárias para execução dos processos (métodos, pessoas e práticas).

b)     Medir o processo

Consiste na coleta, armazenamento, análise e utilização de dados das medidas de desempenho para os processos da organização. Esses dados servem para determinar a estabilidade e capacidade dos processos, apoiar previsões, determinar baselines e identificar tendências e oportunidades de melhoria.

c)     Controlar o processo

Consiste em identificar se o comportamento dos processos é estável e, caso não seja, identificar e tratar as causas de instabilidade.

d)     Melhorar o processo

Consiste em identificar aspectos que interferem na capacidade dos processos, planejar e realizar ações para tratar esses aspectos, modificando os processos a fim de melhorar sua capacidade.

Melhoria de Processos de Software e Controle Estatístico de Processos

Todos os processos são executados para produzir resultados. A percepção de que um processo deve (ou pode) ser melhorado tem início quando os resultados por ele alcançados não atendem aos objetivos para ele estabelecidos.

A melhoria de processos de software utilizando controle estatístico de processos requer a análise contínua dos seguintes aspectos:

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 medidas de atributos de qualidade, quantidade, custo e tempo.

b)     Estabilidade: conhecido o desempenho, é preciso analisar se o mesmo é previsível, ou seja, se o processo é estável e, se não for, é preciso melhorá-lo a fim de que estabilize. Um processo estável é aquele cujas variações encontram-se dentro de limites considerados aceitáveis para seu comportamento. As causas dessas variações são intrínsecas ao processo e são chamadas de causas comuns. Um processo instável possui comportamento com variações que excedem os limites considerados aceitáveis para seu comportamento. As causas dessas variações, chamadas de causas especiais, devem ser identificadas e tratadas.

c)     Capacidade: um processo estável não necessariamente é capaz de alcançar os objetivos para ele determinados. Logo, uma vez estabilizado um processo, sua capacidade deve ser analisada. Processos não capazes devem ser modificados através da realização de ações de melhoria que apóiem o alcance aos objetivos de negócio da organização.

 

Uma vez que um processo é caracterizado como capaz, o mesmo pode receber novos objetivos a serem alcançados, o que leva à necessidade de modificar o processo para melhorar sua capacidade, impulsionando um ciclo de melhoria contínua.

Uma visão de um ciclo de melhoria contínua baseada nos princípios do controle estatístico de processos, ou seja, na análise do comportamento dos processos, é apresentada na Figura 1. Este ciclo foi proposto por FLORAC e CARLETON (1999).

Figura 1. Ciclo para melhoria de processos (FLORAC e CARLETON, 1999)

 

A seguir, suas etapas são sucintamente descritas.

a)     Esclarecer 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 estabelecer e definir as medidas que serão utilizadas para caracterizar os processos e produtos.

d)     Coletar, verificar e armazenar dados ...

Quer ler esse conteúdo completo? Tenha acesso completo