Desenvolvimento ´Agil
Desenvolvimento ´Agil
Helio Henrique L. C. Monte-Alto
Disciplina: Projeto de Software
2016
Desenvolvimento ´Agil
T´opicos
1 O que ´e o Desenvolvimento ´Agil
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”
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Manifesto ´Agil
Valorizar:
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Manifesto ´Agil
Valorizar:
Indiv´ıduos e intera¸c˜oes acima de processos e ferramentas
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
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
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
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.
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
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
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Motiva¸c˜ao
Os neg´ocios operam com requisitos que mudam rapidamente
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
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
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
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;
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;
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;
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;
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
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
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
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;
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 ´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;
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;
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;
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.
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
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)
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
XP - Extreme Programming
Valores:
Comunica¸c˜ao
Simplicidade
Feedback
Coragem (disciplina) - ”projetar para hoje”
Respeito
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.
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP
Figura: Processo do XP.
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Planejamento
Planning Game, ou Jogo do Planejamento:
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
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”
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”)
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)
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)
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Planejamento
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.
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
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.
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
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Projeto (Design)
Figura: Exemplo de cart˜ao CRC
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Codifica¸c˜ao e Testes
Antes do c´odigo: teste de unidade (TDD)
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)
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
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
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
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)
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
O Processo XP - Ciclo de Vida
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Resumo de um Processo ´Agil com Scrum e XP
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Scrum
Metodologia para gest˜ao e planejamento de software
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
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
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Scrum
Figura: Workflow do Scrum
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)
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
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Scrum - Artefatos
Figura: Scrum Board
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Scrum - Artefatos
Figura: Gr´afico de burndown
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.
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Product Owner
Hist´orias
Prioridades
Datas de release
Backlog
Aceite final
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Time Scrum
Sprint goal
Comprometimento
Multidisciplinaridade
Auto-gerenciamento
Comunica¸c˜ao constante
Autoridade
Desenvolvimento ´Agil
O que ´e o Desenvolvimento ´Agil
Scrum Master
Aplica regras
Resolve impedimentos
Protetor
Garante Produtividade
Facilitador
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.

Desenvolvimento Ágil de Software

  • 1.
    Desenvolvimento ´Agil Desenvolvimento ´Agil HelioHenrique L. C. Monte-Alto Disciplina: Projeto de Software 2016
  • 2.
    Desenvolvimento ´Agil T´opicos 1 Oque ´e o Desenvolvimento ´Agil
  • 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”
  • 4.
    Desenvolvimento ´Agil O que´e o Desenvolvimento ´Agil O Manifesto ´Agil Valorizar:
  • 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.
  • 33.
    Desenvolvimento ´Agil O que´e o Desenvolvimento ´Agil O Processo XP Figura: Processo do XP.
  • 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)
  • 40.
    Desenvolvimento ´Agil O que´e o Desenvolvimento ´Agil O Processo XP - Planejamento
  • 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)
  • 52.
    Desenvolvimento ´Agil O que´e o Desenvolvimento ´Agil O Processo XP - Ciclo de Vida
  • 53.
    Desenvolvimento ´Agil O que´e o Desenvolvimento ´Agil Resumo de um Processo ´Agil com Scrum e XP
  • 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
  • 57.
    Desenvolvimento ´Agil O que´e o Desenvolvimento ´Agil Scrum Figura: Workflow do Scrum
  • 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
  • 60.
    Desenvolvimento ´Agil O que´e o Desenvolvimento ´Agil Scrum - Artefatos Figura: Scrum Board
  • 61.
    Desenvolvimento ´Agil O que´e o Desenvolvimento ´Agil Scrum - Artefatos Figura: 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.