You are on page 1of 41

Desenvolvimento de Software Lean

Curso de Vero 2007 - IME/USP www.agilcoop.org.br


Danilo Sato & Alfredo Goldman

Introduo
Desenvolvimento de software uma cadeia com diversos elos -- Kent Beck Qual o papel do software? Como o software se encaixa no plano mais amplo (big picture)?

Copyleft AgilCoop 2007

Introduo
Como o seu processo de desenvolvimento de software?
Quem seu cliente? Produo/manufatura ou novo produto? Gerenciado como projeto ou produto?
Manuteno Beta RC Produo

Fim

Release Interna Incio


Copyleft AgilCoop 2007

Alpha Conceito Viabilidade


3

Introduo
Como clientes:
Resolvam completamente meus problemas No desperdicem meu tempo Ofeream exatamente o que eu preciso Entreguem valor exatamente onde e quando eu preciso Reduzam o nmero de decises que eu preciso tomar para resolver meus problemas

Copyleft AgilCoop 2007

Introduo
Empresas que aplicam conceitos Lean:

Produo / Manufatura

Produo / Manufatura + Desenvolvimento de Produtos

Cadeia de Suprimento

Desenvolvimento de Software

Copyleft AgilCoop 2007

Origens do Pensamento Lean


O Sistema de Produo da Toyota:
Taiichi Ohno:
Fluxo Just-In-Time Complexidade vs. Economia de Escala Autonomation Stop-the-Line

Shigeo Shingo:
Produo sem estoque Trabalho organizado em tarefas pequenas Zero Inspees Mistake-proof
Copyleft AgilCoop 2007 6

Origens do Pensamento Lean


Os valores foram expandidos para outras reas:
Produo Lean Manufatura / Operaes Lean Cadeia de Suprimentos Lean Desenvolvimento de Produtos Lean

Desenvolver software criar um novo produto!


Sempre aparece algo novo
Copyleft AgilCoop 2007 7

Problemas com Software


Alguns dos motivos: Requisitos que mudam rpido e constantemente Tomada de decises centralizada Gerenciamento rgido do escopo Prticas tradicionais de desenvolvimento (linear) Pouco foco na qualidade do software produzido
Copyleft AgilCoop 2007 8

Desenvolvimento de Software Lean


Princpios Lean aplicados ao software:
1. 2. 3. 4. 5. 6. 7. Elimine Desperdcios Inclua a Qualidade no Processo Crie Conhecimento Adie Comprometimentos Entregue Rpido Respeite as Pessoas Otimize o Todo

Copyleft AgilCoop 2007

Elimine Desperdcios
Desperdcio tudo aquilo que no agrega valor ao cliente -- Taiichi Ohno Este o principal princpio Lean Software funcionando o que vai trazer valor ao cliente preciso aprender a identificar desperdcios

Copyleft AgilCoop 2007

10

Elimine Desperdcios
Os sete desperdcios de software:
Trabalho incompleto (em-progresso) Processos a mais Funcionalidades a mais Troca de tarefas Handoffs Atrasos Defeitos

Copyleft AgilCoop 2007

11

Trabalho Incompleto
Artefatos inacabados consomem recursos sem trazer retorno Reclamaces (churn):
Requisitos > Especificando muito cedo Teste > Testando muito tarde

Documentao no-codificada Cdigo no-sincronizado Cdigo no-testado Cdigo no-implantado


12

Copyleft AgilCoop 2007

Processos a mais
Burocracia desnecessria Documentao desnecessria Atividades de gerenciamento Bom teste para avaliao:
Existe algo ou algum esperando pelo que est sendo produzido?

Copyleft AgilCoop 2007

13

Funcionalidades a mais
Jim Johnson:
45% das funcionalidades implementadas no so utilizadas nunca 19% das funcionalidades implementadas so raramente utilizadas

Cdigo no-utilizado introduz complexidade Complexidade: inimigo da manuteno Mito: Especificar cedo reduz o risco
Copyleft AgilCoop 2007 14

Troca de Tarefas
Tarefa 1 Tarefa 2 Tarefa 3

Semana 1

Semana 2

Semana 3

Semana 4

Como sincronizar desenvolvimento novo e manuteno?


Rotao de pessoas Alocar uma parte da manh Triagem agressiva + atendimento imediato a manutenes urgentes Implantao semanal + tratar manuteno como funcionalidades do release
Copyleft AgilCoop 2007 15

Handoffs
Metfora: Aprender a andar de bicicleta Conhecimento tcito difcil de transmitir Quanto mais handoffs, maior a perda de conhecimento Dicas:
Reduza handoffs Use meios de comunicao eficazes Libere partes do trabalho para apreciao e feedback
Copyleft AgilCoop 2007 16

Atrasos
Programadores precisam tomar decises a cada 15 minutos impossvel assumir que toda informao necessria estar documentada Opces na hora da dvida:
Tentar descobrir a resposta Trocar de tarefa Adivinhar e prosseguir
Copyleft AgilCoop 2007 17

Atrasos
Exemplos:
Esperar pelo entendimento completo dos requisitos Esperar meses pela aprovao do projeto Esperar pela alocao das pessoas Esperar pela disponibilidade das pessoas alocadas Processo de controle de alteraes Esperar pelo sistema inteiro ficar completo para ter as funcionalidades-chave Esperar o cdigo passar pelos testes Esperar para comunicar defeitos (QA no final)
Copyleft AgilCoop 2007 18

Defeitos
O custo dos defeitos aumenta com o tempo Equipes geis se esforam ao mximo para evitar defeitos Em caso de defeito, fazem o mximo para curar a raz do problema Testes automatizados so investimentos! Use os testes como design do sistema (TDD)
Copyleft AgilCoop 2007 19

Inclua a Qualidade no Processo


Inspecionar para previnir defeitos bom; Inspecionar para encontrar defeitos desperdcio -- Shigeo Shingo No deixe os testes para o final Ciclos de teste muito longos geralmente gastam mais tempo corrigindo defeitos Ao invs de se esforar para gerenciar defeitos, evite-os
Copyleft AgilCoop 2007 20

Inclua a Qualidade no Processo


Prevenindo defeitos com vrios tipos de teste: Perspectiva do Negcio
Suporte Programao

Testes de Histrias
Interesse de Negcio (Design do Produto)

Testes de Usabilidade Testes Exploratrios Testes de Propriedade


Segurana, Carga, Combinatrio

Crtica ao Produto

Testes de Unidade
Interesse do programador (Design do Cdigo)

Copyleft AgilCoop 2007

Perspectiva da Tecnologia
21

Crie Conhecimento
No existe bala de prata -- Fred Brooks Metfora: criar vs. preparar uma receita Incentive o compartilhamento de conhecimento tcito Buscar um processo padro engessa O processo deve ser continuamente melhorado
Copyleft AgilCoop 2007 22

Crie Conhecimento
Mtodo cientfico (Plan-Do-Check-Act):
Enquadre o problema Procure pela raz do problema Proponha uma soluo Implemente a soluo Verifique os resultados Analise e adapte seus padres

Mito: Predies criam previsibilidade


Copyleft AgilCoop 2007 23

Adie Comprometimentos
Decises irreversveis devem ser tomadas o mais tarde possvel (last responsible moment) preciso definir o momento da deciso
Quando houver mais informao

Flexibilidade arbitrria tambm ruim Um bom lder saber alocar flexibilidade Mito: Um plano um comprometimento
Copyleft AgilCoop 2007 24

Adie Comprometimentos
Design baseado em conjunto (set-based)
Na incerteza, experimente diversas solues Agende o momento da deciso Sempre haver uma soluo que funciona Paradoxo: Isso no desperdcio!

Exemplo: Toyota Prius


15 meses do conceito ao lanamento 10 opes de motores hbridos desenvolvidos durante os 4 primeiro meses Motores hbridos viraram item opcional
25

Copyleft AgilCoop 2007

Entregue Rpido
A moral da histria que devemos encontrar uma maneira de entregar software to rpido, que nossos clientes no tenham tempo de mudar de idia -- Mary Poppendieck Competir com base na velocidade traz grande vantagem competitiva Mito: Rpido e sujo vs. Lento e limpo
Copyleft AgilCoop 2007 26

Entregue Rpido
Sistemas Pull em software (reduzem inventrio) Radiadores de Informao
Para Fazer
Histria 1 Histria 2 Histria 3 Histria 4
Copyleft AgilCoop 2007

Em progresso
Histria 5 Dan/Gold Histria 6 Paulo/Dair Histria 7 Kon/Alex
27

Testes OK
Histria 10

Histria 8 Histria 9

Entregue Rpido
Teoria das filas:
Tempo do ciclo = # Coisas em processo Taxa Mdia para completar

QuickTime and a TIFF (LZW) decompressor are needed to see this picture.

Copyleft AgilCoop 2007

28

Entregue Rpido
Reduzindo o tempo do ciclo:
Normalize a entrada de trabalho Minimize o # de unidades em-processo Minimize o tamanho das unidades emprocesso Estabelea uma cadncia regular Limite o trabalho capacidade Use agendamento pull

Copyleft AgilCoop 2007

29

Respeite as Pessoas
Desenvolvimento de Produtos na Toyota

QuickTime and a TIFF (LZW) decompressor are needed to see this picture.

Copyleft AgilCoop 2007

30

Respeite as Pessoas
3 pilares esto relacionados s pessoas:
Liderana Fora de trabalho com conhecimento Planejamento e controle baseado em responsabilidade

Liderana:
Grande conhecimento tcnico Grande conhecimento do cliente

Times completos
Copyleft AgilCoop 2007 31

Respeite as Pessoas
Pessoas so recursos? Papel da gerncia distribuir tarefas e monitorar? Exemplo: Planta da GM - NUMMI Motivao:
Propsito Participao (belonging) Segurana Competncia Progresso

Copyleft AgilCoop 2007

32

Respeite as Pessoas
A verdadeira inovao da Toyota sua habilidade em usufruir da inteligncia dos trabalhores comuns -- Gary Hamel Programas de Qualidade:
CMM, CMMI, Six Sigma, ISO, TQM Lanados com as melhores das intenes Mal-implementados
Focam na parte burocrtica Processo definido por um grupo separado

Mito: O melhor jeito existe


Copyleft AgilCoop 2007 33

Otimize o Todo
Exemplo: Zara Crculo vicioso #1 no desenvolvimento de sotware:
Cliente pede nova funcionalidade, para ontem Desenvolvedor ouve: Termine isso rpido! Resultado: Mudanas feitas de qualquer jeito no cdigo Resultado: Complexidade do cdigo aumenta Resultado: Nmero de defeitos no cdigo aumenta Resultado: Tempo para adicionar funcionalidade cresce exponencialmente
Copyleft AgilCoop 2007 34

Otimize o Todo
Crculo vicioso #2 no desenvolvimento de software:
Equipe de testes sobrecarregada Resultado: Testes bem aps codificao Resultado: Desenvolvedores no recebem feedback imediato Resultado: Desenvolvedores criam mais defeitos Resultado: Equipe de teste tem mais trabalho

Mito: Micro-otimizao leva Macrootimizao


Copyleft AgilCoop 2007 35

Otimize o Todo
preciso olhar para o processo todo No adianta resolver os sintomas preciso resolver a causa 5 Porqus

Copyleft AgilCoop 2007

36

Otimize o Todo
Mtricas:
Medir informao vs. Medir desempenho Cuidado!
fcil medir muitas coisas fcil medir as coisas erradas

Earned Value mede aderncia ao plano:


Custo, escopo e cronograma Mas e a satisfao do cliente e a qualidade?

Contra-exemplo:
Desenvolvedores: LOC/h Testadores: # Defeitos encontrados
Copyleft AgilCoop 2007 37

Otimize o Todo
Diminua o nmero de mtricas de desempenho Mea para cima:
Medidas no nvel mais alto que direcionam para o comportamento correto Estabelea uma base para fazer trade-offs

Tempo de ciclo +Mapa de Fluxo de Valor ROI + Modelo de Lucros e Perdas Satisfao do Cliente + Entendimento das suas necessidades
Copyleft AgilCoop 2007 38

Recapitulando
1. 2. 3. 4. 5. 6. 7. Elimine Desperdcios Inclua a Qualidade no Processo Crie Conhecimento Adie Comprometimentos Enregue Rpido Respeite as Pessoas Otimize o Todo
39

Copyleft AgilCoop 2007

O Incio de um Caminho a Trilhar


Comece onde est Encontre sua maior restrio Visualize sua maior ameaa Avalie sua cultura Treine Resolva seu maior problema Remova acomodaes Mea Implemente Repita o ciclo
40

Copyleft AgilCoop 2007

Referncias
Livros:
Mary e Tom Poppendieck, Lean Software Development: An Agile Toolkit, Addison-Wesley, 2003 Mary e Tom Poppendieck, Implementing Lean Software Development: From Concept to Cash, Addison-Wesley, 2006 Jim Johnson, ROI, Its Yout Job, Keynote Speech at Third International Conference on Extreme Programming (XP2002), 2002

Online:
leandevelopment @ Yahoo Groups www.poppendieck.com

Copyleft AgilCoop 2007

41

You might also like