Os 7 princípios do desenvolvimento Lean de software

AGRADEÇA AO AUTOR COMPARTILHE!

Hoje irei falar um pouco sobre os 7 princípios do desenvolvimento Lean de software.

Embora Lean não seja considerado um método ágil, seus valores são estão muito alinhados com os valores ágeis.

desenvolvimento-software-programacao-lean

Basicamente os princípios são:

  1. Eliminar o desperdício
  2. Fortalecer o time
  3. Entregas rápidas
  4. Otimizar o todo
  5. Construir qualidade
  6. Adiar decisões
  7. Amplificar conhecimento

1) Eliminar o desperdício

São considerados como desperdícios:

Trabalho parcialmente feito – O famoso “está pronto, só falta testar”. É fundamental que as equipes criem uma boa definição de “pronto/done” para evitar retrabalhos em itens teoricamente finalizados.

Processos extras – Documentação “pesada” exigida que não agrega valor ao software final. Veja minhas considerações sobre estes tipos de processos extras neste artigo.

Funcionalidades extras – O famoso “Gold-Platting”, ou seja, desenvolver funcionalidades não requeridas pelo seu cliente/usuário final visando agradá-lo. Você pode me perguntar: “Mas Vitor, não temos que encantar nosso cliente e colaborar conforme você mesmo escreveu  neste artigo?”. Minha resposta: “Encante seu cliente, entregando VALOR e QUALIDADE na construção do software baseado nos requisitos que ele pediu”.

Alternação de tarefas ou multi-tarefas – O famoso “atue 20% do tempo neste assunto,  atue 37,5% do tempo neste outro assunto, atue 22,4% do tempo neste outro assunto e o restante do tempo neste assunto que é mais prioritário”. É cientificamente comprovado que até 40% do esforço é desperdiçado em alternar tarefas, pois o cérebro possui um “delay” para se desligar de uma tarefa e se concentrar em outra. Quando tentamos fazer tudo de uma vez, na verdade não estamos dando foco em nada.

Espera – A equipe desenvolve, faz os testes unitários, realiza a garantia da qualidade e quando passa o software para homologação, o cliente não tem tempo para testar. Esta espera é muito custosa para um projeto de software, pois os recursos de desenvolvimento não podem ser liberados enquanto não finalizar o projeto, porém ficam ociosos.

Esforços de comunicação – Equipes grandes ou geograficamente distribuídas requerem uma boa gestão de comunicação e uma boa gestão de stakeholders. A falha nessa gestão pode comprometer o projeto e o tempo gasto para colocar o projeto de volta aos trilhos pode ser considerado como desperdício.

Defeitos – Quer pior coisa do que implementar um software cheio de bugs para o seu cliente? A credibilidade do time vai lá para baixo, além de gerar um custo de qualidade para a correção destes bugs e gastar tempo que poderia ser utilizado em outros projetos.

2) Fortalecer o time

Criar um ambiente onde a equipe trabalhe de forma auto-organizada e auto-dirigida, evitando micro-gerenciamento

3) Entregas rápidas

Maximizar o ROI (Return Of Investiment) do projeto, entregando software de valor de forma rápida e contínua.

4) Otimizar o todo

Entender que o software concluído é muito mais que a soma das partes entregues e verificar como ele está alinhado com os objetivos da empresa.

5) Construir qualidade

Garantir qualidade no desenvolvimento do software utilizando técnicas como:

  • Teste unitário através de TDD : Escrever o teste / teste falho / escrever o código para passar o teste
  • Refatoração: Melhorar e refinar o código escrito, evitando manter legados de débitos técnicos e fazendo com o que o software continue se comportando da mesma maneira.
  • Integração contínua: Compilação automática do repositório de código, verificando se o código inserido não prejudicou demais funcionalidades do software.

6) Adiar decisões

Deixar as decisões e comprometimentos para o último momento responsável, permitindo coletar informações e ter experiências para fortalecer a tomada de decisão.

7) Amplificar conhecimento

Priorizar a comunicação e o feedback contínuos entre equipes e usuários durante o processo de desenvolvimento de software.

O que vejo hoje como grande falha, na maior parte dos projetos de desenvolvimento de software que vivenciei, em todos os pontos, é a questão do desperdício e da falta de qualidade. Bom, mas essa é a minha experiência! E a de vocês ? Compartilhem com os leitores do PTI!

Abraços e até semana que vem

AGRADEÇA AO AUTOR COMPARTILHE!

Vitor Massari

Mais artigos deste autor »

Profissional com mais de 15 anos de experiência em projetos de software. Sócio-proprietário da Hiflex Consultoria, profissional PMP e agilista, acredita no equilíbrio entre as várias metodologias e frameworks voltados para gerenciamento de projetos.
Lema: "Agilista convicto sempre, agilista obcecado jamais"


3 Comentários

Vitor MassariVitor Massari Autor do Post
3

Na verdade o Agile só existe pq existe o Lean. Toda a base do Agile vem do Lean e do Toyota Production System. E trata-se de uma relação cíclica, pois o Lean não existiria o Agile e o Agile não funciona sem o Lean.

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">