3. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Em 2001: ”Agile Alliance- ”Alian¸ca dos ´Ageis”;
Composta por Kent Beck e outros dezesseis renomados
desenvolvedores, autores e consultores da ´area de software;
O ”Manifesto para o Desenvolvimento ´Agil de Software”
5. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Manifesto ´Agil
Valorizar:
Indiv´ıduos e intera¸c˜oes acima de processos e ferramentas
6. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Manifesto ´Agil
Valorizar:
Indiv´ıduos e intera¸c˜oes acima de processos e ferramentas
Software operacional acima de documenta¸c˜ao completa
7. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Manifesto ´Agil
Valorizar:
Indiv´ıduos e intera¸c˜oes acima de processos e ferramentas
Software operacional acima de documenta¸c˜ao completa
Colabora¸c˜ao dos clientes acima de negocia¸c˜ao contratual
8. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Manifesto ´Agil
Valorizar:
Indiv´ıduos e intera¸c˜oes acima de processos e ferramentas
Software operacional acima de documenta¸c˜ao completa
Colabora¸c˜ao dos clientes acima de negocia¸c˜ao contratual
Respostas a mudan¸cas acima de seguir um plano
9. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Manifesto ´Agil
Valorizar:
Indiv´ıduos e intera¸c˜oes acima de processos e ferramentas
Software operacional acima de documenta¸c˜ao completa
Colabora¸c˜ao dos clientes acima de negocia¸c˜ao contratual
Respostas a mudan¸cas acima de seguir um plano
Ou seja, embora haja valor nos itens ´a direita, valorizaremos os da
esquerda mais ainda.
Ex: H´a documenta¸c˜ao e h´a planejamento, mas valoriza-se mais os
outros pontos.
10. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Motiva¸c˜ao
Figura: Custos de altera¸c˜oes como uma fun¸c˜ao do tempo de
desenvolvimento
11. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Motiva¸c˜ao
Figura: Custos de altera¸c˜oes como uma fun¸c˜ao do tempo de
desenvolvimento com Agile
12. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Motiva¸c˜ao
Os neg´ocios operam com requisitos que mudam rapidamente
13. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Motiva¸c˜ao
Os neg´ocios operam com requisitos que mudam rapidamente
Imposs´ıvel produzir um conjunto est´avel de requisitos
14. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Motiva¸c˜ao
Os neg´ocios operam com requisitos que mudam rapidamente
Imposs´ıvel produzir um conjunto est´avel de requisitos
O software precisa evoluir rapidamente
15. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Motiva¸c˜ao
Os neg´ocios operam com requisitos que mudam rapidamente
Imposs´ıvel produzir um conjunto est´avel de requisitos
O software precisa evoluir rapidamente
Os incrementos precisam ser entregues rapidamente
16. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Princ´ıpios das Metodologias ´Ageis
Maior prioridade: satisfazer o cliente com entrega cont´ınua
e o mais cedo poss´ıvel de software com valor de neg´ocio;
17. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Princ´ıpios das Metodologias ´Ageis
Maior prioridade: satisfazer o cliente com entrega cont´ınua
e o mais cedo poss´ıvel de software com valor de neg´ocio;
Aceitar mudan¸cas: Mudan¸cas de requisitos s˜ao sempre bem
vindas;
18. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Princ´ıpios das Metodologias ´Ageis
Maior prioridade: satisfazer o cliente com entrega cont´ınua
e o mais cedo poss´ıvel de software com valor de neg´ocio;
Aceitar mudan¸cas: Mudan¸cas de requisitos s˜ao sempre bem
vindas;
Cliente e desenvolvedor trabalham em conjunto diariamente
no projeto;
19. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Princ´ıpios das Metodologias ´Ageis
Maior prioridade: satisfazer o cliente com entrega cont´ınua
e o mais cedo poss´ıvel de software com valor de neg´ocio;
Aceitar mudan¸cas: Mudan¸cas de requisitos s˜ao sempre bem
vindas;
Cliente e desenvolvedor trabalham em conjunto diariamente
no projeto;
Entregar software funcionando com frequˆencia: escala de
semanas at´e meses, com preferˆencias a per´ıodos curtos;
20. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Princ´ıpios das Metodologias ´Ageis
Maior prioridade: satisfazer o cliente com entrega cont´ınua
e o mais cedo poss´ıvel de software com valor de neg´ocio;
Aceitar mudan¸cas: Mudan¸cas de requisitos s˜ao sempre bem
vindas;
Cliente e desenvolvedor trabalham em conjunto diariamente
no projeto;
Entregar software funcionando com frequˆencia: escala de
semanas at´e meses, com preferˆencias a per´ıodos curtos;
Os desenvolvedores devem ser motivados e devem ter
flexibilidade para levar o projeto adiante
21. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Princ´ıpios das Metodologias ´Ageis
Maior prioridade: satisfazer o cliente com entrega cont´ınua
e o mais cedo poss´ıvel de software com valor de neg´ocio;
Aceitar mudan¸cas: Mudan¸cas de requisitos s˜ao sempre bem
vindas;
Cliente e desenvolvedor trabalham em conjunto diariamente
no projeto;
Entregar software funcionando com frequˆencia: escala de
semanas at´e meses, com preferˆencias a per´ıodos curtos;
Os desenvolvedores devem ser motivados e devem ter
flexibilidade para levar o projeto adiante
Sincroniza¸c˜ao e coordena¸c˜ao: encontros face-a-face
22. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Princ´ıpios das Metodologias ´Ageis
Maior prioridade: satisfazer o cliente com entrega cont´ınua
e o mais cedo poss´ıvel de software com valor de neg´ocio;
Aceitar mudan¸cas: Mudan¸cas de requisitos s˜ao sempre bem
vindas;
Cliente e desenvolvedor trabalham em conjunto diariamente
no projeto;
Entregar software funcionando com frequˆencia: escala de
semanas at´e meses, com preferˆencias a per´ıodos curtos;
Os desenvolvedores devem ser motivados e devem ter
flexibilidade para levar o projeto adiante
Sincroniza¸c˜ao e coordena¸c˜ao: encontros face-a-face
Excelˆencia t´ecnica e Boas pr´aticas de projeto e
programa¸c˜ao devem ser aplicadas sempre que poss´ıvel
23. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Princ´ıpios das Metodologias ´Ageis
M´etrica base de sucesso: o software funciona e o cliente
est´a satisfeito;
24. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Princ´ıpios das Metodologias ´Ageis
M´etrica base de sucesso: o software funciona e o cliente
est´a satisfeito;
Software funciona ⇒ Testes!!
25. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Princ´ıpios das Metodologias ´Ageis
M´etrica base de sucesso: o software funciona e o cliente
est´a satisfeito;
Software funciona ⇒ Testes!!
Desenvolvimento sustent´avel: stakeholdes devem manter o
ritmo durante um tempo indefinido;
26. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Princ´ıpios das Metodologias ´Ageis
M´etrica base de sucesso: o software funciona e o cliente
est´a satisfeito;
Software funciona ⇒ Testes!!
Desenvolvimento sustent´avel: stakeholdes devem manter o
ritmo durante um tempo indefinido;
Simplicidade - a arte de maximizar a quantidade de trabalho
evitado - ´e essencial;
27. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Princ´ıpios das Metodologias ´Ageis
M´etrica base de sucesso: o software funciona e o cliente
est´a satisfeito;
Software funciona ⇒ Testes!!
Desenvolvimento sustent´avel: stakeholdes devem manter o
ritmo durante um tempo indefinido;
Simplicidade - a arte de maximizar a quantidade de trabalho
evitado - ´e essencial;
Times auto-organiz´aveis;
28. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Princ´ıpios das Metodologias ´Ageis
M´etrica base de sucesso: o software funciona e o cliente
est´a satisfeito;
Software funciona ⇒ Testes!!
Desenvolvimento sustent´avel: stakeholdes devem manter o
ritmo durante um tempo indefinido;
Simplicidade - a arte de maximizar a quantidade de trabalho
evitado - ´e essencial;
Times auto-organiz´aveis;
Times capazes de se auto-ajustarem: em intervalos regulares,
´e necess´ario refletir sobre como tornar o processo mais
efetivo.
29. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
´Ageis x RAD
N˜ao admite prot´otipo
Equipes democr´aticas
Membros da equipe s˜ao auto-gestores
Pr´aticas ´ageis focam nos problemas e os resolvem o mais
r´apido poss´ıvel
Equipes se comunicam
Equipes demonstram apenas trabalhos completos
Equipes incluem tamb´em testadores e especialistas com
experiˆencia do usu´ario
30. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Exemplos de Metodologias ´Ageis
Scrum
XP (eXtreme Programming)
FDD (Feature Driven Development)
Crystal
DSDM (Dynamic Systems Development Method)
OpenUP (Open Unified Process)
AUP (Agile Unified Process)
31. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
XP - Extreme Programming
Valores:
Comunica¸c˜ao
Simplicidade
Feedback
Coragem (disciplina) - ”projetar para hoje”
Respeito
32. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
XP - Extreme Programming
Princ´ıpios B´asicos:
Feedback r´apido
Presumir simplicidade
Mudan¸cas incrementais
Abra¸car mudan¸cas
Trabalho de alta qualidade.
34. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Planejamento
Planning Game, ou Jogo do Planejamento:
35. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Planejamento
Planning Game, ou Jogo do Planejamento:
Feita no in´ıcio de cada itera¸c˜ao
Feito em conjunto com cliente
36. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Planejamento
Planning Game, ou Jogo do Planejamento:
Feita no in´ıcio de cada itera¸c˜ao
Feito em conjunto com cliente
1a Atividade: ”Ouvir”
37. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Planejamento
Planning Game, ou Jogo do Planejamento:
Feita no in´ıcio de cada itera¸c˜ao
Feito em conjunto com cliente
1a Atividade: ”Ouvir”
Cria¸c˜ao de ”hist´orias de usu´arios”(similar a ”casos de uso”)
38. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Planejamento
Planning Game, ou Jogo do Planejamento:
Feita no in´ıcio de cada itera¸c˜ao
Feito em conjunto com cliente
1a Atividade: ”Ouvir”
Cria¸c˜ao de ”hist´orias de usu´arios”(similar a ”casos de uso”)
Cliente atribui valores `as hist´orias (prioridades)
39. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Planejamento
Planning Game, ou Jogo do Planejamento:
Feita no in´ıcio de cada itera¸c˜ao
Feito em conjunto com cliente
1a Atividade: ”Ouvir”
Cria¸c˜ao de ”hist´orias de usu´arios”(similar a ”casos de uso”)
Cliente atribui valores `as hist´orias (prioridades)
Membros da equipe atribuem custos `as hist´orias (medido em
semanas de desenvolvimento)
Pode ser usado Planning Poker
Uma hist´oria: m´aximo 3 semanas
Clientes e devs decidem como agrupar e ordenar hist´orias para
a vers˜ao seguinte (pr´oximo incremento)
41. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Planejamento
Final da itera¸c˜ao:
Depois de entregue o incremento: calcular a velocidade do
projeto. Reflex˜ao. Ajuste de estimativas.
42. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Planejamento
Final da itera¸c˜ao:
Depois de entregue o incremento: calcular a velocidade do
projeto. Reflex˜ao. Ajuste de estimativas.
Cliente pode acrescentar hist´orias, mudar valor de uma
existente, dividir hist´orias ou elimin´a-las
43. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Planejamento
Final da itera¸c˜ao:
Depois de entregue o incremento: calcular a velocidade do
projeto. Reflex˜ao. Ajuste de estimativas.
Cliente pode acrescentar hist´orias, mudar valor de uma
existente, dividir hist´orias ou elimin´a-las
Equipe deve reconsiderar as hist´orias para pr´oximo incremento
com base nos valores e custos.
44. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Projeto (Design)
KISS - Projeto Simples
Projeto de funcionalidade extra ´e desencorajado
Cartoes CRC
Prot´otipos (solu¸c˜ao pontual)
Refatora¸c˜ao
45. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Projeto (Design)
Figura: Exemplo de cart˜ao CRC
46. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Codifica¸c˜ao e Testes
Antes do c´odigo: teste de unidade (TDD)
47. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Codifica¸c˜ao e Testes
Antes do c´odigo: teste de unidade (TDD)
Teste de unidade exercitam as hist´orias (requisitos)
48. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Codifica¸c˜ao e Testes
Antes do c´odigo: teste de unidade (TDD)
Teste de unidade exercitam as hist´orias (requisitos)
Programa¸c˜ao em pares (pair programming)
Garantia de qualidade em tempo real (revis˜ao)
Desenvolvedores focados
49. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Codifica¸c˜ao e Testes
Antes do c´odigo: teste de unidade (TDD)
Teste de unidade exercitam as hist´orias (requisitos)
Programa¸c˜ao em pares (pair programming)
Garantia de qualidade em tempo real (revis˜ao)
Desenvolvedores focados
Integra¸c˜ao cont´ınua
50. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Codifica¸c˜ao e Testes
Antes do c´odigo: teste de unidade (TDD)
Teste de unidade exercitam as hist´orias (requisitos)
Programa¸c˜ao em pares (pair programming)
Garantia de qualidade em tempo real (revis˜ao)
Desenvolvedores focados
Integra¸c˜ao cont´ınua
Conjunto total de testes de unidade ⇒ Testes de Integra¸c˜ao e
Valida¸c˜ao
51. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Codifica¸c˜ao e Testes
Antes do c´odigo: teste de unidade (TDD)
Teste de unidade exercitam as hist´orias (requisitos)
Programa¸c˜ao em pares (pair programming)
Garantia de qualidade em tempo real (revis˜ao)
Desenvolvedores focados
Integra¸c˜ao cont´ınua
Conjunto total de testes de unidade ⇒ Testes de Integra¸c˜ao e
Valida¸c˜ao
Testes de aceita¸c˜ao (testes do cliente)
54. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Scrum
Metodologia para gest˜ao e planejamento de software
55. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Scrum
Metodologia para gest˜ao e planejamento de software
Premissa: processo de desenvolvimento ´e complexo e
imprevis´ıvel
56. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Scrum
Metodologia para gest˜ao e planejamento de software
Premissa: processo de desenvolvimento ´e complexo e
imprevis´ıvel
Adota uma abordagem emp´ırica em rela¸c˜ao ao processo
58. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Scrum - Atividades
Principais atividades (cerimˆonias):
Reuni˜ao de Planejamento da Sprint
Reuni˜ao di´aria (daily meeting ou standup meeting)
Revis˜ao da Sprint
Retrospectiva da Sprint (reflex˜ao)
59. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Scrum - Artefatos
Principais artefatos:
Product Backlog (conjunto de requisitos)
Sprint Backlog (itens do backlog a serem desenvolvidos na
sprint)
Gr´afico de burndown
62. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Scrum - Principais Pap´eis
Principais pap´eis:
Product Owner: prioriza os requisitos do sistema, enumerados
no chamado Product Backlog;
Scrum Master: age como facilitar para a equipe de
desenvolvimento;
Equipe/Time Scrum: grupo respons´avel pelas tarefas
definidas.
63. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Product Owner
Hist´orias
Prioridades
Datas de release
Backlog
Aceite final
64. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Time Scrum
Sprint goal
Comprometimento
Multidisciplinaridade
Auto-gerenciamento
Comunica¸c˜ao constante
Autoridade
65. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Scrum Master
Aplica regras
Resolve impedimentos
Protetor
Garante Produtividade
Facilitador
66. Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Leitura Recomendada
SOMMERVILLE, I. Engenharia de Software. Dispon´ıvel na
biblioteca.
PRESSMAN, R. S. Engenharia de Software: Uma Abordagem
Profissional. Dispon´ıvel na biblioteca.