Buscar

Modelos Ágeis de Desenvolvimento de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Modelos Processos Ágeis de 
Desenvolvimento de Software
Aula 2 (continuação)
SSC 130 - Engenharia de Software
1º Semestre de 2019
Profa. Dra. Elisa Yumi Nakagawa e Profa. Dra. Lina Garcés
Estagiários PAE: Brauner Oliveira e Daniel Santos 
1
Lembrando… Modelos “Tradicionais”
Engenharia de 
Requisitos
Projeto
Implementação
Teste
Manutenção
CASCATA
2
Lembrando… Modelos “Tradicionais”
PROTOTIPAÇÃO
3
Lembrando… Modelos “Tradicionais”
Incremental → 
RUP (Rational Unified Process)
4
Quando Usar os Modelos Tradicionais?
R
eq
ui
si
to
s
Tecnologias
Desconhecido
Desconhecido
Co
nh
ec
ido
 
Desenvolvimento planejado
Cascata
Prototipação
Incremental (RUP) … 
Sistemas “Safety-critical“
5
● Desenvolvimento orientado ao planejamento 
● Abordagens dependentes de uma especificação dos 
requisitos completa 
● Abordagens consideradas muito “rígidas” para mercados 
dinâmicos onde os requisitos são pouco conhecidos 
● Versões “funcionais” do software demoram muito para 
serem desenvolvidas e entregues aos clientes → 
software “desatualizado” no momento da implantação
● Pouca interação com os clientes/usuários finais (muitas 
vezes, ao final de cada iteração)
Problemas dos Modelos "Tradicionais"
6
Quando NÃO Usar os Modelos Tradicionais?
R
eq
ui
si
to
s
Tecnologias
Desconhecido
Desconhecido
Co
nh
ec
ido
 
Novos produtos
Novos mercados
Mudanças no modelo de negócio
Muitas incertezas
Clientes não sabem o que querem!
Ambiente complexo, caótico
Alta competitividade
Muita evolução, dinamismo
7
● Produzir software “ÚTIL” em pouco tempo
● Rápido desenvolvimento e implantação do sistema 
funcionando
● Resposta RÁPIDA e FLEXÍVEL às mudanças (novos 
requisitos, novas tecnologias, novos mercados...)
● Maximizar a interação dos clientes, usuários finais, 
e outros stakeholders com o software desde o início 
do projeto.
Necessidade de Modelos Ágeis
8
● No começo dos 80’s com a introdução dos 
processos incrementais e linguagens de 4a geração 
(ex. SQL).
● Na década dos 90’s começaram a aparecer as 
abordagens ágeis
● O movimento tomou força em 2001 com a 
definição do manifesto de desenvolvimento ágil de 
software.
Inícios dos Modelos Ágeis
9
● Indivíduos e interações são MAIS IMPORTANTES do 
que processos e ferramentas
● Software funcionando é MAIS IMPORTANTE do que 
a documentação completa e detalhada
● Colaboração com o cliente é MAIS IMPORTANTE do 
que a negociação de contratos
● Adaptação às mudanças é MAIS IMPORTANTE do 
que seguir um plano inicial
O Manifesto Ágil
http://agilemanifesto.org
10
“O movimento ágil não é anti-metodologias, de fato muito dos líderes 
queremos restaurar a credibilidade da palavra metodologia. Queremos 
restabelecer um equilíbrio. Aprovamos a modelagem, mas não para 
ser armazenada em repositórios. Aprovamos documentação, mas não 
milhares de páginas que não possam ser mantidas nem utilizadas. 
Aprovamos o planejamento, porém reconhecemos suas limitações em 
ambientes turbulentos. Aqueles que estigmatizam os proponentes das 
metodologias ágeis como “hackers” são ignorantes das definições de 
metodologia e de hacker”.
— Jim Highsmith, Tradução - History: The Agile Manifesto
Mas... e os Métodos?
11
1. Satisfação do cliente → Entrega rápida e contínua de software funcional
2. Mudanças de requisitos são bem vindas, inclusive no final da etapa de 
desenvolvimento
3. Entrega de software funcionando frequentemente (semanas ao invés de 
meses)
4. Cooperação próxima e diária entre stakeholders e desenvolvedores
5. Os projetos são construídos em torno de indivíduos motivados e 
confiáveis
6. Uma conversação presencial (face-to-face) é a melhor forma de 
comunicação 
7. Software funcionando é a melhor métrica de progresso
8. Desenvolvimento sustentável, capaz de manter um ritmo de evolução 
constante
9. Atenção contínua à excelência técnica e bom projeto
10. Simplicidade é essencial → Focar no importante (Menos às vezes é mais)
11. Melhores arquiteturas, requisitos, projetos emergem de equipes 
auto-organizadas (proativas, comprometidas)
12. Continuamente, a equipe reflete sobre como ser mais eficientes, e se 
auto-ajustam
12 Princípios do Desenvolvimento Ágil
12
Princípios do Desenvolvimento Ágil
Princípio Descrição
Envolvimento do cliente Clientes fortemente envolvidos no processo de 
desenvolvimento. 
Papel: Fornecer e priorizar novos requisitos, e avaliar as 
iterações do sistema.
Entregas incrementais O sistema é desenvolvido incrementalmente com os 
clientes especificando os requisitos a serem incluídos em 
cada incremento.
Foco nas pessoas não no 
processo
As habilidades dos membros da equipe de 
desenvolvimento devem ser reconhecidas e alocadas aos 
perfis mais adequados.
Adotar mudanças O sistema deve ser projetado para acomodar novas 
mudanças de requisitos.
Manter a simplicidade Focar na simplicidade do software e do processo de 
desenvolvimento. Se possível, eliminar a complexidade do 
sistema.
13
● Adaptive software development (ASD)
● Agile modeling
● Agile unified process (AUP)
● Disciplined agile delivery
● Dynamic systems development method (DSDM)
● Extreme programming (XP)
● Feature-driven development (FDD)
● Lean software development
● Kanban
● Rapid application development (RAD)
● Scrum
● Scrumban
Tipos de Modelos Ágeis
14
SCRUM
Criado em 1995 por Jeff Sutherland e Ken Schwaber 15
Processo, técnica, nem método
SCRUM NÃO É
SCRUM É
Um framework no qual podem ser aplicados 
diferentes métodos e técnicas
16
SCRUM
● Do Produto
● Da Equipe
● Do Ambiente de Trabalho
17
● Pesquisa e identificação de novos mercados, 
tecnologias e capacidades de produtos
● Desenvolver produtos e melhorias
● Lançar produtos e melhorias (por exemplo, várias 
vezes ao dia)
● Desenvolver e manter Cloud ou outros ambientes 
operacionais para produtos
● Manter ou renovar produtos
USOS DO SCRUM
18
TEORIA DO SCRUM
O conhecimento é baseado na 
contínua experiência dos 
indivíduos.
As decisões são feitas baseadas 
nesse conhecimento.
19
PILARES DO SCRUM
Transparência 
dos processos, 
requisitos de 
entrega e do 
estado de cada 
atividade.
A equipe deve 
conhecer o 
estado atual do 
projeto.
Inspeção 
frequente (mas 
sem atrapalhar o 
trabalho) dos 
artefatos e do 
progresso do 
projeto.
O processo deve 
ser adaptado, se 
necessário.
O produto pode 
ser adaptado 
dependendo das 
mudanças 
necessárias.
TRANSPARÊNCIA INSPEÇÃO ADAPTAÇÃO
20
VALORES DA EQUIPE NO SCRUM
21
A EQUIPE SCRUM
Equipe é auto-organizada e multidisciplinar
22
A EQUIPE SCRUM
Responsabilidades:
● Ser o representante da organização interessada 
no produto
● Maximizar o valor do produto entregue pela 
equipe de desenvolvimento
● Definir e priorizar as funcionalidades (requisitos) 
do produto
● Gerenciar o Backlog do Produto
● Garantir o correto entendimento do Backlog do 
Produto pelos membros da equipe
23
A EQUIPE SCRUM
Responsabilidades:
● Garantir a correta condução do SCRUM
● Couch da equipe SCRUM para cumprir os valores, 
princípios, teoria, práticas e regras
● Apoiar as atividades do Product Owner e da 
equipe de desenvolvimento
● Remover impedimentos para atingir os objetivos 
do projeto
● Fazer acontecer
24
A EQUIPE SCRUM
Responsabilidades:
● Entregar periodicamente versões funcionais do 
produto 
● Ser uma equipe auto-gerenciada → Organizar e 
gerenciar seu próprio trabalho
● Ser uma equipe multidisciplinar → juntando 
habilidades de testing, arquitetura,business 
analysis, coding, design
● Transformar o Backlog do Produto em versões do 
produto funcionando → Incrementos do Produto
● Trabalhar coordenadamente em equipe lembrando 
dos 5 valores do SCRUM
25
A EQUIPE SCRUM
Tamanho da Equipe
● Entre 3 e 9 membros (sem incluir o P.O nem o 
S.M)
○ Pequena o suficiente para permanecer ágil
○ Grande o suficiente para atingir os objetivos 
26
EVENTOS NO SCRUM
SPRINT PLANEJAMENTO DO SPRINT SCRUM DIÁRIO
REVISÃO DO 
SPRINT
RETROSPECTIVA 
DO SPRINT
● Caixa ou janela de tempo
○ A equipe de desenvolvimento trabalha 
para entregar uma versão do produto 
funcional → Incremento do Produto
● Cada Sprint é considerado um projeto 
individual
● Duração fixa (2 - 4 semanas)
● Sprints são consecutivos → Não tem volta 
uma vez terminado o tempo
● Não podem ser admitidas mudanças que 
afetem o objetivo do Sprint 27
EVENTOS NO SCRUM
Elementos do Sprint:
SPRINT PLANEJAMENTO DO SPRINT SCRUM DIÁRIO
REVISÃO DO 
SPRINT
RETROSPECTIVA 
DO SPRINT
28
EVENTOS NO SCRUM
SPRINT PLANEJAMENTO DO SPRINT SCRUM DIÁRIO
REVISÃO DO 
SPRINT
RETROSPECTIVA 
DO SPRINT
● Reunião com duração 
de no máximo 8 horas
● Toda a equipe SCRUM 
participa
● Descrição das atividades 
a serem realizadas no 
Sprint
● O SCRUM master verifica se todos entenderam o plano e controla o tempo
● Deve ser respondido:
○ O que será entregue no final da SPRINT? → Objetivo
○ Como esse objetivo será atingido? → Backlog do Sprint 29
EVENTOS NO SCRUM
SPRINT PLANEJAMENTO DO SPRINT SCRUM DIÁRIO
REVISÃO DO 
SPRINT
RETROSPECTIVA 
DO SPRINT
Equipe de 
desenvolvimento!
Benefícios:
● Melhora a comunicação
● Elimina outras reuniões
● Identifica impedimentos e 
soluções
● Promove decisões rápidas
● Melhora o conhecimento da 
equipe de desenvolv.
● Reunião rápida de inspeção 
e adaptação 30
EVENTOS NO SCRUM
SPRINT PLANEJAMENTO DO SPRINT SCRUM DIÁRIO
REVISÃO DO 
SPRINT
RETROSPECTIVA 
DO SPRINT
● Reunião no final de cada 
Sprint
● Duração no máximo de 4 
horas
● Objetivo → revisar o 
incremento do produto e 
ajustar o Backlog do 
produto
● Revisar o orçamento, 
cronograma …
● Saída: O Backlog do produto 
adaptado 31
EVENTOS NO SCRUM
SPRINT PLANEJAMENTO DO SPRINT SCRUM DIÁRIO
REVISÃO DO 
SPRINT
RETROSPECTIVA 
DO SPRINT
● Reunião depois da revisão do Sprint e antes do 
planejamento do novo Sprint
● Objetivo: Melhorar o trabalho em equipe e do 
ambiente de trabalho
● Somente a equipe SCRUM
● Fazer uma análise da última Sprint sobre:
○ O que funcionou bem?
○ O que pode ser melhorado?
○ Quais os compromissos de cada membro 
para o próximo Sprint?
32
ARTEFATOS NO SCRUM
33
ARTEFATOS NO SCRUM
● Backlog do produto
● Backlog do Sprint
● Incremento do produto
34
ARTEFATOS NO SCRUM
Produto 
de 
Software
35
ARTEFATOS NO SCRUM
Quadro Kanban 36
ARTEFATOS NO SCRUM
37
TRANSPARÊNCIA DOS ARTEFATOS
 NO SCRUM
Scrum Master
● Backlog do produto
● Backlog do Sprint
● Incremento do produto
38
ARTEFATOS NO SCRUM
● Backlog do produto
● Backlog do Sprint
● Incremento do produto
Outros : 
● Código documentado, bibliotecas, 
designs de telas, versões dos 
incrementos e do produto ...
● Documento da revisão de cada Sprint
● Produto final
39
SCRUM RESUMIDO
40
Jogo → Escolha o seu Modelo
41
Pergunta 1
Para um projeto software que precisa de uma 
especificação detalhada de requisitos e design 
antes da implementação, você como gerente 
escolheria um modelo:
Ágil Planejado
42
Pergunta 1
Para um projeto software que precisa de uma 
especificação detalhada de requisitos e design 
antes da implementação, você como gerente 
escolheria um modelo:
Ágil Planejado
43
Pergunta 2
Para um projeto software onde é possível e 
necessário obter rapidamente o máximo de 
feedback do cliente, você escolheria uma 
abordagem:
Ágil Planejada
44
Pergunta 2
Para um projeto software onde é possível e 
necessário obter rapidamente o máximo de 
feedback do cliente, você escolheria uma 
abordagem:
Ágil Planejada
45
Pergunta 3
Para um projeto software de grande escala onde a 
equipe está dispersa geograficamente, você 
escolheria uma abordagem:
Ágil Planejada
46
Pergunta 3
Para um projeto software de grande escala onde a 
equipe está dispersa geograficamente, você 
escolheria uma abordagem:
Ágil Planejada
47
Pergunta 4
Para um projeto de software safety-critical com um 
timing de mercado curto, você escolheria uma 
abordagem:
Ágil Planejada
48
Pergunta 4
Para um projeto de software safety-critical com um 
timing de mercado curto, você escolheria uma 
abordagem:
Ágil Planejada
49
Pergunta 5
Para um projeto de software com um tempo de 
vida longo (mais de 30 anos) e que precisa ser 
sustentável ao longo do tempo, você escolheria 
uma abordagem:
PlanejadaÁgil
50
Pergunta 5
Para um projeto de software com um tempo de 
vida longo (mais de 30 anos) e que precisa ser 
sustentável ao longo do tempo, você escolheria 
uma abordagem:
Ágil Planejada
51
Pergunta 6
Você como C.E.O do Nubank, idealizador da ideia 
de negócio, quer inovar no mercado de FinTech. 
Qual abordagem usaria para desenvolver seu 
produto software?
Ágil Planejada
52
Pergunta 6
Você como C.E.O do Nubank, idealizador da ideia 
de negócio, quer inovar no mercado de FinTech. 
Qual abordagem usaria para desenvolver seu 
produto software?
Ágil Planejada
53
Pergunta 7
Você como C.E.O do GymPass, idealizador da 
ideia de negócio, quer inovar no mercado fitness. 
Qual abordagem usaria para desenvolver seu 
produto software?
Ágil Planejada
54
Pergunta 7
Você como C.E.O do GymPass, idealizador da 
ideia de negócio, quer inovar no mercado fitness. 
Qual abordagem usaria para desenvolver seu 
produto software?
Ágil Planejada
55
Pergunta 8
Você tem uma startup no mercado de HealthTech 
no Brasil, e para comercializar seu produto 
software precisa da aprovação da ANS (Agência 
Nacional de Saúde), qual abordagem de 
desenvolvimento usaria?
Ágil Planejada
56
Pergunta 8
Você tem uma startup no mercado de HealthTech 
no Brasil, e para comercializar seu produto 
software precisa da aprovação da ANS (Agência 
Nacional de Saúde), qual abordagem de 
desenvolvimento usaria?
Ágil Planejada
57
Bibliografia
https://www.scrum.org/resources/scrum-guide
Cap 3. Agile Software Development. Ian Sommerville. 2010. Software 
Engineering (9th ed.). Addison-Wesley Publishing Company, , USA
 Kent Beck; James Grenning; Robert C. Martin; Mike Beedle; Jim 
Highsmith; Steve Mellor; Arie van Bennekum; Andrew Hunt; Ken 
Schwaber; Alistair Cockburn; Ron Jeffries; Jeff Sutherland; Ward 
Cunningham; Jon Kern; Dave Thomas; Martin Fowler; Brian Marick 
(2001). "Manifesto for Agile Software Development". Agile Alliance.
58

Continue navegando