O Retrabalho e Equipes de Desenvolvimento

Retrabalho não pode existir em Equipes Ágeis.

Alguns projetos evoluem sem verificações a cada entrega. Alguns não possuem entregas e a verificação ocorre apenas poucos dias antes do prazo final do projeto.

Retrabalho causa perdas significativas nos custos de um projeto, principalmente em um projeto de softwares. Alguns dos principais causadores de retrabalho são:

  • Falha no Requisito de Projeto;
  • Falta de Planejamento;
  • Especificações incompletas ou mal feitas;
  • Ausência de Controle de Qualidade;
  • Ausência de critérios que definam a Qualidade e Aceitação;
  • Pouca ou nenhuma Padronização e / ou Metodologias;
  • Estimativas erradas;
  • Inexistência de Inspeções.

 

Situações Comuns.

Entendamos a situação: Sua equipe de desenvolvimento possui prazos apertados, pouca documentação, enorme pressão para a entrega do projeto e quantidades imensas de entregas para serem feitas. Parece o caos. Mas é mais comum do que se imagina.

Algumas empresas podem até possuir equipes internas ou externas de qualidade e simplesmente "derramam" os desenvolvimentos na última semana de  projeto, últimos dois dias ou ainda nem o fazem.

"Vamos subir em produção, o cliente está pressionando" - Frase mais comum do que se imagina.

 

Inspeções de Software - Cultura a ser estabelecida.

Equipes de desenvolvimento nem sempre são as culpadas pelo retrabalho. A cultura empresarial sim.

O aspecto mais importante da mudança necessária na cultura empresarial é a premissa de se estabelecer pontos de verificação. Estes pontos são chamados de Inspeções.

Segundo a Regra de 10 de Myers:

Quanto mais cedo descobrimos e corrigimos o erro, menor é o seu custo para o projeto. Esse custo em correção de BUGS cresce 10 vezes para cada estágio em que o projeto do software avança.

Com o intuito de demonstrar a relação entre os custos e benefícios no âmbito financeiro dos testes de software, foi utilizado como referência o artigo Investing in Software Testing: The Cost of Software Quality (Investir em Teste de Software: O Custo da Qualidade de Software), publicado por Rex Black em 2000.

Estes custos são apenas referenciados, mas em uma estimativa simples:

Supomos que o custo para desenvolver um software seja o de 10.000 unidades, 80 horas e o custo total/hora seja de 12,5 unidades por hora. Agora imagine que 35% do desenvolvimento retornaram defeitos. Não estamos estimando testes pois eles são feitos pela própria equipe.

Como resultado deste cálculo, o custo de retrabalho seria igual a 13.500 unidades.

Mas para compor o valor total devemos considerar que uma avaliação completa do software seja refeita para evitar problemas, isto significa que o valor total deste projeto cresceu 135%.

 

 

Vamos entender como uma Inspeção funciona em Projetos Ágeis:


 

 

 

 

Existem três atividades principais. Vamos entender em cada momento de projeto como isto ocorre. Devemos lembrar que na agilidade sempre teremos:

  • Definir - Saber o que será Criado, Desenvolvido e Testado;
  • Desenvolver - Criar as definições, códigos, testes e documentos necessários ao projeto a cada momento de projeto;
  • Testar - Executar testes de conformidade e Inspeção. 

 

 

 

 

 

 

Benefícios da Inspeção.

Um dos maiores benefícios de se utilizar inspeções de software é a detecção de defeitos nas fases iniciais do processo de desenvolvimento de software, facilitando a correção destes defeitos com menor esforço e custo.

Desta forma, de acordo com (JONES, 1991), o esforço com retrabalho é reduzido em média para 10% a 20% do esforço total de desenvolvimento. Esta redução no retrabalho pode implicar em melhorias significativas para a produtividade de software. A maior redução de esforço é gerada pela melhoria da maturidade de processos de software, arquiteturas de software e gerência de riscos é proveniente da redução do retrabalho. Resultados experimentais mostram como este benefício pode afetar as variáveis esforço, produtividade, tempo e custo:

  • Esforço - O departamento de desenvolvimento da Ericsson em Oslo, Noruega, calculou uma redução bruta do esforço total de desenvolvimento em 20% aplicando inspeções. Além disto, resultados de estudos mostram que a introdução de inspeções de projeto pode reduzir o esforço com retrabalho em 44%.
  • Produtividade - De acordo com (GILB e GRAHAM, 1993), inspeções aumentam a produtividade de 30% a 50%;
  • Tempo - De acordo com (GILB e GRAHAM, 1993), inspeções reduzem o tempo de desenvolvimento de 10% a 30%;
  • Custo - Resultados de estudos mostram que a introdução de inspeções de código pode reduzir os custos de implementação de projetos em 39%.

 

Estimativa dos gastos de desenvolvimento utilizando e não utilizando inspeções em um exemplo de projeto: 

Fica evidente portanto a validade das inspeções e desenvolvimento de uma política de qualidade voltada a toda organização.

A importância das revisões na garantia da qualidade é destacada pelo modelo CMMI, que exige a realização de revisões como uma prática específica do processo de verificação. Sabe-se ainda que inspeções de software, em particular, capturam em torno de 60% dos defeitos de artefatos (BOEHM e BASILI, 2001) o que deixa explícita a sua contribuição para a melhoria da qualidade.

 

Outros Benefícios. 

A aplicação de inspeções de forma bem planejada pode trazer diversos outros benefícios:

  • Aprendizado. Inspetores experientes podem tentar detectar padrões de como os defeitos ocorrem e definir diretrizes que ajudem na detecção destes. Além disto, bons padrões de desenvolvimento podem ser observados durante a inspeção, sendo possível sua descrição como melhores práticas para a organização.
  • Integração entre processos de detecção e de prevenção de defeitos. Saber onde e quando os defeitos ocorrem pode ajudar a estabelecer planos de contingência que evitem a sua ocorrência.
  • Produtos mais inteligíveis. Os autores dos diversos artefatos, sabendo que estes serão inspecionados, passarão a produzir artefatos de uma forma que sua compreensão seja facilitada. A produção de artefatos mais inteligíveis, além de facilitar a inspeção, trará benefícios para as fases seguintes do processo de desenvolvimento, incluindo principalmente a fase de manutenção.
  • Dados defeituosos ajudam a melhorar o processo de software do projeto. Analisando a causa dos defeitos encontrados é possível fazer ajustes no processo para evitar a ocorrência de defeitos deste mesmo tipo.

O objetivo de inspeções de software é melhorar a qualidade de artefatos de software através de sua análise, detectando e removendo defeitos antes que o artefato seja passado para a próxima fase do processo de desenvolvimento de software. Conforme visto neste artigo, a aplicação de inspeções entre as atividades do ciclo de vida de software pode trazer diversos benefícios para as empresas.

Atualmente muitas organizações realizam revisões, mas a forma como as revisões são realizadas ainda é pouco sistematizada e pouco conhecimento da área de inspeções de software é utilizado. Assim o verdadeiro potencial das revisões raramente é explorado, introduzindo um fator de confusão entre os resultados esperados pelas revisões e os obtidos na prática. 

 

 

 

Home Explorar a Quallis Artigos em Destaque O Retrabalho e Equipes de Desenvolvimento

Conectar-se Conosco

Contatos Rápidos

  • Telefone:
    (11) 96968-3567

    Comercial:
    O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo. 

    RH:
    O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo. 

    Quallis Training: 
    O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo.

Nossa Atuação

1

Quallis, São Paulo , Brasil

2

Clientes, Houston , USA

3

Clientes, Argentina e Chile