Encontro Locaweb Curitiba

250
Agilidade e Qualidade de Projetos Fabio Akita

description

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.

Transcript of Encontro Locaweb Curitiba

Page 1: Encontro  Locaweb Curitiba

Agilidade eQualidade deProjetos

Fabio Akita

Page 2: Encontro  Locaweb Curitiba

Fabio Akita

@akitaonrails

Page 3: Encontro  Locaweb Curitiba

Fabio Akita

@akitaonrails

Page 4: Encontro  Locaweb Curitiba
Page 5: Encontro  Locaweb Curitiba
Page 6: Encontro  Locaweb Curitiba
Page 7: Encontro  Locaweb Curitiba
Page 8: Encontro  Locaweb Curitiba

Filosofia

Page 9: Encontro  Locaweb Curitiba

φιλοσοφία

Page 10: Encontro  Locaweb Curitiba

“Amor à Sabedoria”

Page 11: Encontro  Locaweb Curitiba

“Amor à Sabedoria”

Page 12: Encontro  Locaweb Curitiba

Menos sobre o “como”

Page 13: Encontro  Locaweb Curitiba

Mais sobre o “o quê”

Page 14: Encontro  Locaweb Curitiba
Page 15: Encontro  Locaweb Curitiba

+170 slides~50 min

Page 17: Encontro  Locaweb Curitiba

Como é um software?

Page 18: Encontro  Locaweb Curitiba

Desenvolvimento Clássico

Page 19: Encontro  Locaweb Curitiba
Page 20: Encontro  Locaweb Curitiba
Page 21: Encontro  Locaweb Curitiba
Page 22: Encontro  Locaweb Curitiba
Page 23: Encontro  Locaweb Curitiba
Page 24: Encontro  Locaweb Curitiba
Page 25: Encontro  Locaweb Curitiba
Page 26: Encontro  Locaweb Curitiba
Page 27: Encontro  Locaweb Curitiba

Desenvolvimento “Caseiro”

Page 28: Encontro  Locaweb Curitiba
Page 29: Encontro  Locaweb Curitiba
Page 30: Encontro  Locaweb Curitiba
Page 31: Encontro  Locaweb Curitiba
Page 32: Encontro  Locaweb Curitiba
Page 33: Encontro  Locaweb Curitiba

Software que “funciona”

Page 34: Encontro  Locaweb Curitiba
Page 35: Encontro  Locaweb Curitiba
Page 36: Encontro  Locaweb Curitiba
Page 37: Encontro  Locaweb Curitiba
Page 38: Encontro  Locaweb Curitiba
Page 39: Encontro  Locaweb Curitiba

Como é feito um software?

Page 40: Encontro  Locaweb Curitiba

“Engenharia”

Page 41: Encontro  Locaweb Curitiba
Page 42: Encontro  Locaweb Curitiba
Page 43: Encontro  Locaweb Curitiba
Page 44: Encontro  Locaweb Curitiba
Page 45: Encontro  Locaweb Curitiba
Page 46: Encontro  Locaweb Curitiba

Blueprint

Construção

Acabamento

Requerimentos

Codificação

Entrega

Engenhariade Software

EngenhariaCivil

Page 47: Encontro  Locaweb Curitiba

Ceticismo

Page 48: Encontro  Locaweb Curitiba
Page 49: Encontro  Locaweb Curitiba

Winston W. Royce - 1970

Page 50: Encontro  Locaweb Curitiba

“Eu acredito neste conceito mas a implementação descrita acima é arriscada

e convida falhas.”

Winston W. Royce - 1970

Page 51: Encontro  Locaweb Curitiba

“Eu acredito neste conceito mas a implementação descrita acima é arriscada

e convida falhas.”

Winston W. Royce - 1970

Page 52: Encontro  Locaweb Curitiba

“Eu acredito neste conceito mas a implementação descrita acima é arriscada

e convida falhas.”

Winston W. Royce - 1970

Page 53: Encontro  Locaweb Curitiba

Dogma

Page 54: Encontro  Locaweb Curitiba
Page 55: Encontro  Locaweb Curitiba
Page 56: Encontro  Locaweb Curitiba
Page 57: Encontro  Locaweb Curitiba

método científico

Page 58: Encontro  Locaweb Curitiba

Pergunta

Page 59: Encontro  Locaweb Curitiba

Pergunta

Pesquisa

Page 60: Encontro  Locaweb Curitiba

Pergunta

Pesquisa

Hipótese

Page 61: Encontro  Locaweb Curitiba

Pergunta

Pesquisa

Hipótese

Experimento

Page 62: Encontro  Locaweb Curitiba

Pergunta

Pesquisa

Hipótese

Experimento

Análise

Page 63: Encontro  Locaweb Curitiba

Pergunta

Pesquisa

Hipótese

Experimento

Análise

Verdadeiro

Page 64: Encontro  Locaweb Curitiba

Pergunta

Pesquisa

Hipótese

Experimento

Análise

Verdadeiro

Resultado

Page 65: Encontro  Locaweb Curitiba

Pergunta

Pesquisa

Hipótese

Experimento

Análise

Verdadeiro Falso

Resultado

Page 66: Encontro  Locaweb Curitiba

Pergunta

Pesquisa

Hipótese

Experimento

Análise

Verdadeiro Falso

Resultado

Tentar de Novo

Page 67: Encontro  Locaweb Curitiba

“Escopo”

Page 68: Encontro  Locaweb Curitiba
Page 69: Encontro  Locaweb Curitiba
Page 70: Encontro  Locaweb Curitiba
Page 71: Encontro  Locaweb Curitiba
Page 72: Encontro  Locaweb Curitiba
Page 73: Encontro  Locaweb Curitiba
Page 74: Encontro  Locaweb Curitiba
Page 75: Encontro  Locaweb Curitiba
Page 76: Encontro  Locaweb Curitiba
Page 77: Encontro  Locaweb Curitiba
Page 78: Encontro  Locaweb Curitiba
Page 79: Encontro  Locaweb Curitiba
Page 80: Encontro  Locaweb Curitiba
Page 81: Encontro  Locaweb Curitiba
Page 82: Encontro  Locaweb Curitiba
Page 83: Encontro  Locaweb Curitiba
Page 84: Encontro  Locaweb Curitiba
Page 85: Encontro  Locaweb Curitiba
Page 86: Encontro  Locaweb Curitiba
Page 87: Encontro  Locaweb Curitiba
Page 88: Encontro  Locaweb Curitiba
Page 89: Encontro  Locaweb Curitiba
Page 90: Encontro  Locaweb Curitiba
Page 91: Encontro  Locaweb Curitiba
Page 92: Encontro  Locaweb Curitiba
Page 93: Encontro  Locaweb Curitiba
Page 94: Encontro  Locaweb Curitiba
Page 95: Encontro  Locaweb Curitiba

Ninguém prevê o futuro

Page 96: Encontro  Locaweb Curitiba

Ciência?

Page 97: Encontro  Locaweb Curitiba
Page 98: Encontro  Locaweb Curitiba
Page 99: Encontro  Locaweb Curitiba
Page 100: Encontro  Locaweb Curitiba
Page 101: Encontro  Locaweb Curitiba

Blueprint

Construção

Acabamento

Requerimentos

Codificação

Entrega

Engenhariade Software

EngenhariaCivil

Page 102: Encontro  Locaweb Curitiba

Tentativa & Erro e

Implementação

Acabamento

Arte

Blueprint

Construção

Acabamento

Requerimentos

Codificação

Entrega

Engenhariade Software

EngenhariaCivil

Page 103: Encontro  Locaweb Curitiba

Tentativa & Erro e

Implementação

Acabamento

Arte

“Compilador”

Design e Implementação

Blueprint

Construção

Acabamento Entrega

Engenhariade Software

EngenhariaCivil

Page 104: Encontro  Locaweb Curitiba
Page 105: Encontro  Locaweb Curitiba
Page 106: Encontro  Locaweb Curitiba

// create some properties and get the default SessionProperties props = new Properties();props.put("mail.smtp.host", _smtpHost);Session session = Session.getDefaultInstance(props, null); // create a messageAddress replyToList[] = { new InternetAddress(replyTo) };Message newMessage = new MimeMessage(session);if (_fromName != null) newMessage.setFrom(new InternetAddress(from, _fromName + " on behalf of " + replyTo));else newMessage.setFrom(new InternetAddress(from)); newMessage.setReplyTo(replyToList); newMessage.setRecipients(Message.RecipientType.BCC, _toList); newMessage.setSubject(subject); newMessage.setSentDate(sentDate); // send newMessageTransport transport = session.getTransport(SMTP_MAIL);transport.connect(_smtpHost, _user, _password);transport.sendMessage(newMessage, _toList);

Page 107: Encontro  Locaweb Curitiba

new EmailMessage() .from("[email protected]") .to("[email protected]") .withSubject("Fluent Mail API") .withBody("Demo message") .send();

Page 108: Encontro  Locaweb Curitiba

QualidadeVariável

Escopo

Prazo Custo

Page 109: Encontro  Locaweb Curitiba

EscopoVariável

Qualidade

Prazo Custo

Page 110: Encontro  Locaweb Curitiba

EscopoVariável

Qualidade

Prazo Custo

Page 112: Encontro  Locaweb Curitiba

Toyota Production System (TPS)

Page 113: Encontro  Locaweb Curitiba

Thinking Production System (TPS)

Page 114: Encontro  Locaweb Curitiba

Lean

Page 115: Encontro  Locaweb Curitiba

“Toyota Way”

Page 116: Encontro  Locaweb Curitiba

無駄(muda)

Page 117: Encontro  Locaweb Curitiba

“Desperdício”

Page 118: Encontro  Locaweb Curitiba

無駄(muda)

Page 119: Encontro  Locaweb Curitiba

無駄 無理斑

(mura)

(muda) (muri)

Page 120: Encontro  Locaweb Curitiba

自働化(jidoka)

Page 121: Encontro  Locaweb Curitiba

“automação com toque humano”

Page 122: Encontro  Locaweb Curitiba
Page 123: Encontro  Locaweb Curitiba

Equipes Cross Funcionais

(Feature Teams)

Page 124: Encontro  Locaweb Curitiba

Baseie decisõesem filosofia

de longo prazo

Page 125: Encontro  Locaweb Curitiba

Tecnologia deve ser puxada (pull) e não empurrada (push)

Page 126: Encontro  Locaweb Curitiba

Crie líderes que entendem o trabalho, vivem a filosofia e a ensinam aos outros

Page 127: Encontro  Locaweb Curitiba

Desenvolva equipes excepcionais que seguem a filosofia

Page 128: Encontro  Locaweb Curitiba

現地現物(Genchi Genbutsu)

Page 129: Encontro  Locaweb Curitiba

“ver com os próprios olhos”

Page 130: Encontro  Locaweb Curitiba

反省(hansei)

Page 131: Encontro  Locaweb Curitiba

“auto-reflexão”

Page 132: Encontro  Locaweb Curitiba

改善(kaizen)

Page 133: Encontro  Locaweb Curitiba

“melhoria contínua”

Page 134: Encontro  Locaweb Curitiba
Page 135: Encontro  Locaweb Curitiba
Page 136: Encontro  Locaweb Curitiba

Agilidade

Page 137: Encontro  Locaweb Curitiba

Scrum

Page 138: Encontro  Locaweb Curitiba

“Scrummage”

Page 139: Encontro  Locaweb Curitiba
Page 140: Encontro  Locaweb Curitiba
Page 141: Encontro  Locaweb Curitiba
Page 142: Encontro  Locaweb Curitiba
Page 143: Encontro  Locaweb Curitiba
Page 144: Encontro  Locaweb Curitiba
Page 145: Encontro  Locaweb Curitiba
Page 146: Encontro  Locaweb Curitiba
Page 147: Encontro  Locaweb Curitiba
Page 148: Encontro  Locaweb Curitiba
Page 149: Encontro  Locaweb Curitiba
Page 150: Encontro  Locaweb Curitiba
Page 151: Encontro  Locaweb Curitiba

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

Page 152: Encontro  Locaweb Curitiba
Page 153: Encontro  Locaweb Curitiba
Page 154: Encontro  Locaweb Curitiba

Martin Fowler

Page 155: Encontro  Locaweb Curitiba

Martin Fowler

Page 156: Encontro  Locaweb Curitiba
Page 157: Encontro  Locaweb Curitiba

Indíviduos e Interações do que processos e ferramentas

Page 158: Encontro  Locaweb Curitiba

Indíviduos e Interações do que processos e ferramentas

Software que funciona do que documentação compreensiva

Page 159: Encontro  Locaweb Curitiba

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

Page 160: Encontro  Locaweb Curitiba

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

Page 161: Encontro  Locaweb Curitiba
Page 162: Encontro  Locaweb Curitiba
Page 163: Encontro  Locaweb Curitiba

• A liberdade de rodar o programa, para qualquer propósito

Page 164: Encontro  Locaweb Curitiba

• A liberdade de rodar o programa, para qualquer propósito

• A liberdade para estudar como o programa funciona, e adaptá-la às suas necessidades

Page 165: Encontro  Locaweb Curitiba

• 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

Page 166: Encontro  Locaweb Curitiba

• 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

Page 167: Encontro  Locaweb Curitiba
Page 168: Encontro  Locaweb Curitiba
Page 169: Encontro  Locaweb Curitiba

Ferramentas

Page 170: Encontro  Locaweb Curitiba
Page 171: Encontro  Locaweb Curitiba
Page 172: Encontro  Locaweb Curitiba
Page 173: Encontro  Locaweb Curitiba
Page 174: Encontro  Locaweb Curitiba

Comunicação

Page 175: Encontro  Locaweb Curitiba
Page 176: Encontro  Locaweb Curitiba
Page 177: Encontro  Locaweb Curitiba

Responsabilidade Coletiva

Page 178: Encontro  Locaweb Curitiba
Page 179: Encontro  Locaweb Curitiba

看板(kanban)

Page 180: Encontro  Locaweb Curitiba

Tickets

Page 181: Encontro  Locaweb Curitiba
Page 182: Encontro  Locaweb Curitiba

アンドン(andon)

Page 183: Encontro  Locaweb Curitiba

Integração Contínua

Page 184: Encontro  Locaweb Curitiba
Page 185: Encontro  Locaweb Curitiba

Propriedade Coletiva de Código

Page 186: Encontro  Locaweb Curitiba

Propriedade Coletiva de Código

Refatoramento Agressivo

Page 187: Encontro  Locaweb Curitiba

Propriedade Coletiva de Código

Refatoramento Agressivo

Revisão de Código

Page 188: Encontro  Locaweb Curitiba

Propriedade Coletiva de Código

Refatoramento Agressivo

Revisão de Código

Testes

Page 189: Encontro  Locaweb Curitiba

Propriedade Coletiva de Código

Refatoramento Agressivo

Revisão de Código

Testes

Integração Contínua

Page 190: Encontro  Locaweb Curitiba

Propriedade Coletiva de Código

Refatoramento Agressivo

Revisão de Código

Testes

Integração Contínua

Simplicidade

Page 191: Encontro  Locaweb Curitiba

Propriedade Coletiva de Código

Refatoramento Agressivo

Revisão de Código

Testes

Integração Contínua

Simplicidade

Page 192: Encontro  Locaweb Curitiba

Evolução

Page 193: Encontro  Locaweb Curitiba
Page 194: Encontro  Locaweb Curitiba

Prazo estimado:9 meses

Page 195: Encontro  Locaweb Curitiba
Page 196: Encontro  Locaweb Curitiba

Aleluia! 1.5 meses!

Page 197: Encontro  Locaweb Curitiba

Aleluia! 1.5 meses!

(or is it?)

Page 198: Encontro  Locaweb Curitiba

Como um projeto fica 1 ano atrasado!?

Page 199: Encontro  Locaweb Curitiba

Resposta: 1 dia de cada vez

Page 200: Encontro  Locaweb Curitiba

n(n-1)/2

Page 201: Encontro  Locaweb Curitiba
Page 202: Encontro  Locaweb Curitiba

Desenvolvedores Comunicação

50 1.225

10 45

5 10

Page 203: Encontro  Locaweb Curitiba

Desenvolvedores Comunicação

50 1.225

10 45

5 10

Page 204: Encontro  Locaweb Curitiba

Desenvolvedores Comunicação

50 1.225

10 45

5 10

Page 205: Encontro  Locaweb Curitiba

Desenvolvedores Comunicação

50 1.225

10 45

5 10

Page 206: Encontro  Locaweb Curitiba
Page 207: Encontro  Locaweb Curitiba
Page 208: Encontro  Locaweb Curitiba

• 90% da razão de problemas num projeto é comunicação

Page 209: Encontro  Locaweb Curitiba

• 90% da razão de problemas num projeto é comunicação

• Pair Programming

Page 210: Encontro  Locaweb Curitiba

• 90% da razão de problemas num projeto é comunicação

• Pair Programming

• Daily Scrum/Stand Up meeting

Page 211: Encontro  Locaweb Curitiba

• 90% da razão de problemas num projeto é comunicação

• Pair Programming

• Daily Scrum/Stand Up meeting

• Cliente sempre presente

Page 212: Encontro  Locaweb Curitiba

• 90% da razão de problemas num projeto é comunicação

• Pair Programming

• Daily Scrum/Stand Up meeting

• Cliente sempre presente

• Equipes Auto-Gerenciadas

Page 213: Encontro  Locaweb Curitiba

Pareto(projetos)

Page 214: Encontro  Locaweb Curitiba
Page 215: Encontro  Locaweb Curitiba

Projetos de MUITO

sucesso

Page 216: Encontro  Locaweb Curitiba

Projetos de MUITO

sucesso

Projetos fracassados

Page 217: Encontro  Locaweb Curitiba

Gauss(metodologias)

Page 218: Encontro  Locaweb Curitiba
Page 219: Encontro  Locaweb Curitiba

“O que todo mundo faz”(MEDÍOCRE)

Page 220: Encontro  Locaweb Curitiba

“O que todo mundo faz”(MEDÍOCRE)

Acima da Média

Page 221: Encontro  Locaweb Curitiba

“O que todo mundo faz”(MEDÍOCRE)

Acima da Média Incompetência

Page 222: Encontro  Locaweb Curitiba
Page 223: Encontro  Locaweb Curitiba

Projetos de MUITO sucesso, executados

ACIMA da média

Page 224: Encontro  Locaweb Curitiba

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.

Page 225: Encontro  Locaweb Curitiba

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.

Estamos “descobrindo” maneiras melhores de desenvolver software na prática e ajudando outros

a desenvolver.

Page 226: Encontro  Locaweb Curitiba

não existe receita

Page 227: Encontro  Locaweb Curitiba

agilidade não é procedimento

Page 228: Encontro  Locaweb Curitiba

agilidade são CULTURA e VALORES

Page 229: Encontro  Locaweb Curitiba

certo?

Page 230: Encontro  Locaweb Curitiba

errado?

Page 231: Encontro  Locaweb Curitiba
Page 232: Encontro  Locaweb Curitiba

http://norvig.com/21-days.html

Page 233: Encontro  Locaweb Curitiba

COMPROMETIMENTO

Page 234: Encontro  Locaweb Curitiba

~10 mil horas~10 anos

Page 235: Encontro  Locaweb Curitiba

Em 2 semanas nos lembramos ...

Page 236: Encontro  Locaweb Curitiba

Em 2 semanas nos lembramos ...

Page 237: Encontro  Locaweb Curitiba

Ler 10%

PassivoOuvir 20%

PassivoVer 30%

Passivo

Ver e Ouvir 50%

Passivo

Dizer 70%Ativo

Dizer e Fazer 90%Ativo

Em 2 semanas nos lembramos ...

Page 238: Encontro  Locaweb Curitiba

Ler 10%

PassivoOuvir 20%

PassivoVer 30%

Passivo

Ver e Ouvir 50%

Passivo

Dizer 70%Ativo

Dizer e Fazer 90%Ativo

Em 2 semanas nos lembramos ...

Page 239: Encontro  Locaweb Curitiba

Ler 10%

PassivoOuvir 20%

PassivoVer 30%

Passivo

Ver e Ouvir 50%

Passivo

Dizer 70%Ativo

Dizer e Fazer 90%Ativo

Em 2 semanas nos lembramos ...

Page 240: Encontro  Locaweb Curitiba

Ler 10%

PassivoOuvir 20%

PassivoVer 30%

Passivo

Ver e Ouvir 50%

Passivo

Dizer 70%Ativo

Dizer e Fazer 90%Ativo

Em 2 semanas nos lembramos ...

Page 241: Encontro  Locaweb Curitiba

Ler 10%

PassivoOuvir 20%

PassivoVer 30%

Passivo

Ver e Ouvir 50%

Passivo

Dizer 70%Ativo

Dizer e Fazer 90%Ativo

Em 2 semanas nos lembramos ...

Page 242: Encontro  Locaweb Curitiba

Ler 10%

PassivoOuvir 20%

PassivoVer 30%

Passivo

Ver e Ouvir 50%

Passivo

Dizer 70%Ativo

Dizer e Fazer 90%Ativo

Em 2 semanas nos lembramos ...

Page 243: Encontro  Locaweb Curitiba

Ler 10%

PassivoOuvir 20%

PassivoVer 30%

Passivo

Ver e Ouvir 50%

Passivo

Dizer 70%Ativo

Dizer e Fazer 90%Ativo

Em 2 semanas nos lembramos ...

Page 244: Encontro  Locaweb Curitiba

Eu vejo e esqueçoOuço e me lembro

Faço e entendoConfucius

Page 245: Encontro  Locaweb Curitiba

Especialista de uma coisa só é um amador em todo o resto.

Page 246: Encontro  Locaweb Curitiba

Trabalho

Page 247: Encontro  Locaweb Curitiba

Tarefas

Page 248: Encontro  Locaweb Curitiba
Page 249: Encontro  Locaweb Curitiba

Objetivo

Page 250: Encontro  Locaweb Curitiba

Just Do It!