Ir para o conteúdo

Um dos focos do modelo de gestão Lean é combater os desperdícios, eliminando atividades que não criam valor e somente oneram, gerando custo e esforço desnecessários no fluxo da entrega. Assim, podemos conceituar desperdício como qualquer atividade que consome recursos sem gerar valor.

Na perspectiva do cliente, ele não está disposto a pagar por desperdícios, e sim pelas atividades que resultam em entregas que impactam seu negócio. De acordo Taiichi Ohno, considerado o principal responsável pela criação do Sistema Toyota de Produção, “desperdício é tudo aquilo que não agrega valor ao cliente”.

Podemos ter algumas atividades que são necessárias, como legais, regulatórias e outras que precisam ser executadas para dar suporte para atividades de valor agregado. Nesses casos, temos que ter clareza e consciência da sua necessidade.

De acordo com o Lean, no ambiente de produção de uma fábrica, podem ter 7 categorias de desperdícios, que vamos ver abaixo:

  1. Estoque: o estoque na linha de produção são os materiais ou trabalho em processamento ou produtos na fila de espera.
  2. Superprodução: produzir mais rápido ou em maior quantidade que a demanda do cliente.
  3. Processamento excessivo: executar atividades redundantes ou desnecessárias.
  4. Transporte: realizar movimentação (insumos, materiais, ferramentas) em excesso ou desnecessária.
  5. Movimentação: movimento desnecessário de pessoas.
  6. Espera: é o tempo que produtos ou pessoas ficam aguardando para poder seguir com seu processo ou atividades.
  7. Defeitos: ocorrência de erros que geram retrabalho

Pensando no contexto da engenharia de software, Mary Poppendieck, no livro Implementando o Desenvolvimento Lean de Software: Do Conceito ao Dinheiro, faz uma relação entre os desperdícios no contexto de produção e desenvolvimento de software. Logo, a seguir vamos explorar cada um deles.

  1. Trabalho inacabado: O estoque do desenvolvimento é o trabalho inacabado, como documentação ainda não codificada, código ainda não sincronizado, código ainda não testado, código ainda não instalado, entre outros. A forma de minimizar o estoque é dividindo o trabalho em pequenos lotes e iterações.
  2. Funcionalidades extras: É adicionar funcionalidades que não são necessárias para que o trabalho do cliente seja realizado, ou ainda, desenvolver funcionalidades que não são imprescindíveis em uma release impactando no seu prazo de entrega.
  3. Reaprendizagem: é quando não aplicamos o aprendizado e experiências anteriores no contexto que estamos atuando no momento.
  4. Transferência de controle: Quando transferimos o controle do trabalho para colegas, uma vasta quantidade de conhecimento tácito é deixada para trás. A cada transferência de controle deixamos parte do conhecimento para trás. Assim, quanto mais diretamente a informação for passada para o time melhor.
  5. Troca de tarefas: O desenvolvimento de software requer muita reflexão e concentração. Mudanças de contexto gera perda de foco, distração, toma tempo e piora os resultados de ambas as tarefas.
  6. Atrasos: Esperar pela disponibilidade/informação das pessoas para seguir o trabalho é uma grande causa de desperdício. Como por exemplo, o desenvolvedor ficar aguardando uma definição de negócio para seguir com o desenvolvimento de uma funcionalidade.
  7. Defeitos: Se o software entrar costumeiramente com defeitos na verificação final, então ele está sendo produzido por um processo defeituoso, gerando retrabalho e falta de qualidade da entrega para o cliente. Quando mais tarde o defeito é identificado, maior será seu custo de correção.

Assim, para combater desperdícios no desenvolvimento de software, primeiramente o time tem que conhecer quais são os possíveis desperdícios e, a partir disso, ter um olhar para identificá-los e definir ações para eliminá-los ou reduzi-los, atuando em um processo de melhoria continua.

É importante também, ter um ambiente onde os integrantes do time possam falar abertamente sobre os problemas, tendo espaço para opinar e expor suas ideias, se sentindo empoderados e com autonomia para discutir e implementar ações para resolução sistemática de problemas.

Referências:

  1. https://www.lean.org.br
  2. https://agilemanifesto.org/iso/ptbr/principles.html
  3. Implementando o Desenvolvimento Lean de Software: Do Conceito ao Dinheiro (Mary Poppendieck e Tom Poppendieck).
  4. Pensamento Lean – A Filosofia das Organizações Vencedoras (João Paulo Pinto).

Outras publicações