Buscar

Aula_0015-Desenvolvimento-Ágil

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 51 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 51 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 51 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

DESENVOLVIMENTO ÁGIL 
Francisco Paulo de Freitas Neto 
paulo.freitas@ifrn.edu.br 
Apodi, RN 
SUMÁRIO 
• INTRODUÇÃO 
 
• PROCESSOS ÁGEIS 
 
• PRINCÍPIOS DA AGILIDADE 
 
• EXTREME PROGRAMMING (XP) 
– EXEMPLO PRÁTICO 
 
• SCRUM 
SUMÁRIO 
• INTRODUÇÃO 
 
• PROCESSOS ÁGEIS 
 
• PRINCÍPIOS DA AGILIDADE 
 
• EXTREME PROGRAMMING (XP) 
– EXEMPLO PRÁTICO 
 
• SCRUM 
INTRODUÇÃO 
• Em 2001 o manifesto para o desenvolvimento ágil de software 
foi assinado pela “Agile Alliance”: 
 
“Desenvolvendo e ajudando outros a desenvolver software, estamos 
desvendando formas melhores de desenvolvimento. Por meio deste 
trabalho, passamos a valorizar: 
Indivíduos e interações entre eles acima de processos e ferramentas 
Software operacional acima de documentação completa 
Colaboração dos clientes acima de negociação contratual 
Respostas a mudanças acima de seguir um plano 
Ou seja, embora haja mais valor nos itens à direita, valorizaremos os da 
esquerda mais ainda” 
INTRODUÇÃO 
• Os métodos ágeis de desenvolvimento surgiram para minimizar 
alguns problemas encontrados na engenharia de software 
convencional. 
 
• Não são aplicáveis a todos os projetos, produtos, pessoas e 
situações; 
 
• Atualmente é impossível prever como uma aplicação irá evoluir 
com o tempo, assim, é preciso ser ágil para dar uma resposta 
rápida a essas mudanças. 
SUMÁRIO 
• INTRODUÇÃO 
 
• PROCESSOS ÁGEIS 
 
• PRINCÍPIOS DA AGILIDADE 
 
• EXTREME PROGRAMMING (XP) 
– EXEMPLO PRÁTICO 
 
• SCRUM 
O QUE É AGILIDADE? 
• Segundo Ivan Jacobson: 
– “Uma equipe ágil é aquela rápida e capaz de responder apropriadamente 
a mudanças. [...] Uma equipe ágil reconhece que o software é 
desenvolvido por indivíduos trabalhando em equipes e que as 
habilidades dessas pessoas, estão no cerne do sucesso do projeto”; 
 
• Mas a agilidade não está somente ligada a resposta à 
mudanças, ela: 
– Incentiva a estruturação e as atitudes em equipes; 
– Enfatiza a entrega rápida do software operacional; 
– Assume que o cliente faz parte da equipe; 
– Reconhece que o planejamento pode ser flexível. 
CUSTO DAS MUDANÇAS 
O QUE É PROCESSO ÁGIL? 
• Se baseia nos preceitos-chave: 
– É difícil afirmar antecipadamente quais requisitos de software irão 
persistir e quais sofrerão alterações; 
– Para muitos, projeto e construção devem ser realizadas em sequência; 
– Análise, projeto, construção e testes não são previsíveis. 
 
• Como então criar um processo capaz de administrar a 
imprevisibilidade? 
– Projetos adaptáveis 
 
• Os processo ágeis devem adaptar-se incrementalmente, para 
isso, precisa de um feedback do cliente. 
SUMÁRIO 
• INTRODUÇÃO 
 
• PROCESSOS ÁGEIS 
 
• PRINCÍPIOS DA AGILIDADE 
 
• EXTREME PROGRAMMING (XP) 
– EXEMPLO PRÁTICO 
 
• SCRUM 
PRINCÍPIOS DA AGILIDADE 
• Existem 12 princípios da agilidade: 
– Satisfazer o cliente pela entrega adiantada e contínua de software valioso; 
– Acolha pedidos de alterações, mesmo que atrasados; 
– Entregue software em funcionamento frequentemente; 
– O pessoal comercial e desenvolvedores devem trabalhar em conjunto; 
– Construa projetos em torno de indivíduos motivados; 
– O método mais eficiente de transmitir informações é uma conversa 
aberta, presencial; 
– Software em funcionamento é a principal medida de progresso; 
– Promovem o desenvolvimento sustentável; 
– Atenção contínua para a excelência técnica; 
– Simplicidade é essencial; 
– Auto-organização da equipe; 
– Auto avaliação. 
SUMÁRIO 
• INTRODUÇÃO 
 
• PROCESSOS ÁGEIS 
 
• PRINCÍPIOS DA AGILIDADE 
 
• EXTREME PROGRAMMING (XP) 
– EXEMPLO PRÁTICO 
 
• SCRUM 
VALORES DO XP 
• Beck define cinco valores base do XP: 
– Comunicação 
– Simplicidade 
– Feedback 
– Coragem 
– Respeito 
VALORES DO XP 
COMUNICAÇÃO 
 
• A XP enfatiza: 
– Colaboração estreita, embora 
informal (verbal) entre clientes, 
desenvolvedores; 
– Estabelecimento de metáforas 
eficazes para comunicar conceitos 
importantes; 
– Feedback contínuo; 
– Evitar documentação volumosa 
como meio de comunicação. 
VALORES DO XP 
SIMPLICIDADE 
 
• A XP restringe os 
desenvolvedores a projetar 
apenas para as necessidades 
imediatas; 
 
• Almeja-se criar um projeto 
simples que possa ser 
implementado em código; 
 
• Para ser melhorado, o produto 
é refabricado. 
VALORES DO XP 
FEEDBACK 
 
• O retorno pode vir: 
– Do próprio software, através dos 
resultados dos testes. São 
realizados testes de unidade; 
– Do cliente, quando o mesmo 
recebe o incremento, as histórias 
do usuário são usadas para 
validar; 
– Da equipe, nas reuniões podem 
também avaliar impactos nos 
custos e cronograma. 
VALORES DO XP 
CORAGEM 
 
• Pode ser compreendido como 
disciplina; 
 
• Muitas equipes falham ao 
tentar projetar para amanhã. 
No XP, deve-se ter disciplina 
(coragem) para projetar para 
HOJE. 
VALORES DO XP 
RESPEITO 
 
• Entre os membros da equipe; 
 
• Entre outros envolvidos e os 
membros da equipe; 
 
• Para o próprio software, pois 
quando os incrementos são 
entregues com sucesso, há 
mais respeito pelo XP. 
 
PROCESSO XP 
• Emprega uma abordagem orientada a objetos como paradigma 
de desenvolvimento; 
• Baseia-se em quatro atividades metodológicas: 
 
 
PROCESSO XP 
PLANEJAMENTO 
 
• Inicia-se com a atividade de 
ouvir que leva ao entendimento 
do ambiente de negócio do 
software; 
 
• O “ouvir” conduz à criação de 
histórias, que descrevem 
características, resultados e 
funcionalidades requeridas do 
software; 
PROCESSO XP 
PLANEJAMENTO 
 
• As histórias são alocadas em 
fichas e o cliente atribui um 
valor (prioridade); 
 
• Os membros da equipe 
estimam um custo em semanas; 
 
• Se o tempo estimado para uma 
história for maior que 3 
semanas, o cliente deve dividi-
la em menores. 
PROCESSO XP 
PLANEJAMENTO 
 
• É necessária a participação do 
cliente nesse ponto, pois junto 
com ele será decidido: 
– Quais histórias serão incluídas em 
cada versão; 
– Data de entrega; 
– Outras questões de projeto. 
 
• O cliente pode acrescentar, 
modificar valores, dividir ou 
acrescentar histórias. 
PROCESSO XP 
PROJETO 
 
• Segue rigorosamente o KIS 
(Keep it simple); 
 
• É sempre melhor um projeto 
simples que uma representação 
mais complexa; 
 
• O projeto de funcionalidades 
extra é desencorajado; 
PROCESSO XP 
PROJETO 
 
• O uso de cartões CRC (Classe-
Responsabilidade-Colaborador) 
é encorajado; 
 
• Esses cartões identificam e 
organizam classes orientadas a 
objetos; 
 
• Os cartões CRC são os únicos 
artefato de projeto. 
PROCESSO XP 
PROJETO 
 
• CRC (Classe -Responsabilidade 
-Colaboração), esses cartões 
mostram: 
– Nome da classe e descrição; 
– Responsabilidade: 
conhecimento interno 
(atributos) e serviços (métodos); 
– Colaboradores das 
responsabilidades (outras 
classes cujos serviços são 
necessitados por uma 
responsabilidade); 
PROCESSO XP 
PROJETO 
 
• Se um problema difícil for 
encontrado, é recomendado 
criar um protótipo dessa parte 
imediatamente chamada de 
solução pontual. 
 
 
PROCESSO XP 
CODIFICAÇÃO 
 
• Antes da codificação há o 
desenvolvimento de casos de 
teste de unidade para cada uma 
das histórias; 
 
• Desse modo, ele foca no que 
deve ser implementado para ser 
testado. 
PROCESSO XP 
CODIFICAÇÃO 
 
• Um conceito do XP para a 
codificação é a programação em 
dupla;• Dois programadores em um 
mesmo computador, 
fornecendo um mecanismo 
para resolução de problemas 
em tempo real. 
PROCESSO XP 
TESTES 
 
• Os testes de unidade devem ser 
criados antes de começar a 
codificação; 
 
• Os testes de integração podem 
ser realizados diariamente; 
 
• Os testes de aceitação são feitos 
a partir das histórias do usuário 
implementados como parte de 
uma versão de software. 
O DEBATE XP 
• Existem muitos questionamentos sobre o XP; 
 
• O XP é um tema muito controverso. 
 
• Algumas questões ainda são levantadas sobre o XP: 
– Volatilidade de requisitos; 
– Necessidades conflitantes; 
– Requisitos levantados informalmente; 
– Falta de projeto formal 
SUMÁRIO 
• INTRODUÇÃO 
 
• PROCESSOS ÁGEIS 
 
• PRINCÍPIOS DA AGILIDADE 
 
• EXTREME PROGRAMMING (XP) 
– EXEMPLO PRÁTICO 
 
• SCRUM 
EXEMPLO PRÁTICO 
• Baseado no site: https://code.google.com/p/extreme-programming-
mds/wiki/UserStories 
 
• Inicialmente temos as Histórias do usuário, que vem do inglês 
(User Stories), trata-se de uma breve descrição de uma 
funcionalidade discutida; 
 
• As histórias devem ser: 
– Independentes 
– Negociáveis 
– Estimáveis 
– Pequenas 
– Testáveis 
EXEMPLO PRÁTICO 
CARACTERÍSTICAS: INDEPENDÊNCIA 
 
• COMO DEVE SER: 
– Um usuário pode entrar com o seu primeiro nome, com o seu último 
nome ou opcionalmente pode entrar com o seu nome do meio; 
 
• COMO NÃO DEVE SER: 
– Um usuário pode entrar com o seu primeiro nome; 
– Um usuário pode entrar com o seu último nome; 
– Um usuário pode, opcionalmente, entrar com o seu nome do meio. 
EXEMPLO PRÁTICO 
CARACTERÍSTICAS: NEGOCIÁVEIS 
 
• COMO DEVE SER: 
– Os dados devem persistir em um banco de dados de qualidade e 
gratuito; 
 
• COMO NÃO DEVE SER: 
– A aplicação deve ser escrita usando Ruby on Rails 
– MySQL será usada para a persistência dos dados 
EXEMPLO PRÁTICO 
CARACTERÍSTICAS: TESTÁVEL 
 
• “Um usuário deve encontrar um software fácil de usar”  “Um 
usuário iniciante deve ser capaz de realizar tarefas completas 
sem treinamento”; 
 
• Um usuário não deve esperar muito tempo para visualizar as 
telas  “Novas telas serão mostradas em 2 segundos em 95% 
dos casos”; 
EXEMPLO PRÁTICO 
EXEMPLOS DE HISTÓRIAS 
 
• Como um [ator] eu quero/preciso/devo/gostaria de/ [ação] para 
[funcionalidade] 
 
• “Como um vendedor responsável pelo setor de livros eu quero 
procurar por livros filtrando por nome para que seja possível verificar 
se o livro X está disponível para pronta entrega”; 
– Um vendedor do setor de livros pode procurar por livros filtrando por nome 
para verificar se o mesmo está disponível para pronta entrega. 
 
• “Como um cliente eu quero ver os filmes disponíveis para locação 
para que eu possa agendar uma reserva na data X”. 
– Um cliente pode visualizar os filmes disponíveis para locação para agendar 
reservas em uma data específica. 
 
 
EXEMPLO PRÁTICO 
EXEMPLO PRÁTICO 
HISTÓRIAS DE USUÁRIO 
 
• US1 – Como gerente eu quero manter o cadastro de vídeos da 
locadora para que seja possível catalogar os vídeos existentes; 
• US2 – Como gerente eu quero manter o cadastro de clientes da 
locadora para que as informações a respeito do cliente estejam 
disponíveis quando necessário; 
• US3 – Como gerente eu quero imprimir um relatório dos vídeos 
pendentes para poder lembrar os clientes da devolução dos vídeos; 
• US4 – Como cliente eu quero ter um cartão que me identifique para 
que eu possa alugar os vídeos; 
• US5 – Como funcionário eu quero manter o controle dos vídeos 
alugados para que seja possível cobrar taxas em caso da devolução 
ocorrer com atraso. 
EXEMPLO PRÁTICO 
CRITÉRIOS DE ACEITAÇÃO 
 
• É o comportamento esperado durante a utilização; 
• O teste de aceitação pode ser visto como a verificação da adequação aos 
critérios de aceitação; 
• Para definir os critérios opta-se por utilizar o desenvolvimento baseado em 
comportamento; 
• Usa-se três blocos: 
– Given: dado um contexto 
– When: quando acontecer um evento 
– Then: então se espera que aconteça algo 
 
• É interessante seguir um modelo para a equipe. 
EXEMPLO PRÁTICO 
CARTÕES CRC 
 
• US1 – Como gerente eu quero manter o cadastro de vídeos da 
locadora para que seja possível catalogar os vídeos existentes; 
• Substantivos: gerente, vídeos, locadora. 
• Verbos: manter, catalogar. 
 
Gerente 
Responsabilidades 
 
*Manter vídeos 
 
*Catalogar vídeos 
Colaboração 
 
Vídeo 
 
Locadora 
Vídeo 
Responsabilidades 
 
Manter dados dos 
vídeos 
Colaboração 
 
Locadora 
Locadora 
Responsabilidades 
 
Manter dados do 
catálogo de vídeos 
Colaboração 
 
Vídeo, gerente 
EXEMPLO PRÁTICO 
CARTÕES CRC 
 
• US2 – Como gerente eu quero manter o cadastro de clientes da 
locadora para que as informações a respeito do cliente estejam 
disponíveis quando necessário; 
• Substantivos: gerente, clientes, locadora, vídeos. 
• Verbos: Manter 
Cliente 
Responsabilidades 
 
*Descrever as 
características dos 
clientes 
Colaboração 
 
 
Locadora 
EXEMPLO PRÁTICO 
CARTÕES CRC 
 
• US3 – Como gerente eu quero imprimir um relatório dos vídeos 
pendentes para poder relembrar os clientes da data de devolução dos 
vídeos 
• Substantivos: gerente, clientes, relatório. 
• Verbos: imprimir, poder, relembrar 
Gerente 
Responsabilidades 
 
*Imprimir 
relatórios 
Colaboração 
 
Locadora, 
relatório 
Relatório 
Responsabilidades 
 
*Descrever as 
características dos 
relatórios 
Colaboração 
 
 
Gerente 
EXEMPLO PRÁTICO 
CARTÕES CRC 
 
• US4 – Como cliente eu quero ter um cartão que me identifique 
para que eu possa alugar os vídeos 
• Substantivos: cliente, cartão, vídeos. 
• Verbos: ter, identificar, alugar 
Cliente 
Responsabilidades 
 
*Alugar vídeos 
Colaboração 
 
Locadora 
Cartão 
Responsabilidades 
 
*Identificar os 
clientes 
Colaboração 
 
cliente 
EXEMPLO PRÁTICO 
CARTÕES CRC 
 
• US5 – Como funcionário eu quero manter o controle dos vídeos 
alugados para que seja possível cobrar taxas em caso da devolução 
ocorrer com atraso 
• Substantivos: funcionário, vídeos. 
• Verbos: manter, cobrar 
Funcionário 
Responsabilidades 
 
*Realizar a locação 
de vídeos 
*Realizar a 
devolução de 
vídeos 
*Cobrar taxas dos 
clientes 
 
Colaboração 
 
 
 
 
Locadora 
SUMÁRIO 
• INTRODUÇÃO 
 
• PROCESSOS ÁGEIS 
 
• PRINCÍPIOS DA AGILIDADE 
 
• EXTREME PROGRAMMING (XP) 
– EXEMPLO PRÁTICO 
 
• SCRUM 
SCRUM 
• Processo iterativo e incremental; 
 
• Foi criado como um framework em 1995 por Ken Schwaber; 
 
• O Scrum divide o projeto em ciclos de duas a quatro semanas 
chamados de sprints, e a ideia é a cada sprint ter um código que 
possa ser entregue ao cliente. 
 
 
SCRUM 
• O Scrum define o Product Backlog como uma lista de tudo que 
se deseja do software, com uma visão macro; 
– Permite o início do projeto sem ter um escopo fechado 
 
• O cliente é representado pelo Product Owner, ele possui 
responsabilidades no desenvolvimento, como: 
– Definir a lista de funcionalidades do sistema 
– Detalhar itens nos planejamentos 
– Sequenciar a entrega dos códigos 
SCRUM 
• No início de cada Sprint faz-se o Sprint Planning, uma reunião 
onde o Product Owner prioriza os itens a serem desenvolvidos 
no Sprint 
– A equipe se compromete de executar um conjunto de atividades e o 
Product Owner de não trazer mais requisitos durente o Sprint 
 
• Após definir as atividades, essas saemdo Product Backlog e vão 
para o Sprint Backlog; 
– Detalha as atividades do Sprint 
 
SCRUM 
• Diariamente são realizadas reuniões chamadas de Daily Scrum 
– São reuniões breves com o intuito de compartilhar os avanços do projeto 
– Alguns livros trazem o termo standup meeting para essas reuniões 
 
• Ao final do Sprint a equipe apresenta as funcionalidades 
implementadas em uma Sprint Review 
 
• Faz-se por fim um Sprint Retrospective como parte do 
planejamento do próximo sprint. 
SCRUM 
REFERÊNCIAS 
• PRESSMAN, Roger. S. Engenharia de software: Uma 
abordagem profissional. Porto Alegre: AMGH, 2011. 
• https://code.google.com/p/extreme-programming-
mds/wiki/UserStories 
• ENGHOLM JUNIOR, Hélio. Análise e Design Orientados 
a Objetos. São Paulo: NOVATEC, 2013. 
• http://www.desenvolvimentoagil.com.br/scrum/ 
• http://www.dsc.ufcg.edu.br/~pet/Artigos/ARTIGO_YP.p
df

Outros materiais