Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 15
Aula 15
Desenvolvimento
Ágil
• O
que
são
métodos
ágeis
de
programação?
• O
que
é
desenvolvimento
orientado
a
testes?
• Quais
recursos
podem
ser
usados
para
deixar
o
desenvolvimento
mais
eficiente?
• O
que
é
extreme
programming?
• Quais
as
vantagens
da
programação
em
pares?
• O
que
é
Scrum?
Compromissos
• Considere
as
seguintes
contraposições:
– Iterações
entre
indivíduos
vs
ferramentas
e
processos.
– O
so7ware
que
funciona
vs
boa
documentação.
– Colaboração
com
os
clientes
vs
contratos
bem
estabelecidos.
– Respostas
rápidas
às
conAngências
vs
plano
bem
estruturado
de
trabalho.
• Quais
os
prós
e
contras
entre
as
duas
abordagens?
• Qual
a
metodologia
de
desenvolvimento
de
soJware
adotada
no
lado
direito?
• E
qual
a
metodologia
de
desenvolvimento
de
soJware
adotada
no
lado
esquerdo?
Compromissos
• Considere
as
seguintes
contraposições:
– Iterações
entre
indivíduos
vs
ferramentas
e
processos.
– O
soJware
que
funciona
vs
boa
documentação
s u a s p r óprias
– Colaboração
com
os
clientes
vs
contratos
bem
E m
eé
estabelecidos
a v r a s, o qu
pal
agilidade no
– Respostas
rápidas
às
conRngências
vs
plano
bem
o l v im e n to de
estruturado
de
trabalho.
dese n v
software?
• Quais
os
prós
e
contras
entre
as
duas
abordagens?
Por que o
• Qual
a
metodologia
de
desenvolvimento
de
soJware
desenvolvimento
adotada
no
lado
direito?
ágil faz sentido em
Android?
• E
qual
a
metodologia
de
desenvolvimento
de
soJware
adotada
no
lado
esquerdo?
Processos
IteraRvos
• Por
que
processo
iteraRvos
facilitam
a
gerência
de
mudanças
na
especificação
do
so#ware?
• É
possível
que
um
process
possa
ser
terminado
em
apenas
uma
iteração,
e
ainda
ser
chamado
ágil?
Princípios
• SoJware
deve
ser
liberado
frequentemente,
seja
semanalmente,
seja
mensalmente.
O
tempo
de
liberação
deve
ser
o
mais
curto
possível.
• Mudanças
nos
requisitos
são
esperadas
e
bem‐vidas.
• Desenvovledores
e
clientes
devem
trabalhar
juntos,
se
possível
diariamente,
durante
o
projeto.
• Dado
o
suporte
tecnológico
necessário,
os
desenvolvedores
devem
ter
flexibilidade
para
levar
o
projeto
adiante.
• Encontros
face‐a‐face
são
a
melhor
forma
de
disseminar
e
sincronizar
informações
entre
o
Rme
de
desenvolvedores.
• Boas
práRcas
de
projeto
e
programação
devem
ser
conhecidas
e
aplicáveis
sempre
que
possível.
Princípios
• A
métrica
básica
de
sucesso
é
o
so#ware
que
funciona.
• Desenvolvedores
precisam
prover
testes
que
indiquem
que
o
so#ware
está
funcionando.
• O
desenvolvimento
do
soJware
deve
ser
sustentável,
isto
é,
patrocinadores,
desenvolvedores
e
usuários
devem
ser
capazes
de
manter
um
ritmo
constante
durante
um
tempo
indefinido.
• Simplicidade
–
a
arte
de
maximizar
a
quanRdade
de
trabalho
evitado
–
é
essencial.
• Os
Rmes
de
desenvolvimento
de
soJware
devem
ser
capazes
de
se
auto‐organizarem.
• Os
Rmes
devem
ser
capazes
de
se
auto‐ajustarem
durante
o
processo
de
desenvolvimento,
isto
é,
em
intervalos
regulares
o
Rme
precisa
refleRr
sobre
como
se
tornar
mais
efeRvo.
Princípios
• A
métrica
básica
de
sucesso
é
o
so#ware
que
funciona.
• Desenvolvedores
precisam
prover
testes
que
indiquem
que
o
so#ware
está
funcionando.
Seria possível citarmos
• O
desenvolvimento
do
soJware
deve
ser
sustentável,
isto
mais algum princípio
é,
patrocinadores,
desenvolvedores
e
usuários
devem
ser
que ajudasse os
capazes
de
manter
um
ritmo
constante
durante
um
tempo
indefinido.
desenvolvedores a
serem mais ágeis e
• Simplicidade
–
a
arte
de
maximiar
a
quanRdade
de
trabalho
flexíveis?
evitado
–
é
essencial.
• Os
Rmes
de
desenvolvimento
de
soJware
devem
ser
capazes
de
se
auto‐organizarem.
• Os
Rmes
devem
ser
capazes
de
se
auto‐ajustarem
durante
o
processo
de
desenvolvimento,
isto
é,
em
intervalos
regulares
o
Rme
precisa
refleRr
sobre
como
se
tornar
mais
efeRvo.
Princípios
• A
métrica
básica
de
sucesso
é
o
so#ware
que
funciona.
itos
r que requis
• PoDesenvolvedores
precisam
prover
testes
que
indiquem
que
a m t a n ? Será
o
so#ware
está
funcionando.
t o
mud ã o Seria possível citarmos
e s s o a s n
• quO
desenvolvimento
do
soJware
deve
ser
sustentável,
isto
e as p mais algum princípio
e l a s
é,
patrocinadores,
desenvolvedores
e
usuários
devem
ser
o q u e
sabem que ajudasse os
capazes
de
manter
um
ritmo
constante
durante
um
tempo
querem?
indefinido.
desenvolvedores a
serem mais ágeis e
• Simplicidade
–
a
arte
de
maximiar
a
quanRdade
de
trabalho
evitado
–
é
essencial.
flexíveis?
• Os
Rmes
de
desenvolvimento
de
soJware
devem
ser
capazes
de
se
auto‐organizarem.
• Os
Rmes
devem
ser
capazes
de
se
auto‐ajustarem
durante
o
processo
de
desenvolvimento,
isto
é,
em
intervalos
regulares
o
Rme
precisa
refleRr
sobre
como
se
tornar
mais
efeRvo.
Princípios
Alguém
• A
métrica
básica
de
sucesso
é
o
so#ware
que
funciona.
poderi
u is i to s c i t ar algu a
• PoDesenvolvedores
precisam
prover
testes
que
indiquem
que
r qu e r e q
d m exem
t a n t ? S e r
o
so#ware
está
funcionando.
o á e mudan plo
mud a m r ça de
n ã o Seria possível e
citarmos
q u isitos d
e as pessoas
• quO
desenvolvimento
do
soJware
deve
ser
sustentável,
isto
mais algum r
princípio
e a a “vida
l a s l ” ?
sabem o que e
é,
patrocinadores,
desenvolvedores
e
usuários
devem
ser
que ajudasse os
capazes
de
manter
um
ritmo
constante
durante
um
tempo
querem?
indefinido.
desenvolvedores a
serem mais ágeis e
• Simplicidade
–
a
arte
de
maximiar
a
quanRdade
de
trabalho
evitado
–
é
essencial.
flexíveis?
• Os
Rmes
de
desenvolvimento
de
soJware
devem
ser
capazes
de
se
auto‐organizarem.
• Os
Rmes
devem
ser
capazes
de
se
auto‐ajustarem
durante
o
processo
de
desenvolvimento,
isto
é,
em
intervalos
regulares
o
Rme
precisa
refleRr
sobre
como
se
tornar
mais
efeRvo.
Encontros
Face‐a‐Face
• Métodos
de
desenvolvimento
que
se
encaixam
neste
paradigma
“ágil”
em
geral
advogam
encontros
face‐a‐face
entre
os
desenvolvedores.
Por
exemplo,
o
método
scrum
advoga
encontros
diários
de
15
minutos,
em
que
são
respondidas
as
três
perguntas
clássicas:
– O
que
você
fez
desde
o
úlRmo
encontro?
– Que
obstáculos
você
tem
encontrado?
– O
que
você
planeja
fazer
até
o
próximo
encontro?
Encontros
Face‐a‐Face
• Métodos
de
desenvolvimento
que
se
encaixam
Quneste
paradigma
“ágil”
em
geral
advogam
al a
o r t ân c i a de
im encontros
face‐a‐face
tnre
os
desenvolvedores.
p
r o s face-a-
e n c o n t
faPor
exemplo,
o
método
scrum
advoga
encontros
ce?
diários
de
15
minutos,
em
que
são
respondidas
as
três
perguntas
clássicas:
– O
que
você
fez
desde
o
úlRmo
encontro?
– Que
obstáculos
você
tem
encontrado?
– O
que
você
planeja
fazer
até
o
próximo
encontro?
Encontros
Face‐a‐Face
• Métodos
de
desenvolvimento
que
se
encaixam
Quneste
paradigma
“ágil”
em
geral
advogam
al a
o r t ân c i a de
im encontros
face‐a‐face
tnre
os
desenvolvedores.
p
r o s face-a-
e n c o n t
faPor
exemplo,
o
método
scrum
advoga
encontros
ce?
diários
de
15
minutos,
em
que
são
respondidas
as
três
perguntas
clássicas:
É possível
cooperação s
e as
– O
que
você
fez
desde
o
úlRmo
encontro?
partes estão
– Que
obstáculos
você
tem
encontrado?
separadas
geograficame
– O
que
você
planeja
fazer
até
o
próximo
encontro?
nte?
Encontros
Face‐a‐Face
• Métodos
de
desenvolvimento
que
se
encaixam
Alguém poderia
Quneste
paradigma
“ágil”
em
geral
advogam
al a compartilhar as
o r t ân c i a de práticas de
im encontros
face‐a‐face
tnre
os
desenvolvedores.
p
r o s face-a-
e n c o n t reuniões em seu
faPor
exemplo,
o
método
scrum
advoga
encontros
ce?
trabalho?
diários
de
15
minutos,
em
que
são
respondidas
as
três
perguntas
clássicas:
É possível
cooperação s
e as
– O
que
você
fez
desde
o
úlRmo
encontro?
partes estão
– Que
obstáculos
você
tem
encontrado?
separadas
geograficame
– O
que
você
planeja
fazer
até
o
próximo
encontro?
nte?
Refatoração
• Refactoring
é
especialmente
importante
em
desenvolvimento
ágil.
– O
que
é
refactoring?
– Vocês
podem
listar
algumas
técnicas
de
refatoração?
– Porque
esta
importância
especial?
Extreme
Programming
Cartões CRC Protótipos
Estórias
- Estimativas
- Critérios de Projeto
aceitação de testes
- Plano de iteração Programação em pares
Planejamento Codificação
Integração contínua
Liberação
Reavaliação do processo Teste
Testes de unidade
Testes de aceitação
Extreme
Programming
• Que
Rpo
de
diretrizes
seguir
para
definir
quais
classes
compõem
a
aplicação
e
quais
as
responsabilidades
de
cada
classe?
• Qual
é
a
vantagem
da
protoRpagem?
• E
qual
é
o
perigo
da
protoRpagem?
• O
que
é
programação
em
pares?
• A
programação
em
pares
não
desperdiça
um
programador?
Extreme
Programming
• X‐programming
é
um
conceito
relaRvamente
novo,
tendo
surgido
como
tal
em
1999.
Essa
metodologia
de
desenvolvimento
de
soJware
recebeu
muitas
–
muitas
mesmo
–
críRcas.
– Quais
as
possíveis
desvantagens
dessa
abordagem?
• Ainda
assim,
X‐programming
possui
muitas
fãs
e
proponentes,
tanto
na
indústria
quanto
na
academia.
– Alguém
já
parRcipou
de
rodadas
de
X‐programming
em
alguma
empresa?