metodologias Ágeis: uma breve introdução

47
Metodologias Ágeis Achiles Camilo PMI-ACP, CAPM, CSM, MCTS Diretor Adjunto de Certificação Uma breve introdução

Upload: achiles-camilo

Post on 17-Dec-2014

467 views

Category:

Documents


5 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Metodologias Ágeis: Uma breve introdução

Metodologias Ágeis

Achiles Camilo

PMI-ACP, CAPM, CSM, MCTS

Diretor Adjunto de Certificação

Uma breve introdução

Page 2: Metodologias Ágeis: Uma breve introdução

Como tudo começou?

Page 3: Metodologias Ágeis: Uma breve introdução

Engenharia de Software

• No final dos 50 surgiu o termo Engenharia de

Software;

• Dessa época até meados dos anos 80, foi a

famosa Crise de Software:

• Prazos não cumpridos;

• Orçamentos estourados;

• Baixa qualidade;

• Hardware caro;

• Não atendiam os requisitos;

• E isso quando era entregue!!

Page 4: Metodologias Ágeis: Uma breve introdução

There is “No Silver Bullet...”

• Em 86, Brooks lançou a célebre frase, onde

explica um pouco o “segredo” dos softwares;

Page 5: Metodologias Ágeis: Uma breve introdução

E a coisa foi ficando séria...

• Ferramentas CASE;

• Modelos de Processo (CMM);

• Início da criação de Métodos;

– Disciplina;

– Profissionalismo!

Page 6: Metodologias Ágeis: Uma breve introdução

E chegou a tal da Internet!

• Trocas de emails;

• Fóruns de discussão;

• Disseminação do conhecimento;

Page 7: Metodologias Ágeis: Uma breve introdução

Já ouviram falar em cachoeira?

Page 8: Metodologias Ágeis: Uma breve introdução
Page 9: Metodologias Ágeis: Uma breve introdução

Como assim?

• Sem mais documentação???

• Chega de diagramas???

• Agora é só código???

Page 10: Metodologias Ágeis: Uma breve introdução

The Agile Alliance surge!!

• De 11 a 13 de Fevereiro de 2001 um grupo se

intitulado “The Agile Alliance” se reuniram e criaram

algo simples;

• O Agile Manifesto pode ser visto através do site:

http://agilemanifesto.org

Page 11: Metodologias Ágeis: Uma breve introdução

Agile Manifesto!!

Page 12: Metodologias Ágeis: Uma breve introdução

• Desde então vários evangelistas se espalharam pelo mundo;

• Livros, artigos, fóruns, comunidades e uma infinidade de meios

são utilizados para expor essa 8ª maravilha ao mundo;

• Mas isso nos traz a um pequeno probleminha:– Cada empresa, cada equipe e cada pessoa entende Agile

como acha conveniente– E temos empresas/equipes/pessoas ágeis que não são tão

ágeis assim...

E se popularizou \o/

Page 13: Metodologias Ágeis: Uma breve introdução

• Como ser um verdadeiro “agilista” então?

• Simples!! Basta utilizar as técnicas e métodos ágeis

como eles são...

• Eles são feitos para serem customizados e se

adaptarem a suas necessidades, mas não

modificados;

Como assim?

Page 14: Metodologias Ágeis: Uma breve introdução

• Técnicas ágeis são atividades que buscam maneiras

de colocar na prática o que os princípios ágeis

propõe:– TDD, Programação em par, Reuniões diárias...

• Um conjunto de técnicas agrupadas para facilitar o

desenvolvimento de Software são os métodos:– Scrum, XP, Crystal, DSDM, Lean, Kanban...

Métodos e Técnicas

Page 15: Metodologias Ágeis: Uma breve introdução

Técnicas

Page 16: Metodologias Ágeis: Uma breve introdução

• Quem usa Post It pra anotar as coisas?

• Uma das técnicas mais clássicas e mais notadas;

• Gera um efeito visual marcante;

• Motiva a famosa “Gestão a Vista”!

Post Its!! (CardWall)

Page 17: Metodologias Ágeis: Uma breve introdução

Baklogs

• Backlog nada mais é do que o escopo de trabalho;

• Tudo que tem que ser feito, todos os “requisitos

funcionais” do sistema estão presentes no Backlog;

• Podem ser divididos entre:– Backlog do Produto;– Backlog de Sprints;

Page 18: Metodologias Ágeis: Uma breve introdução

Iterações

• No contexto ágil, todas as iterações são

“timeboxes”, ou seja, todos são períodos de tempo

pré-determinados;

• Auxiliam na segmentação do trabalho;

• Melhoram a gestão e o controle das entregas;

Page 19: Metodologias Ágeis: Uma breve introdução

Entregas Constantes

• No mundo ágil, todas as entregas são funcionais!!

• E devem ser realizadas frequentemente para captar

os feedbacks dos stakeholders sobre o produto;

• Auxiliam para melhor entender as necessidades do

cliente;

Page 20: Metodologias Ágeis: Uma breve introdução

Integração Contínua

• Todo desenvolvimento realizado entre os membros

da equipe devem ser testados quanto a integração

com todo o software; (Build Automático)

• Para toda entrega gerada, sempre deve haver uma

preocupação com a Integração com os demais

componentes do Sistema;

Page 21: Metodologias Ágeis: Uma breve introdução

TDD (Desenvolvimento Orientado a Teste)

• Teste primeiro!!

• Vai escrever um método? O teste unitário dele já

está pronto?

• Antes de qualquer linha de código, deve haver uma

muitas linhas de testes;

Page 22: Metodologias Ágeis: Uma breve introdução

Stand Up (Reuniões em pé)

• Reuniões em pé contendo os membros da equipe;

• Geralmente duram 15 minutos e devem ser

discutidos os problemas que impedem o avanço da

equipe;

• A frequência é determinada pela equipe;

Page 23: Metodologias Ágeis: Uma breve introdução

Pair Programming (Programação em par)

• Por que em par???

• Auxilia nos testes (TDD, lembra?);

• Evita cometer pequenos erros;

• Evita o tédio/ócio, e aumenta a produtividade;

Page 24: Metodologias Ágeis: Uma breve introdução

Estimativas

• Medidas:– Pontos de História (Sequencia Fibonacci);– Velocidade do Time;

• Técnicas:– Planning Poker;– Técnica Delphi;– Comparação;

Page 25: Metodologias Ágeis: Uma breve introdução

Conceito de “Done” (Pronto)

• Só pode ser considerado “Pronto” se for testado e

aprovado!

• Já testou? Não... Então não está pronto!

• Cliente aceitou? Não... Então não está pronto!

Page 26: Metodologias Ágeis: Uma breve introdução

Histórias de Usuário

• 3 C’s– Cartão– Conversa– Confirmação

• INVEST– Independente– Negociável– Estimável– Pequena– Testável

Page 27: Metodologias Ágeis: Uma breve introdução

Histórias de Usuário

Page 28: Metodologias Ágeis: Uma breve introdução

Refactoring (Refatoração)

• Princípio básico de Melhoria Contínua aplicada ao

código;

• Após um método ser testado com êxito, ele está apto

a ser refatorado, ou seja, ele deverá ser melhorado,

porém, sem perder a funcionalidade;

• Recomendação: Código Limpo, Robert Martin!

Page 29: Metodologias Ágeis: Uma breve introdução

Equipes Auto Gerenciáveis

• Com a equipe em comum acordo sobre o backlog a

ser trabalhado, assume-se que todos sabem seus

papéis;

• Em uma equipe ágil madura, os “líderes” resolvem os

impedimentos da equipe, pois a distribuição de

atividades e relacionamento interno são resolvidos

pelos próprios membros;

Page 30: Metodologias Ágeis: Uma breve introdução

Métodos

Page 31: Metodologias Ágeis: Uma breve introdução

Scrum

• Metodologia ágil mais famosa;

• Baseada em Sprints de 2 a 4 semanas;

• Possui 2 papéis críticos, além da equipe do projeto:– Scrum Master;– Product Owner;

Page 32: Metodologias Ágeis: Uma breve introdução

Scrum

• Utiliza as técnicas:– Backlog

• Produto;• Sprint;

– Reunião em pé diária;• O que foi feito?• O que vou fazer?• Quais os problemas?

– Gráficos de Burndown;

Page 33: Metodologias Ágeis: Uma breve introdução

Scrum

• Possui 3 reuniões chaves:– Sprint Planning (Planejamento do Sprint)

• Planejamento do o backlog do Sprint;– Sprint Review (Revisão do Sprint)

• Valida as entregas;• Avalia-se a continuidade do projeto;

– Sprint Retrospective (Retrospecita do Sprint)• Coleta-se as lições aprendidas durante o Sprint;

Page 34: Metodologias Ágeis: Uma breve introdução

XP (eXtreme Programming)

• 5 Valores:

– Comunicação;– Coragem;– Feedbacks;– Respeito;– Simplicidade;

• 4 Práticas:

– Codificar;– Testar;– Escutar;– “Modelar”;

Page 35: Metodologias Ágeis: Uma breve introdução

XP (eXtreme Programming)

• 12 Princípios:

– Feedbacks rápidos;– Simplicidade assumida;– Mudanças incrementais;– Abraçar mudanças;– Qualidade de trabalho;– Investimentos iniciais

baixos;

– Experimentos concretos;– Comunicação honesta;– Responsabilidade;– Adaptação ao local de

trabalho;– Poucas “viagens”;– Indicadores honestos;

Page 36: Metodologias Ágeis: Uma breve introdução

XP (eXtreme Programming)

• 12 Práticas:

– Jogo do Planejamento;– Pequenas entregas;– Metáforas;– Modelagens simples;– Testes;– Refatorações;

– Programação em par;– Posse coletiva;– Integração contínua;– 40 h/semana;– Clientes presentes;– Padrões de código;

Page 37: Metodologias Ágeis: Uma breve introdução

Lean

• Baseado totalmente no modelo Toyota de Produção,

é uma adaptação do “Lean Manufacturing” para

software;

• Possui 22 técnicas recomendadas para uso;

• Altamente escalável e pode ser “acoplada” a outras

metodologias;

Page 38: Metodologias Ágeis: Uma breve introdução

Lean

• 7 Princípios:– Eliminar o desperdício;– Amplificar o aprendizado;– Decidir o mais tarde possível;– Entregar o mais cedo possível;– Fortalecer o time;– Construir integrações;– Ver sempre como um todo;

Page 39: Metodologias Ágeis: Uma breve introdução

Kanban

• Também originado de processos industrias, tem

como foco Gerir a Demanda de trabalho;

Page 40: Metodologias Ágeis: Uma breve introdução

Kanban

• 4 Princípios:

– Comece com o que você faz hoje;– Faça mudanças evolutivamente;– Respeite o processo, os papéis, as responsabilidades

e os títulos;– Encoraje atos de liderança em todos os níveis;

Page 41: Metodologias Ágeis: Uma breve introdução

Kanban

• 6 Práticas:

– Visualize;– Limite o WIP (Trabalho em Processo);– Gerencie o fluxo;– Tenha políticas explícitas;– Implemente ciclos de feedback;– Melhore colaborativamente, evolua experimentalmente;

Page 42: Metodologias Ágeis: Uma breve introdução

Gestão de ProjetosÁgeis

Page 43: Metodologias Ágeis: Uma breve introdução

Gerenciamento de Projetos é mais fácil do que parece

• Em processos ad hoc, temos a Execução;

• Por necessidade, “descobriram” que era interessante termos

um Monitoramento e Controle do projeto;

• Com o passar do tempo, aprendemos a Planejar e a Iniciar o

projeto consultando uma base histórica

• E tudo isso se Encerra no final;

Page 44: Metodologias Ágeis: Uma breve introdução

Iniciação

Monitoramento & Controle

Planejamento

Execução

Encerramento

Integrando o PMBoK com o Agile

Page 45: Metodologias Ágeis: Uma breve introdução

E o Gerente de Projeto... Como que fica?

• Existe sim lugar para o Gerente de Projeto em um projeto ágil;

• Existem vários papéis de lideranças (Coachs, Scrum Masters

ou qualquer outro), e as ações desempenhadas para o sucesso

do projeto são praticamente as mesmas;

• Mas se partimos do princípio que a equipe deve escolher o seu

“líder”, ainda assim esse papel pode coexistir com o GP;

Page 46: Metodologias Ágeis: Uma breve introdução

Saibam... nós não estamos sozinhos ;)

• O PMI possui a Agile Community of Practice

• Há também a Agile Alliance

• Comunidade Ágil do InfoQ

• Comunidades específicas– Scrum Alliance / Lean Community / Scum.org...

Page 47: Metodologias Ágeis: Uma breve introdução

Dúvidas?

Achiles Camilo

PMI-ACP, CAPM, CSM, MCTS

Diretor Adjunto de Certificação

http://br.linkedin.com/in/[email protected]