Métodos ágeis dedesenvolvimento de software        Élvio Viçosa     Jerônimo Madruga        Mauro Kade
Súmario•   Introdução•   Scrum•   FDD•   XP
Introdução• Sobre os métodos tradicionais   – São baseados na produção de uma grande quantidade     de documentação   – Sã...
Introdução• O manifesto ágil:   – Satisfação do cliente através de entregas mais cedo e     contínuas, utilizando ciclos d...
Origem das idéias dos métodos agéis
Métodos ágeis• Scrum• Feature Driven Development (FDD)• Extreme Programming (XP)
Scrum• O termo Scrum é uma metáfora para uma situação  em um jogo de Rugby. Esta situação envolve um  grupo denso de pesso...
Scrum• Processos definidos X processos empíricos :   – Um processo definido usa uma base de conhecimento     sobre o proce...
Scrum• Principais conceitos da metodologia Scrum:   –   Time: máximo 7 pessoas   –   Backlog do Produto   –   Sprint: cicl...
Diagrama de atividades do Scrum
Feature Driven Development              (FDD)• Baseado em modelos e guiado por características e  implementado em ciclos c...
Feature Driven Development              (FDD)• Busca-se focar os esforços nas  funcionalidades que sejam úteis aos olhos  ...
Feature Driven Development               (FDD)• Uma feature ou característica é uma função com valor para  o cliente e que...
Feature Driven Development              (FDD)• Papéis no FDD:  – Papéis chaves     • Gerente de projeto, arquiteto-chefe, ...
Feature Driven Development              (FDD)• Práticas no FDD  – Modelagem dos objetos de negócio  – Desenvolver por cara...
Feature Driven Development (FDD)•Processos no FDD
Extreme Programming (XP)• XP é considerado o mais importante movimento  entre os métodos ágeis atualmente• XP não é uma id...
Extreme Programming (XP)Tempo        Clássico     Iterativo     XP                                        Escopo
Extreme Programming (XP)
Extreme Programming (XP)• As práticas do XP:   – Jogo de planejamento      • As decisões sobre os prazos e escopo são toma...
Extreme Programming (XP)• As práticas do XP:   – Testes       • Os testes unitários são escritos pelos programadores com b...
Extreme Programming (XP)• As práticas do XP:   – Cliente disponível      • O cliente ou usuário fica integralmente disponí...
Extreme Programming (XP)• Processo proposto pelo XP:   – Ele se inicia com o cliente escolhendo as funcionalidades que ser...
TDD: Test-Driven Development                        Análise          Test          Driven          Development
Extreme Programming (XP)• Estórias dos usuários:   – Uma estória do usuário é uma unidade funcional   – Ela deve ser enten...
Extreme Programming (XP)• Estórias dos usuários:   – O principal critério de ordenamento das estórias é o     valor para o...
Exemplo de estória                                              Everest           1             10        Cadastro de usuá...
Extreme Programming (XP)• Reportando o progresso de um projeto XP:  – O progresso de cada iteração é medido e    reportado...
Extreme Programming (XP)• Reportanto o progresso de um projeto XP:   – Se o tracker descobre que um programador não vai   ...
Considerações finais• Outros Métodos Ágeis  – ASD (Adaptive Software Development)     • Mission-driven, component-driven (...
Considerações finais      ABORDAGEM TRADICIONAL                      ABORDAGEM ÁGILPreditiva: detalhar o que ainda não é  ...
Comparação das metodologiasMETODOLOGIA            DIRIGIDA A            PRIORIZA  Engenharia da         Construção do     ...
Métodos ágeis dedesenvolvimento de software        Élvio Viçosa     Jerônimo Madruga        Mauro Kade
Próximos SlideShares
Carregando em…5
×

Métodos ágeis de desenvolvimento de software

1.388 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.388
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
29
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Métodos ágeis de desenvolvimento de software

  1. 1. Métodos ágeis dedesenvolvimento de software Élvio Viçosa Jerônimo Madruga Mauro Kade
  2. 2. Súmario• Introdução• Scrum• FDD• XP
  3. 3. Introdução• Sobre os métodos tradicionais – São baseados na produção de uma grande quantidade de documentação – São considerados métodos pesados• Sobre os métodos ágeis – São o contraponto dos métodos tradicionais, sendo considerados métodos leves – As pesquisas sobre eles ainda são relativamente novas – Nem todas as práticas relacionadas aos métodos ágeis são novas
  4. 4. Introdução• O manifesto ágil: – Satisfação do cliente através de entregas mais cedo e contínuas, utilizando ciclos de iteração menores – Aceitação e acomodação de requistos em qualquer tempo do desenvolvimento – Desenvolvedores e usuários trabalhando juntos – Times motivados e em ambientes apropriados – Minimização de documentação e maximização de troca de informação face-a-face – Encorajamento de atitudes reflexivas e contínuo aprendizado
  5. 5. Origem das idéias dos métodos agéis
  6. 6. Métodos ágeis• Scrum• Feature Driven Development (FDD)• Extreme Programming (XP)
  7. 7. Scrum• O termo Scrum é uma metáfora para uma situação em um jogo de Rugby. Esta situação envolve um grupo denso de pessoas, lutando pela posse da bola.• O Scrum não é um método completo. Não requer que seja utilizada nenhuma prática ou técnica para o desenvolvimento de software• Utiliza pequenos grupos• É um método para gerenciamento de um projeto de software
  8. 8. Scrum• Processos definidos X processos empíricos : – Um processo definido usa uma base de conhecimento sobre o processo: são descritos como reproduzíveis – Um processo empírico envolve atividades complicadas, não reproduzíveis e com resultados imprevisíveis• As atividades envolvidas no desenvolvimento de software são complexas e poucas geram resultados repetidos• O Scrum é baseado nos métodos utilizados nas fábricas químicas, que utilizam muito inspeções e ajustes.
  9. 9. Scrum• Principais conceitos da metodologia Scrum: – Time: máximo 7 pessoas – Backlog do Produto – Sprint: ciclo de desenvolvimento mensal – Sprint Backlog – Reunião de Planejamento do Sprint – Reunião do Scrum diário – Comunicação e retroalimentação – ScrumMaster: lider responsável – Incremento de produto potencialmente entregável: funcionalidades implementadas, testadas e com performance adequada
  10. 10. Diagrama de atividades do Scrum
  11. 11. Feature Driven Development (FDD)• Baseado em modelos e guiado por características e implementado em ciclos curtos de iterações• Os ciclos de implementação de uma característica são de no máximo 2 semanas• Interessante para desenvolvedores pois estão permanentemente recebendo novas tarefas• Interessante para os clientes pois vêem os resultados rapidamente
  12. 12. Feature Driven Development (FDD)• Busca-se focar os esforços nas funcionalidades que sejam úteis aos olhos dos clientes...• Procura-se restringir a lista de funcionalidades (características) àquelas que os usuários podem entender
  13. 13. Feature Driven Development (FDD)• Uma feature ou característica é uma função com valor para o cliente e que pode ser implementada em duas semanas ou menos e é descrita da seguinte forma: – <ação><artigo><resultado><preposição><artigo><objeto> • Exemplos: – calcular o total de uma venda – calcular o total de compras de um cliente• As features podem ser agrupadas. Neste caso são assim descritas: – <ação - verbo no particípio><artigo><objeto> • Exemplos: – Comprando um produto – Efetivando um pagamento
  14. 14. Feature Driven Development (FDD)• Papéis no FDD: – Papéis chaves • Gerente de projeto, arquiteto-chefe, gerente de desenvolvimento, programador-chefe, dono-de-classe, especialista no negócio – Papéis de suporte • Gerente de liberações, gerente de configuração, administrador de rede, especialista na ferramenta, testador, documentador – Papéis adicionais • outros...
  15. 15. Feature Driven Development (FDD)• Práticas no FDD – Modelagem dos objetos de negócio – Desenvolver por características – Posse de classes de código fonte • Cada classe tem um responsável e ele é responsável por sua construção e manutenção – Time de características • Cada feature tem um responsável – Builds regulares – Visible Progress Report – Inspeções
  16. 16. Feature Driven Development (FDD)•Processos no FDD
  17. 17. Extreme Programming (XP)• XP é considerado o mais importante movimento entre os métodos ágeis atualmente• XP não é uma idéia totalmente terminada• Os limites de sua aplicação ainda não estão bem definidos• As práticas do método não precisam ser adotadas como um conjunto• O principal objetivo do XP é reduzir o ciclo de desenvolvimento de alguns anos para alguns dias ou horas
  18. 18. Extreme Programming (XP)Tempo Clássico Iterativo XP Escopo
  19. 19. Extreme Programming (XP)
  20. 20. Extreme Programming (XP)• As práticas do XP: – Jogo de planejamento • As decisões sobre os prazos e escopo são tomadas pelos clientes – Pequenas liberações • Devem ser feitas liberações o mais rápido possível para o ambiente de produção – Metáfora • É definida uma metáfora para o objetivo do sistema – Projeto simplificado • O código deve ser sempre o mais simples possível
  21. 21. Extreme Programming (XP)• As práticas do XP: – Testes • Os testes unitários são escritos pelos programadores com bastante freqüência. Os clientes escrevem os testes de aceitação. Os resultados dos testes são publicados e ficam visíveis para todos da equipe – Redesenho • O código vai sendo melhorado aos poucos – Programação em pares • Todo o código é escrito por um par de programadores – Integração contínua • Novas classes e métodos são integrados imediatamente – Propriedade coletiva do código • Qualquer programador, a qualquer momento, pode alterar qualquer porção do código fonte
  22. 22. Extreme Programming (XP)• As práticas do XP: – Cliente disponível • O cliente ou usuário fica integralmente disponível para a equipe – Semana de 40 horas • Se houver necessidade de trabalho extra, é sinal que há problemas – Ambiente aberto • O time trabalha em um ambiente bastante espaçoso. O grupo de programação trabalha em estações de trabalho localizadas no centro do ambiente – Somente regras • As regras podem ser adaptadas e melhoradas, de acordo com a necessidade.
  23. 23. Extreme Programming (XP)• Processo proposto pelo XP: – Ele se inicia com o cliente escolhendo as funcionalidades que serão implementadas. Estas funcionalidades são chamadas de estórias do usuário (user stories). A escolha leva em conta a estimativa de custo/tempo feita pelos programadores – O desenvolvimento é fortemente guiado a testes (TDD: Test- Driven Development). Os programadores escrevem testes unitários, que são classes que automatizam sequências de testes sobre outras classes. São escritos antes do código estar completo – Normalmente no par de programadores procura-se unir um com muita experiência em TDD e outro com pouca ou nenhuma experiência nesta técnica.
  24. 24. TDD: Test-Driven Development Análise Test Driven Development
  25. 25. Extreme Programming (XP)• Estórias dos usuários: – Uma estória do usuário é uma unidade funcional – Ela deve ser entendida pelos clientes e usuários, deve ser testável, deve ter valor para o cliente e deve ser pequena o bastante para que os programadores possam construir dúzias delas em um ciclo de iteração – Ela é formada por uma ou duas sentenças que descrevem algo com valor para o cliente: • O sistema deve verificar se o CPF do cliente é um número válido... – Os programadores deverão ser capazes de estimar o custo/tempo para implementar a estória. Caso isto não seja possível, a estória deve ser subdividida em estórias menores, para que possam ser então estimadas – As estórias do usuários devem ser criadas pelos clientes e usuários. Os desenvolvedores concentram-se nas decisões técnicas
  26. 26. Extreme Programming (XP)• Estórias dos usuários: – O principal critério de ordenamento das estórias é o valor para o negócio – Não existe consenso nisto – O consenso é negociado quando houver problemas de priorização.
  27. 27. Exemplo de estória Everest 1 10 Cadastro de usuário 01 08 2005Acessando-se o menu principal, administradores do sistematêm privilégio de acesso ao módulo de cadastro de usuário. Marcos 02 08 2005O módulo consiste num formulário simples que permite o cadas-tramento de informações como: nome, sobrenome, endereço, Marcioe-mail, telefone, estado e cidade. 2Após o cadastramento, é exibida uma página com a listagem 04 08 2005de usuários. JulianoO evento de cadastramento é registrado em log de atividades. 05 08 2005 1,5
  28. 28. Extreme Programming (XP)• Reportando o progresso de um projeto XP: – O progresso de cada iteração é medido e reportado por uma pessoa chamada tracker – A cada programador, o tracker faz duas perguntas básicas: • Quantos dias você já trabalhou nesta tarefa? • Mais quantos dias você precisa para completar a tarefa?
  29. 29. Extreme Programming (XP)• Reportanto o progresso de um projeto XP: – Se o tracker descobre que um programador não vai conseguir terminar sua tarefa, ele tenta redistribuir o encargo para outro programador que esteja com alguma folga. Caso isto não seja possível, o cliente deve ser informado – As iterações no XP terminam na data estimada. As estórias implementadas, são apresentadas aos clientes, que decidirá se está adequada, a qual, neste caso, será considerada completa. As estórias incompletas serão consideradas para a próxima iteração
  30. 30. Considerações finais• Outros Métodos Ágeis – ASD (Adaptive Software Development) • Mission-driven, component-driven (results), time-limited, timeboxed; risk driven; change tolerant – Crystal Clear • Strong communications; frequent deliveries; reduce overhead; management by milestones and risk lists – DSDM (Dynamic Systems Development Model) • User involvement, stakeholder collaboration; empowered team; frequent delivery; backtracking to reverse changes; high- level requirements baselining; iterative and incremental development; integrated lifecycle testing;
  31. 31. Considerações finais ABORDAGEM TRADICIONAL ABORDAGEM ÁGILPreditiva: detalhar o que ainda não é Adaptativa: conhecer o problema ebem conhecida resolver o crítico primeiroRígida: seguir especificação Flexível: adaptar-se a requisitospredefinida a qualquer custo atuais, que podem mudarBurocrática:controlar sempre, para Simplista: fazer algo simples dealcançar objetivo planejado imediato, e alterar no futuro se for necessárioOrientado a processos: seguí-lospossibilita garantir a qualidade Orientado a pessoas: motivadas, comprometidas e produtivasDocumentação: é a garantia deconfiança Comunicação: é a garantia de confiançaSucesso: é entregar o planejado Sucesso: é entregar o desejadoGerência: sinônimo de “comando-controle”, voltada para o trabalho em Gerência: sinônimo de “liderança-massa com ênfase no papel do orientação”, voltada para o trabalhogerente, com planejamento e do conhecimento, com ênfase nadisciplina fortes criatividade, flexibilidade e atenção às pessoas
  32. 32. Comparação das metodologiasMETODOLOGIA DIRIGIDA A PRIORIZA Engenharia da Construção do Informação Informação Banco de Dados Construção deAnálise Estruturada Procedimentos sistemasAnálise Orientada a Construção de Objetos Objeto Componentes Implementação Funções com valor Métodos Ágeis contínua de funções para o cliente
  33. 33. Métodos ágeis dedesenvolvimento de software Élvio Viçosa Jerônimo Madruga Mauro Kade

×