Encontro Locaweb

Post on 02-Dec-2014

1.667 views 0 download

description

Palestra sobre Valores Ágeis no Encontro Locaweb

Transcript of Encontro Locaweb

Agilidade eQualidade deProjetos

Fabio Akita

Fabio Akita

@akitaonrails

Fabio Akita

@akitaonrails

Filosofia

φιλοσοφία

“Amor à Sabedoria”

“Amor à Sabedoria”

Menos sobre o “como”

Mais sobre o “o quê”

+170 slides~50 min

Como é um software?

Desenvolvimento Clássico

Desenvolvimento “Caseiro”

Software que “funciona”

Como é feito um software?

“Engenharia”

Blueprint

Construção

Acabamento

Requerimentos

Codificação

Entrega

Engenhariade Software

EngenhariaCivil

Ceticismo

Winston W. Royce - 1970

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

e convida falhas.”

Winston W. Royce - 1970

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

e convida falhas.”

Winston W. Royce - 1970

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

e convida falhas.”

Winston W. Royce - 1970

Dogma

método científico

Pergunta

Pergunta

Pesquisa

Pergunta

Pesquisa

Hipótese

Pergunta

Pesquisa

Hipótese

Experimento

Pergunta

Pesquisa

Hipótese

Experimento

Análise

Pergunta

Pesquisa

Hipótese

Experimento

Análise

Verdadeiro

Pergunta

Pesquisa

Hipótese

Experimento

Análise

Verdadeiro

Resultado

Pergunta

Pesquisa

Hipótese

Experimento

Análise

Verdadeiro Falso

Resultado

Pergunta

Pesquisa

Hipótese

Experimento

Análise

Verdadeiro Falso

Resultado

Tentar de Novo

“Escopo”

Ninguém prevê o futuro

Ciência?

Blueprint

Construção

Acabamento

Requerimentos

Codificação

Entrega

Engenhariade Software

EngenhariaCivil

Tentativa & Erro e

Implementação

Acabamento

Arte

Blueprint

Construção

Acabamento

Requerimentos

Codificação

Entrega

Engenhariade Software

EngenhariaCivil

Tentativa & Erro e

Implementação

Acabamento

Arte

“Compilador”

Design e Implementação

Blueprint

Construção

Acabamento Entrega

Engenhariade Software

EngenhariaCivil

// 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);

new EmailMessage() .from("demo@guilhermechapiewski.com") .to("destination@address.com") .withSubject("Fluent Mail API") .withBody("Demo message") .send();

QualidadeVariável

Escopo

Prazo Custo

EscopoVariável

Qualidade

Prazo Custo

EscopoVariável

Qualidade

Prazo Custo

Toyota Production System (TPS)

Thinking Production System (TPS)

Lean

“Toyota Way”

無駄(muda)

“Desperdício”

無駄(muda)

無駄 無理斑

(mura)

(muda) (muri)

自働化(jidoka)

“automação com toque humano”

Equipes Cross Funcionais

(Feature Teams)

Baseie decisõesem filosofia

de longo prazo

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

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

Desenvolva equipes excepcionais que seguem a filosofia

現地現物(Genchi Genbutsu)

“ver com os próprios olhos”

反省(hansei)

“auto-reflexão”

改善(kaizen)

“melhoria contínua”

Agilidade

Scrum

“Scrummage”

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

Martin Fowler

Martin Fowler

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

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

Software que funciona do que documentação compreensiva

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

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

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

• 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 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 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

Ferramentas

Comunicação

Responsabilidade Coletiva

看板(kanban)

Tickets

アンドン(andon)

Integração Contínua

Propriedade Coletiva de Código

Propriedade Coletiva de Código

Refatoramento Agressivo

Propriedade Coletiva de Código

Refatoramento Agressivo

Revisão de Código

Propriedade Coletiva de Código

Refatoramento Agressivo

Revisão de Código

Testes

Propriedade Coletiva de Código

Refatoramento Agressivo

Revisão de Código

Testes

Integração Contínua

Propriedade Coletiva de Código

Refatoramento Agressivo

Revisão de Código

Testes

Integração Contínua

Simplicidade

Propriedade Coletiva de Código

Refatoramento Agressivo

Revisão de Código

Testes

Integração Contínua

Simplicidade

Evolução

Prazo estimado:9 meses

Aleluia! 1.5 meses!

Aleluia! 1.5 meses!

(or is it?)

Como um projeto fica 1 ano atrasado!?

Resposta: 1 dia de cada vez

n(n-1)/2

Desenvolvedores Comunicação

50 1.225

10 45

5 10

Desenvolvedores Comunicação

50 1.225

10 45

5 10

Desenvolvedores Comunicação

50 1.225

10 45

5 10

Desenvolvedores Comunicação

50 1.225

10 45

5 10

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

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

• Pair Programming

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

• Pair Programming

• Daily Scrum/Stand Up meeting

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

• Pair Programming

• Daily Scrum/Stand Up meeting

• Cliente sempre presente

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

• Pair Programming

• Daily Scrum/Stand Up meeting

• Cliente sempre presente

• Equipes Auto-Gerenciadas

Pareto(projetos)

Projetos de MUITO

sucesso

Projetos de MUITO

sucesso

Projetos fracassados

Gauss(metodologias)

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

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

Acima da Média

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

Acima da Média Incompetência

Projetos de MUITO sucesso, executados

ACIMA da média

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.

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.

não existe receita

agilidade não é procedimento

agilidade são CULTURA e VALORES

certo?

errado?

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

COMPROMETIMENTO

~10 mil horas~10 anos

Em 2 semanas nos lembramos ...

Em 2 semanas nos lembramos ...

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 ...

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 ...

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 ...

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 ...

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 ...

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 ...

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 ...

Eu vejo e esqueçoOuço e me lembro

Faço e entendoConfucius

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

Trabalho

Tarefas

Objetivo

Just Do It!