Encontro Locaweb Curitiba

1,357 views

Published on

Segunda versão da minha palestra sobre Agilidade para o Encontro Locaweb, desta vez com uma história mais detalhada de Lean. Faltou tempo para falar tudo :-) Vou encurtar para a próxima versão.

Encontro Locaweb Curitiba

  1. 1. Agilidade e Qualidade de Projetos Fabio Akita
  2. 2. Fabio Akita @akitaonrails
  3. 3. Fabio Akita @akitaonrails
  4. 4. Filosofia
  5. 5. φιλοσοφία
  6. 6. “Amor à Sabedoria”
  7. 7. “Amor à Sabedoria”
  8. 8. Menos sobre o “como”
  9. 9. Mais sobre o “o quê”
  10. 10. +170 slides ~50 min
  11. 11. www.slideshare.net/akitaonrails fabio.akita@locaweb.com.br
  12. 12. Como é um software?
  13. 13. Desenvolvimento Clássico
  14. 14. Desenvolvimento “Caseiro”
  15. 15. Software que “funciona”
  16. 16. Como é feito um software?
  17. 17. “Engenharia”
  18. 18. Engenharia Engenharia Civil de Software Requerimentos Blueprint Construção Codificação Acabamento Entrega
  19. 19. Ceticismo
  20. 20. Winston W. Royce - 1970
  21. 21. “Eu acredito neste conceito mas a implementação descrita acima é arriscada e convida falhas.” Winston W. Royce - 1970
  22. 22. “Eu acredito neste conceito mas a implementação descrita acima é arriscada e convida falhas.” Winston W. Royce - 1970
  23. 23. “Eu acredito neste conceito mas a implementação descrita acima é arriscada e convida falhas.” Winston W. Royce - 1970
  24. 24. Dogma
  25. 25. método científico
  26. 26. Pergunta
  27. 27. Pergunta Pesquisa
  28. 28. Pergunta Pesquisa Hipótese
  29. 29. Pergunta Pesquisa Hipótese Experimento
  30. 30. Pergunta Pesquisa Hipótese Experimento Análise
  31. 31. Pergunta Pesquisa Hipótese Experimento Análise Verdadeiro
  32. 32. Pergunta Pesquisa Hipótese Experimento Análise Verdadeiro Resultado
  33. 33. Pergunta Pesquisa Hipótese Experimento Análise Verdadeiro Falso Resultado
  34. 34. Pergunta Pesquisa Hipótese Tentar de Novo Experimento Análise Verdadeiro Falso Resultado
  35. 35. “Escopo”
  36. 36. Ninguém prevê o futuro
  37. 37. Ciência?
  38. 38. Engenharia Engenharia Civil de Software Requerimentos Blueprint Construção Codificação Acabamento Entrega
  39. 39. Engenharia Engenharia Arte Civil de Software Requerimentos Blueprint Tentativa & Erro e Implementação Construção Codificação Acabamento Entrega Acabamento
  40. 40. Engenharia Engenharia Arte Civil de Software Blueprint Design e Tentativa & Erro Implementação e Implementação Construção “Compilador” Acabamento Entrega Acabamento
  41. 41. // create some properties and get the default Session Properties props = new Properties(); props.put(quot;mail.smtp.hostquot;, _smtpHost); Session session = Session.getDefaultInstance(props, null); // create a message Address replyToList[] = { new InternetAddress(replyTo) }; Message newMessage = new MimeMessage(session); if (_fromName != null) newMessage.setFrom(new InternetAddress(from, _fromName + quot; on behalf of quot; + replyTo)); else newMessage.setFrom(new InternetAddress(from)); newMessage.setReplyTo(replyToList); newMessage.setRecipients(Message.RecipientType.BCC, _toList); newMessage.setSubject(subject); newMessage.setSentDate(sentDate); // send newMessage Transport transport = session.getTransport(SMTP_MAIL); transport.connect(_smtpHost, _user, _password); transport.sendMessage(newMessage, _toList);
  42. 42. new EmailMessage() .from(quot;demo@guilhermechapiewski.comquot;) .to(quot;destination@address.comquot;) .withSubject(quot;Fluent Mail APIquot;) .withBody(quot;Demo messagequot;) .send();
  43. 43. Escopo Qualidade Variável Prazo Custo
  44. 44. Qualidade Escopo Variável Prazo Custo
  45. 45. Qualidade Escopo Variável Prazo Custo
  46. 46. http://en.wikipedia.org/wiki/The_Toyota_Way
  47. 47. Toyota Production System (TPS)
  48. 48. Thinking Production System (TPS)
  49. 49. Lean
  50. 50. “Toyota Way”
  51. 51. (muda)
  52. 52. “Desperdício”
  53. 53. (muda)
  54. 54. (mura) (muda) (muri)
  55. 55. (jidoka)
  56. 56. “automação com toque humano”
  57. 57. Equipes Cross Funcionais (Feature Teams)
  58. 58. Baseie decisões em filosofia de longo prazo
  59. 59. Tecnologia deve ser puxada (pull) e não empurrada (push)
  60. 60. Crie líderes que entendem o trabalho, vivem a filosofia e a ensinam aos outros
  61. 61. Desenvolva equipes excepcionais que seguem a filosofia
  62. 62. (Genchi Genbutsu)
  63. 63. “ver com os próprios olhos”
  64. 64. (hansei)
  65. 65. “auto-reflexão”
  66. 66. (kaizen)
  67. 67. “melhoria contínua”
  68. 68. Agilidade
  69. 69. Scrum
  70. 70. “Scrummage”
  71. 71. Manifesto for Agile Software Development Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas
  72. 72. Martin Fowler
  73. 73. Martin Fowler
  74. 74. Indíviduos e Interações do que processos e ferramentas
  75. 75. Indíviduos e Interações do que processos e ferramentas Software que funciona do que documentação compreensiva
  76. 76. Indíviduos e Interações do que processos e ferramentas Software que funciona do que documentação compreensiva Colaboração do cliente do que negociação de contratos
  77. 77. Indíviduos e Interações do que processos e ferramentas Software que funciona do que documentação compreensiva Colaboração do cliente do que negociação de contratos Responder a mudanças do que seguir um plano
  78. 78. • A liberdade de rodar o programa, para qualquer propósito
  79. 79. • A liberdade de rodar o programa, para qualquer propósito • A liberdade para estudar como o programa funciona, e adaptá-la às suas necessidades
  80. 80. • A liberdade de rodar o programa, para qualquer propósito • A liberdade para estudar como o programa funciona, e adaptá-la às suas necessidades • A liberdade para redistribuir cópias para poder ajudar seus vizinhos
  81. 81. • A liberdade de rodar o programa, para qualquer propósito • A liberdade para estudar como o programa funciona, e adaptá-la às suas necessidades • A liberdade para redistribuir cópias para poder ajudar seus vizinhos • A liberdade de melhorar o programa, e lançar suas melhorias ao público, para que todos se beneficiem
  82. 82. Ferramentas
  83. 83. Comunicação
  84. 84. Responsabilidade Coletiva
  85. 85. (kanban)
  86. 86. Tickets
  87. 87. (andon)
  88. 88. Integração Contínua
  89. 89. Propriedade Coletiva de Código
  90. 90. Propriedade Coletiva de Código Refatoramento Agressivo
  91. 91. Propriedade Coletiva de Código Refatoramento Agressivo Revisão de Código
  92. 92. Propriedade Coletiva de Código Refatoramento Agressivo Revisão de Código Testes
  93. 93. Propriedade Coletiva de Código Refatoramento Agressivo Revisão de Código Testes Integração Contínua
  94. 94. Propriedade Coletiva de Código Refatoramento Agressivo Revisão de Código Testes Integração Contínua Simplicidade
  95. 95. Propriedade Coletiva de Código Refatoramento Agressivo Revisão de Código Testes Integração Contínua Simplicidade
  96. 96. Evolução
  97. 97. Prazo estimado: 9 meses
  98. 98. Aleluia! 1.5 meses!
  99. 99. Aleluia! 1.5 meses! (or is it?)
  100. 100. Como um projeto fica 1 ano atrasado!?
  101. 101. Resposta: 1 dia de cada vez
  102. 102. n(n-1)/2
  103. 103. Desenvolvedores Comunicação 50 1.225 10 45 5 10
  104. 104. Desenvolvedores Comunicação 50 1.225 10 45 5 10
  105. 105. Desenvolvedores Comunicação 50 1.225 10 45 5 10
  106. 106. Desenvolvedores Comunicação 50 1.225 10 45 5 10
  107. 107. • 90% da razão de problemas num projeto é comunicação
  108. 108. • 90% da razão de problemas num projeto é comunicação • Pair Programming
  109. 109. • 90% da razão de problemas num projeto é comunicação • Pair Programming • Daily Scrum/Stand Up meeting
  110. 110. • 90% da razão de problemas num projeto é comunicação • Pair Programming • Daily Scrum/Stand Up meeting • Cliente sempre presente
  111. 111. • 90% da razão de problemas num projeto é comunicação • Pair Programming • Daily Scrum/Stand Up meeting • Cliente sempre presente • Equipes Auto-Gerenciadas
  112. 112. Pareto (projetos)
  113. 113. Projetos de MUITO sucesso
  114. 114. Projetos de MUITO sucesso Projetos fracassados
  115. 115. Gauss (metodologias)
  116. 116. “O que todo mundo faz” (MEDÍOCRE)
  117. 117. “O que todo mundo faz” (MEDÍOCRE) Acima da Média
  118. 118. “O que todo mundo faz” (MEDÍOCRE) Acima da Incompetência Média
  119. 119. Projetos de MUITO sucesso, executados ACIMA da média
  120. 120. Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  121. 121. Manifesto for Agile Software Development Estamos are uncovering better maneiras melhores de We “descobrindo” ways of developing desenvolver software naand helping ajudando outros software by doing it prática e others do it. Through this a desenvolver. work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  122. 122. não existe receita
  123. 123. agilidade não é procedimento
  124. 124. agilidade são CULTURA e VALORES
  125. 125. certo?
  126. 126. errado?
  127. 127. http://norvig.com/21-days.html
  128. 128. COMPROMETIMENTO
  129. 129. ~10 mil horas ~10 anos
  130. 130. Em 2 semanas nos lembramos ...
  131. 131. Em 2 semanas nos lembramos ...
  132. 132. Em 2 semanas nos lembramos ... Ler 10% Ouvir 20% Passivo Ver 30% Ver e Ouvir 50% Dizer 70% Ativo Dizer e Fazer 90%
  133. 133. Em 2 semanas nos lembramos ... Ler 10% Ouvir 20% Passivo Ver 30% Ver e Ouvir 50% Dizer 70% Ativo Dizer e Fazer 90%
  134. 134. Em 2 semanas nos lembramos ... Ler 10% Ouvir 20% Passivo Ver 30% Ver e Ouvir 50% Dizer 70% Ativo Dizer e Fazer 90%
  135. 135. Em 2 semanas nos lembramos ... Ler 10% Ouvir 20% Passivo Ver 30% Ver e Ouvir 50% Dizer 70% Ativo Dizer e Fazer 90%
  136. 136. Em 2 semanas nos lembramos ... Ler 10% Ouvir 20% Passivo Ver 30% Ver e Ouvir 50% Dizer 70% Ativo Dizer e Fazer 90%
  137. 137. Em 2 semanas nos lembramos ... Ler 10% Ouvir 20% Passivo Ver 30% Ver e Ouvir 50% Dizer 70% Ativo Dizer e Fazer 90%
  138. 138. Em 2 semanas nos lembramos ... Ler 10% Ouvir 20% Passivo Ver 30% Ver e Ouvir 50% Dizer 70% Ativo Dizer e Fazer 90%
  139. 139. Eu vejo e esqueço Ouço e me lembro Faço e entendo Confucius
  140. 140. Especialista de uma coisa só é um amador em todo o resto.
  141. 141. Trabalho
  142. 142. Tarefas
  143. 143. Objetivo
  144. 144. Just Do It!

×