Desenvolvimento Lean de Software: Removendo Desperdícios

por: Paulo Ricardo Ferreira Júnior | 29/12/2016

O desenvolvimento lean de software é a adoção dos princípios da Manufatura Lean dentro da T.I.

O Sistema Toyota de Desenvolvimento de Produto possui princípios que são utilizados para o desenvolvimento, visando eliminar os desperdícios e com um alto nível de qualidade. Taiichi Ohono chamou o Sistema Toyota de Produção de um sistema de gerenciamento para a eliminação absoluta do desperdício, olhando para a linha de tempo do momento em que a solicitação é feita pelo cliente até o momento da entrega.

No desenvolvimento lean de software, o foco é na redução da linha de tempo ao remover os desperdícios sem acréscimo de valor para o cliente. O estoque em desenvolvimento de software equivale a trabalhos inacabados, obsoletos, que estagnam dinheiro e escondem problemas de qualidade.

Na visão do desenvolvimento de software tradicional, cada um tem seu conhecimento aplicado na área em que atua, tornando-se um especialista. O desenvolvimento lean de software visa agregar essas pessoas, criando um pensamento sistêmico entre elas durante o ciclo de desenvolvimento do software. Muitas empresas, em busca de um padrão em seus processos no desenvolvimento, utilizam como artifício a adoção de um alto número de documentos que acabam dificultando a melhoria contínua das equipes.

O lean se preocupa muito em entregar o mais rápido possível para seu cliente e, com isso, visa eliminar os desperdícios com base no tempo, pois quanto mais você entrega software de qualidade e com frequência, menos tempo seu cliente terá para solicitar algum tipo de mudança. Conhecendo seu cliente e com uma alta taxa de qualidade, dificilmente você terá uma taxa de erro alta, permitindo agregar valor ao cliente o mais rápido possível e eliminando desperdícios tais como funcionalidades não desejadas.

Desperdício é tudo aquilo que não adiciona valor a um produto, valor este que deve ser percebido pelo usuário. O lean classifica esses desperdícios em sete tipos. Abaixo, segue uma tabela traduzindo esses desperdícios para o desenvolvimento de software segundo Poppendick (2011):

 

Produção Desenvolvimento de software
Estoques no processo Trabalho inacabado
Superprodução Funcionalidades extras
Processamento adicional Reaprendizagem
Transporte Transferência de controle
Movimentação Troca de tarefas
Esperas Atrasos
Defeitos Defeitos

 

Abaixo, serão listados os sete desperdícios e suas adaptações para o desenvolvimento de software segundo Poppendick (2011):

1. Trabalho Inacabado

  • Requisitos especificados muito cedo e não codificados.
  • Código sem testes.
  • Código não integrado.

2. Funcionalidades Extras

  • Requisitos em abundância que não acrescentam valor ao cliente.
  • Mais de 64% das funcionalidades em um software quase nunca são utilizadas.
  • Funcionalidades sem valor para o cliente gerando complexidade no código.

3. Reaprendizagem

  • Ter que aprender alguma coisa que já sabíamos é um retrabalho no desenvolvimento.

4. Transferência de Controle

  • Com uma comunicação muito pobre e muita transferência de controle, pode ser gerada a perda de conhecimento.

5. Troca de Tarefas

  • A troca de tarefas no desenvolvimento além de tomar tempo, pode gerar distração e prejudicar o raciocínio.

6. Atrasos

  • Informações devem estar sempre disponíveis para o desenvolvedor.
  • Nem todas as informações necessárias para o desenvolvimento podem estar em um documento e esperar por uma resposta por muito tempo pode gerar um atraso no desenvolvimento.

7. Defeitos

  • Defeitos provocam desperdício de tempo, custo e dinheiro.
  • Devem ser encontrados o mais cedo possível, pois quanto mais tarde forem detectados, pior será para corrigí-los.

 

O verdadeiro motivo da descoberta e eliminação do desperdício é a redução de custos e a efetivação de produtos. O lean pode reconhecer e eliminar os desperdícios.

Alguns desses tipos citados podem parecer óbvios, porém outros não são tão simples de ser identificados. O primeiro passo seria aprender a ver os desperdícios que não agregam valor, olhando para a linha do tempo e cortando tudo que for desnecessário no processo de desenvolvimento de software.

Podemos identificar que o desenvolvimento lean de software surgiu para remover os desperdícios, geralmente chamados de burocracia, para que seja desenvolvido realmente o que o cliente precisa e gerar uma mudança no cenário tradicional que é marcado por entregas com atrasos, orçamento estourado e funcionalidades desnecessárias. Mas ele não aborda somente desperdícios referentes ao processo, linha de tempo e de desenvolvimento, mas também más práticas por parte dos desenvolvedores de software que acabam gerando um enorme desperdício para as empresas devido à dificuldade de manutenção e mudanças de negócios através do código-fonte gerado.

 

Referências

BROOKS, Frederic (1987). “No Silver Bullet: Essence and Accidents of Software Enginnering”, IEEE Computer, volume 20.

POPPENDICK, Mary et al (2011). “Implementando Desenvolvimento Lean de Software – Do conceito ao Dinheiro”, Porto Alegre: Bookman.

ROYCE,Winston (1970). “Managing the Development of Large Software Systems”, IEEE WESCON.

FALE CONOSCO

Envie uma mensagem para nós,
adoramos responder emails :)

Quer uma ideia de assunto?

  • Orçar um projeto
  • Saber mais sobre nós
  • Trabalhar conosco
  • Tomar um café expresso
© Ditech 2016 - Todos os direitos reservados.
@workandcode