Lean Software Development

Lean Software Development – 2003
Mary Poppendieck e Tom Poppendieck

Lean ou Toyota Production System é uma metodologia desenvolvida pela Toyota com foco na eliminação de desperdícios, velocidade de processos, qualidade e cadeia de valor.

Idealizado e implementado na Toyta no Japão após a segunda guerra mundial por Taiichi Ohno (1912 – 1990), então executivo da empresa, ficou conhecido como LEAN MANUFACTURING.

  • Taiichi Ohno: Fluxo “Just-In-Time” –  Complexidade vs. Economia de Escala / Autonomation – “Stop-the-Line”
  • Shigeo Shingo: Produção sem estoque – Trabalho organizado em tarefas pequenas, Zero Inspeções – “Mistake-proof”

Lean possui uma abordagem empírica, iniciando por construir um conceito de produto de alto nível, realizando entregas iterativo-incrementais, realizando feedbacks constantes, que permitem que ajustes sejam feitos para uma contínua evolução do produto, até alcançar o resultado esperado.

“Ter as coisas certas no lugar e hora certa, desde a primeira vez, enquanto elimina-se o desperdício, estando sempre aberto a mudanças”.

O termo Lean Software Development teve sua origem em 2003 com a publicação do livro homônimo de Tom e Mary Poppendieck, quando apresentaram como aplicar seus princípios no desenvolvimento de software:

1. Elimine Desperdícios

“Desperdício é tudo aquilo que não agrega valor ao cliente” — Taiichi Ohno:
– Trabalho incompleto (artefatos inacabados)
– Processos a mais (burocracia ou gerenciamento desnecessário)
– Funcionalidades a mais (complexidade desnecessária)
– Troca de tarefas (sincronizar código novo e manutenção)
– Redução de Handoffs (transferência de responsabilidade)
– Atrasos (decisões a cada 15 minutos e contornos)
– Defeitos (TDD é investimento)

2. Inclua a Qualidade no Processo
Não deixe os testes para o final, evite-os desde antes do início. – “Inspecionar para prevenir defeitos é bom; Inspecionar para encontrar defeitos é desperdício” — Shigeo Shingo

3. Crie Conhecimento – Incentive a Gestão do Conhecimento:

4. Adie Comprometimentos (Decisões irreversíveis tomadas o mais tarde possível – last responsible moment)

Em uma recente palestra que assisti de um arquiteto de software do Google, ele foi enfático em dizer que tentar antecipar decisões é um erro, estas devem ser tomadas o mais adiante possível, posto que teremos informações mais precisas com o andamento do projeto … Decididamente, fazer isso é uma arte !   🙂

5. Entregue Rápido – “A moral da história é que devemos encontrar uma maneira de entregar software tão rápido, que nossos clientes não tenham tempo de mudar de idéia” — Mary Poppendieck

Um fluxo de entrega contínua tem o ciclo completo a cada User Story, permitindo que após o desenvolvimento com testes automatizados tenham mínimo delay para entrega em produção – continuous delivery:

6. Respeite as Pessoas – “A verdadeira inovação da Toyota é sua habilidade em usufruir da inteligência dos trabalhores comuns” — Gary Hamel

7. Otimize o Todo -É preciso estar atento a todo o processo e as causas que devem ser trabalhadas para a melhoria, com foco métricas adequadas, conhecimento da cadeia de valor e da satisfação do cliente.

Em uma palestra em 2011 sobre o modelo de produção TOYOTA, marcou uma frase muito legal deles, mais ou menos assim – “Quanto mais os outros vem à Toyota para fotografar e registrar o processo atual para tentar copiá-lo, mais diferentes de nós eles ficam, pois o diferencial não esta no processo, mas nas pessoas!”.

Anúncios

Uma resposta para “Lean Software Development

  1. Pingback: Um ano e meio de blog – Obrigado galera! | Jorge Horácio "Kotick" Audy

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s