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. 

 

 

 

Testes Ágeis

 

 

 

Testar com agilidade não se trata de velocidade, se trata sobre ser enxuto. 

 

Para ser ágil e flexível será necessário reduzir a massa, ficar mais enxuto, e para que possamos ajuda-lo usamos o conceito de One Piece Flow onde criamos um fluxo de produção de uma única peça. Seus testes com qualidade, Agilidade e Entregas Garantidas.

 

O uso de metodologias e práticas de desenvolvimento ágil têm se tornado algo cada vez mais natural no cotidiano das empresas . Algumas dessas empresas, apesar de não admitirem sua adesão, implicitamente acabam aplicando algumas práticas comuns, com o objetivo de obter resultados mais cedo. 

 

 

 

Em se tratando de teste ágil, alguns princípios definidos por meio do Manifesto Ágil são utilizados com o objetivo de nortear a linha de produção, como: 

  • Indivíduos e interações entre eles mais que processos e ferramentas;
  • Software em funcionamento com documentação consistente;
  • Colaboração com o cliente mais que negociação;
  • Capacidade de responder a mudanças mais que seguir um plano indefinido.

 

Os mesmos princípios usados para direcionar o desenvolvimento ágil, devem ser considerados quando for aplicado teste ágil, ou seja, testar de forma ágil exige uma forte adaptação na rotina e dinâmica da equipe de teste, em relação ao processo de desenvolvimento adotado, com o objetivo de propiciar um processo relativamente simples e que possa ser executado com grande facilidade e agilidade, cobrindo o maior número de riscos, com um nível de qualidade que seja apreciada e valorizada pelo cliente ou usuário final.

 

Através da definição do processo ideal e simplificado, onde o teste ágil é suportado, um conjunto de práticas que proporcionem a diminuição do tempo entre o erro e a sua descoberta tendem a ser estabelecidos em conjunto com uma sistemática de trabalho que possibilite à área de teste de software ser mais pró-ativa do que reativa.

 

A Quallis trabalha com colaboradores capazes de entender as necessidades de seus clientes e gerir estes testes usando o conceito do PDCA a cada necessidade de testes:

 

 

1 - Plan: (Planejamento) - Os testes são planejados. Não há confusão no que se deve ser testado nem no que será entregue como resultado do teste.

2 - Do: (Execução) - Os testes são executados. O modelo tanto manual como automático tem sua definição no planejamento e é executado conforme este planejamento de forma coesa.

3 - Check: (Verificar) - Os testes são validados e seus resultados são apresentados as equipes. caso haja falhas, estas prontamente são identificadas, documentadas e endereçadas a correção.

4 - Act: (Ação) - Duas ações são prontamente executadas: Geração e Documentação de testes para retrospectiva futura por significância e Organiza-se o Re-teste de fases seguintes.

 

 

 

Agilidade está no nosso DNA:

Ser ágil é ser Enxuto. Saber quando e como definir prazos, entregas e Processos. Isto nos da tranquilidade e expertise para difundir a cultura SCRUM e AGILE nos processos de clientes e parceiros. Isto garante a nossos clientes uma transição segura dos modelos tradicionais de desenvolvimento de software para o modelo Scrum com Agile e metodologias próprias.

Testamos com Agilidade porque entendemos as suas necessidades e suas urgências, sem no entanto perder nosso foco principal: Qualidade.

 

Conheça o como Scrum com Agile funciona: 

 

Backlog do Produto - Trata-se de todos os Requisitos, Artefatos e partes que juntos se compõe um projeto.

Release - Tempo de 1 a 4 meses onde se desenvolve uma série de partes do projeto (Sprints).

Backlog da Sprint - É a parte ou conjunto de requisitos que serão desenvolvidos dentro de uma Sprint.

Sprint - Tempo de 1 a 4 semanas onde se desenvolve uma série de partes do projeto.

Iterações - Tempo de 1 semana onde se desenvolve partes da Sprint.

Daily Meeting - Reunião diária de 15 min onde se trata dos assuntos referentes a uma Iteração.

Produto ou Entregável - Resultado concreto de uma Sprint, Release ou Iterações.

  

 

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