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
www.slideshare.net/akitaonrails
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("[email protected]") .to("[email protected]") .withSubject("Fluent Mail API") .withBody("Demo message") .send();
QualidadeVariável
Escopo
Prazo Custo
EscopoVariável
Qualidade
Prazo Custo
EscopoVariável
Qualidade
Prazo Custo
http://en.wikipedia.org/wiki/The_Toyota_Way
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?
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!
Top Related