Buscar

I_Teorico

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

Inserir Título Aqui 
Inserir Título Aqui
Projetos Ágeis 
com Extreme 
Programming (XP)
Introdução ao Extreme Programming
Responsável pelo Conteúdo:
Prof. Me. Artur Ubaldo Marques Junior
Revisão Textual:
Prof.ª Dr.ª Selma Aparecida Cesarin
Nesta unidade, trabalharemos os seguintes tópicos:
• XP – Extreme Programming;
• Histórias dos Usuários;
• Planning Game (Jogo do Planejamento);
• Pequenos Lançamentos.
Fonte: iStock/Getty Im
ages
Objetivos
• Familiarizar o estudante com o método XP de desenvolvimento de software.
Caro Aluno(a)!
Normalmente, com a correria do dia a dia, não nos organizamos e deixamos para o 
último momento o acesso ao estudo, o que implicará o não aprofundamento no material 
trabalhado ou, ainda, a perda dos prazos para o lançamento das atividades solicitadas.
Assim, organize seus estudos de maneira que entrem na sua rotina. Por exemplo, você 
poderá escolher um dia ao longo da semana ou um determinado horário todos ou alguns 
dias e determinar como o seu “momento do estudo”.
No material de cada Unidade, há videoaulas e leituras indicadas, assim como sugestões 
de materiais complementares, elementos didáticos que ampliarão sua interpretação e 
auxiliarão o pleno entendimento dos temas abordados.
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de 
discussão, pois estes ajudarão a verificar o quanto você absorveu do conteúdo, além de 
propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de 
troca de ideias e aprendizagem.
Bons Estudos!
Introdução ao Extreme Programming
UNIDADE 
Introdução ao Extreme Programming
Contextualização 
Extreme Programming – XP tem sido o alicerce de desenvolvimento dos times ágeis, 
juntamente com SCRUM, principalmente, nos últimos anos. Isso se deve à simplificação 
e às práticas utilizadas pelos times ágeis que se valem de XP para o desenvolvimento eficaz 
de software. XP, como toda metodologia, é baseada em práticas. 
Teles (2006) nos elucida que as “Práticas em XP representam aquilo que você verá 
as equipes XP fazendo diariamente. Práticas por si só são estéreis. A menos que você 
dê algum propósito, dado por um conjunto de valores, elas não fazem muito sentido”.
Além disso, ele nos lembra de que as práticas dependem da situação e do contexto 
para o seu uso. Dessa forma, com as inevitáveis mudanças de situação, outras práticas 
devem ser utilizadas para resolver a situação problema e XP possui muitas práticas; 
você poderá usar à vontade.
Por fim, dentro do XP, as práticas podem ser outras, de acordo com a situação en-
frentada; porém, os valores não têm de mudar para se adaptar a uma nova situação. 
Alguns novos princípios podem vir a ser necessários quando se muda de domínio.
A síntese de XP é tornar você melhor e podemos resumir isso na frase do mesmo au-
tor: “As práticas aplicadas são direcionadores para você saber onde está e aonde poderá 
chegar. Portanto, você progride em direção ao estado ideal de desenvolvimento eficaz”.
6
7
XP – Extreme Programming
Extreme Programming – XP, em português, Programação Extrema, é uma meto-
dologia para desenvolvimento de software ágil, cujos primeiros conceitos apareceram 
no final da década de 80, do século XX. Porém, a partir de um trabalho escrito por 
Kent Beck (um dos 17 participantes do manifesto ágil, em 2001) nessa mesma época, 
o XP foi efetivamente criado e dado o seu corpo de práticas. 
Beck, em extensão, além de ser reconhecido como criado do XP, também criou o 
TDD – Test Driven Development ou Desenvolvimento Guiado por Testes, metodo-
logia muito eficaz utilizada atualmente por grandes Empresas como a Microsoft.
Como grande parte das metodologias ágeis, XP utiliza como base de seu desenvolvi-
mento um ciclo de vida de software, baseado em 4 etapas distintas:
• Planejamento;
• Projeto;
• Codificação;
• Testes.
Planejam
ento
Projeto
Codi�caç
ão
Teste
Incremento de software
 Velocidade de projeto calculada
Versão
Teste de aceitação
Teste de unidades
 integração contínua
Soluções pontuais
 protótipos
Projeto simples
 cartões CRCHistórias de usuários
 valores
 critérios de teste de aceitação
Plano de iteração
Programação em pares
Refatoração
Figura 1 – Ciclo de Vida do Processo XP
Fonte: Adaptado de Pressman, 2006
7
UNIDADE 
Introdução ao Extreme Programming
Em linhas gerais, o projeto inicia com a fase de planejamento, ou seja, uma descrição 
baseada em histórias do usuário que gera um entendimento do domínio do problema 
utilizando cartões índices feitos pelos usuários, nos quais estão os requisitos de enten-
dimento do negócio. É feito um jogo de planejamento usando técnicas de estimativa 
ágeis, em que o que interessa é a complexidade envolvida na funcionalidade. Na fase 
de projeto, são oferecidas soluções e alguns protótipos para que a equipe e os usuários 
se sintam confiantes em desenvolver. A codificação leva em consideração pequenas ite-
rações com entregas constantes, sempre levando em conta a refatoração (melhoria do 
código deixando-o limpo; porém, sem mudar suas características de funcionamento). 
Os testes são obrigatórios em XP, normalmente feitos para cada unidade de software, de 
tal forma que, antes mesmo da codificação, esses testes, uma vez passados, geram ver-
sões que após verificação e correção são validadas, e integradas ao código em execução 
ou, se preferir, uma nova versão do software. Isso se repete até que o software final seja 
entregue em funcionamento. 
Resumo funcional baseado em: PRESSMAN, 2006, p. 72
XP não é um framework baseado em processos enfadonhos, como pudemos obser-
var no curtíssimo resumo do ciclo de vida XP, na Figura 1.
Ele pode ser considerado o primeiro método ágil funcional; além disso, promove a 
iteração de forma circular, levando em consideração ao menos 12 práticas de projeto e 
codificação levadas pelo time de forma extrema; daí o nome XP.
Temos de conhecer as práticas de maneira introdutória, e para isso Kent Beck (cria-
dor do XP) desenvolveu um processo que permite o uso dessas práticas a qualquer 
tempo, conforme descrito por Hutagalung (2006), que versa resumidamente sobre as 
práticas, definindo-as:
1. Histórias de usuários: as histórias do usuário podem ser visualizadas 
como uma versão menor do caso de uso. Desta forma, o cliente define 
o mais breve possível a especificação da nova aplicação (características, 
valor, prioridade). Essas histórias serão a base para a equipe de projeto 
fazer estimativa de custos e gerenciamento do projeto;
2. Pequenos lançamentos: enfatiza atualizações de versões pequenas, 
simples, mas frequentes do aplicativo. Cada requisito recém-adiciona-
do será imediatamente incorporado e o sistema será relançado;
3. Metáfora (esquemas de nomeação padronizados): desenvolvedo-
res e programadores devem aderir aos padrões de nomes, nomes de 
classes e métodos;
4. Propriedade coletiva: todo o código é considerado de propriedade 
de toda a equipe e não de um indivíduo. Portanto, todo o código é 
revisado e atualizado por todos;
5. Padrão de codificação: estilos e formatos de codificação devem ser os 
mesmos para permitir a compatibilidade entre os membros da equipe. 
Essa abordagem resulta em uma colaboração mais rápida;
6. Design simples: sempre procure a implementação do sistema que seja 
tão fácil quanto possível;
8
9
7. Refatoração: o aplicativo deve ser continuamente ajustado e aprimora-
do por todos os membros da equipe. Isso requer uma comunicação ex-
tremamente boa entre os membros para evitar a duplicação de trabalho;
8. Teste: toda pequena liberação (chamada de bloco de construção) deve 
passar nos testes antes de ser liberada. A singularidade do XP nesse 
aspecto é que os testes são criados primeiro e, em seguida, o código 
do aplicativo é desenvolvido para atender e passar nos desafios dos 
testes pré-escritos;
9. Programação em par: os programadores XP trabalham em pares. 
Todo o código é desenvolvido por dois programadores que trabalham 
juntos em uma única máquina.A expectativa é que a programação 
em pares produza códigos de maior qualidade com o mesmo custo ou 
com menor custo;
10. Integração contínua: as compilações de software são concluídas vá-
rias vezes ao dia. Dessa forma, todos os desenvolvedores podem evitar 
fragmentações de trabalho, pois eles liberam e integram continuamente 
o código juntos;
11. Semana de trabalho de 40 horas: Mantenha as condições men-
tais e físicas de estar funcionando sem trabalhar mais do que o 
corpo pode suportar;
12. Cliente no local: o cliente deve ser visto como parte integrante do pro-
jeto. O cliente deve estar disposto a estar sempre disponível para ga-
rantir que o projeto esteja no caminho certo. (HUTAGALUNG, 2006)
Extreme Programming
Valores
Práticas
Jogos do Planejamento
Pequenas Liberações
Metáforas
Desenho Simples
Teste
Refaturação
Programação em Pares
Donos Coletivos do Código
Integração Contínua
Semana de 40h
Cliente on-site
Usar Padrões de Codi�cação
Comunicação
Simplicidade
Coragem
Feedback
Figura 2 – XP Valores e Práticas
Os valores pelos quais XP se guia são o que norteia as equipes que programam nesse 
framework. Esses valores lastreiam as 12 práticas nomeadas na parte à direita do mapa 
mental, de tal maneira que são as atividades diárias realizadas pelas equipes durante o 
ciclo de vida. Disponível em: https://goo.gl/xWSEN4.
Fonte: Adaptado pelo autor
Para entendermos a forma como essas 12 práticas funcionam, precisamos enten-
der, inicialmente, suas 2 divisões.
As práticas, conforme Telles (2006), capacitam os desenvolvedores a responder com 
confiança às mudanças nos requisitos do cliente, mesmo no final do ciclo de vida do de-
senvolvimento do projeto. 
9
UNIDADE 
Introdução ao Extreme Programming
A filosofia do XP preza pelo trabalho em equipe; em outras palavras, gerentes, clien-
tes e desenvolvedores são parceiros iguais numa equipe colaborativa.
Fundamentam-se, como vimos na Figura 2, em 4 valores.
Vamos conhecer suas definições com maior profundidade nas outras unidades, mas 
agora é importante defini-las minimamente:
• Simplicidade: manter o design do software simples e limpo;
• Feedback: obter feedback do que se está fazendo mediante emprego de testes, e 
fazer isso desde o primeiro dia do projeto;
• Coragem e Respeito: entregar o Sistema aos clientes o mais cedo possível e im-
plementar as mudanças conforme sugerido. Cada pequeno sucesso aprofunda o 
respeito pelas contribuições únicas de cada membro da equipe.
Muita gente boa de desenvolvimento de software, porém com visão um pouco mío-
pe, acaba por entender que se há um framework, ele deve ser ultra estruturado, docu-
mental e com palavras solenes sobre comportamentos etc. etc. ... etc. ... 
Nada mais errado!
XP está mais para filosofia, ideologia, e é tenazmente seguido pelos times ágeis, 
pois fundamenta a forma de comportamento de um time de altíssima eficiência, exigido 
pelos tempos modernos, não é mesmo?
Você precisa entender isso e começar a adotar em sua vida, na área de TIC – Tec-
nologia da Informação e Comunicação, tanto para desenvolver softwares, como em 
qualquer projeto que exija desenvolvimento.
Essas práticas são necessárias e muito queridas para que uma Empresa ou equipe se 
destaquem pelo que produzem.
Para que você possa entender esse turbilhão de valores e práticas e suas aplicações, 
é necessário conhecer a história por trás do XP, incluindo seus autores e fases, bem 
como saber de seus avanços e de que forma eles influenciaram as metodologias ágeis e 
lean usadas e festejadas nos dias atuais.
Vamos lá!
A história do XP é bastante interessante e é apresentada por Cunningham (2008) 
com alguns eventos impactantes no tempo, que servem de balizamento para entender-
mos desde a crise do software, da década de 70 do século XX, e a sequência de ações 
que proporcionaram o ambiente propício para o surgimento dos métodos ágeis e, em 
particular, do XP:
• Tudo começou quando em meados dos anos de 1970, Christopher 
Alexander recomenda um processo incremental para o design de 
software;
• Nessa mesma época, Seymour Papert, conecta o ato de programar 
com a aprendizagem e Alan Kay inclui modelagem orientada a objetos 
para apoiar os processos desenvolvidos por Christopher Alexander;
10
11
• Outros eventos ocorreram nesse tempo, como programação aos pa-
res, na verdade uma pratica da década de 60, que foi redescoberta 
por Ward e Kent Beck, que mais tarde criaria o XP, desenvolveram 
15 frameworks diferentes para testes ágeis durante vários meses;
• Ward usou parte desses 15 frameworks ágeis criados por eles, no de-
senvolvimento de um software comercial chamado WyCash. Além disso, 
ele introduz práticas específicas para preservar a flexibilidade do projeto 
em face das demandas do cliente e dos horários fluídos. XP começava a 
se desenhar;
• O Hillside Group um grupo de desenvolvedores defende durante a 
crise de software da década de 70 que quando se trata de desenvolvi-
mento de software usando metodologias inovadoras, o alto risco que 
se corre desenvolvendo por iterações pode gerar uma alta recompen-
sa. Esse grupo nutre um conjunto de valores que se tornam essenciais 
para o XP que ainda não foi gerado;
• Kent Beck escreve novos padrões de programação para um cliente 
durante uma consultoria. Apesar de esses métodos serem bem rece-
bidos, seu efeito não foi o que se esperava. Porém a evolução desses 
novos padrões cresce e se torna para a linguagem Smalltalk os seus 
padrões e melhores práticas;
• Em 1999, Kent Beck foi contratado e trabalha no projeto WellFleet 
para a Hewitt Associates. Aqui ele primeiro ensina consistentemente 
uma equipe como mentor e consultor. Acaba difundindo uma das gran-
des práticas que se tornarão um fundamento e distinção tanto do XP 
e TDD, estamos falando dos Testes de Unidade, enfim o projeto entra 
em produção com muito pouco problemas em 1999;
• Kent Beck é novamente contratado como consultor para executar o 
projeto de folha de pagamento da Chrysler. Ele encontra proble-
mas mais profundos, diz à alta administração para começar de novo 
o projeto. Este é o ponto em que Kent “gira os botões”, aproveitando 
sua experiência com Smalltalk, Patterns e Hillside e cria o XP e o 
apresenta para o mundo. (CUNNINGHAM, 2008)
XP é uma metodologia tão importante nos dias atuais, que grande parte das Em-
presas de software a colocam com uso obrigatório em times ágeis em conjunto com 
SCRUM, para uma complementar a outra e potencializar o efeito desejado para um 
software excelente e rápido. 
Nas palavras de Martin Fowler, um dos signatários do Manifesto Ágil e colaborador 
de Kent Beck no XP:
XP foi um dos primeiros métodos ágeis, na verdade, ele foi o método 
ágil dominante no final dos anos 90 e início dos anos 00, antes de 
Scrum se tornar dominante. Muitas pessoas o consideram como o 
principal catalisador que chamou a atenção para métodos ágeis, e 
superior ao Scrum como base para iniciar um desenvolvimento ágil.
Como todos sabem, é muito difícil um sistema ser desenvolvido num ambiente calmo, 
tranquilo e sem mudança de requisitos.
11
UNIDADE 
Introdução ao Extreme Programming
Na realidade, é muito difícil que os projetos sigam o fluxo sequencial do modelo 
em cascata, por exemplo, bem como se percebe a dificuldade em se identificar todos 
os requisitos e metas no início dos projetos, pois os requisitos tendem a mudar com-
pletamente durante o tempo e, por fim, se seguirmos métodos tradicionais, como o 
cascata, uma versão funcional só pode ser obtida no final do processo, o que vale dizer 
que, muitas vezes, o negócio mudou completamente, ou pior, deixou de existir e o 
projeto, por consequência, foi cancelado.
A palavra que diferencia um método tradicional de um método ágil é ADAPTAÇÃO!
XP é tremendamente adaptativo em frente aos métodos tradicionais e isso é verda-
deiro, porque ele responde prontamente às mudanças.
A base disso são alguns princípios ágeis seguidos, como:
• Escrever o teste de maneira precoce, focado naautomação (uso de softwares de 
teste automatizados), já que é provável que esse teste esteja errado de alguma for-
ma até a entrega ocorrer;
• Design Incremental;
• Implantação diária;
• Alto nível de envolvimento do cliente;
• Integração contínua;
• Ciclos de desenvolvimento curtos;
• Planejamento incremental;
• Base de código único;
• Abraçar a mudança, no lugar de evitar a mudança.
Itens importantes sem dúvida, mesmo assim insuficientes na opinião de Kent que, 
quando trabalhou no projeto da Chrysler, percebeu 4 dimensões importantes que não 
podem ser deixadas ao lado em XP, pois definem rumos de sucesso ou fracasso. 
São elas:
• Você precisa melhorar a comunicação!
• Você precisa buscar simplicidade!
• Você precisa obter feedback sobre o quão bem você está fazendo as coisas!
• Você precisa sempre prosseguir com coragem!
Claro, para que você possa vivenciar isso, é necessário estar trabalhando num ambiente 
democrático de respeito às ideias e com gente de alto nível profissional e humano. 
Isso não existirá se você estiver imerso numa empresa autocrática ou baseada numa 
estrutura de cargos orientados a graus de parentesco ou amizade, e não em competên-
cia e mérito, como vemos fortemente ancorada nos países de origem anglo-saxônica, 
germânica, gaulesa ou asiática que, de uma forma ou de outra, também são os líderes 
em educação, desenvolvimento humano e engenharia de software. 
12
13
Creio que nós, latinos, ainda temos muito que aprender com eles, não é mesmo?
XP tem a fama que seu nome traz, que é levar todas as suas práticas ao extremo 
(são 12 lembra?). 
A seguir, na Tabela 1, você poderá ver algumas referências diretas dos extremos de XP.
Tabela 1 – Algumas práticas levadas ao extremo por XP
Boas práticas são Levadas ao extremo
Revisões de código Rever o código o tempo todo (programação em pares)
Testando Todo mundo vai testar o tempo todo (testes de unidade); até mesmo os clientes (teste funcional e de aceitação)
Desenhar Faça parte do negócio diário de todos (refatoração)
Simplicidade Sempre deixe o sistema com o design mais simples que suporta a funcionalidade atual (a coisa mais simples que possa funcionar)
Arquitetura Todo mundo vai trabalhar definindo e refinando a arquitetura o tempo todo (uso de metáforas)
Teste de integração Integrar e testar várias vezes ao dia (integração contínua)
Iterações curtas Faça iterações realmente curtas: horas, e não semanas, meses ou anos (o jogo de planejamento esclarece)
Fonte: https://goo.gl/7SgvfL
XP segue 4 atividades consideradas padrão para o processo de desenvolvimento de 
software, a saber, e isso não é ciclo de vida; não confunda – são apenas atividades; por-
tanto, o time de desenvolvimento XP ou está:
• Fazendo codificação: codificação é considerada o único produto importante do 
processo de desenvolvimento do Sistema. Começa a codificação no início do dia e 
se entrega algo que funcione no fim do dia; isso é impreterível. Isso também signi-
fica que os codificadores não podem ser juniores!
• Elaborando ou realizando testes: é muito enfático que se deve sempre verificar 
se uma função funciona por meio do teste. XP se vale dos Testes de Unidade, que 
são testes automatizados, e o programador trabalhará o maior número possível de 
vezes para tentar quebrar o código que ele está escrevendo;
• Ouvindo: a habilidade e o conhecimento nos aspectos técnicos devem ser acom-
panhados pela capacidade de sermos bons ouvintes. Essa capacidade permiti-
rá que os desenvolvedores entendam o que os clientes querem e desenvolvam 
soluções que correspondam às necessidades e aos desejos dos clientes, o mais 
próximo possível. Portanto, habilidades psicossociais e emocionais dos desenvol-
vedores não são mais somente porque foi feita uma escolha de sorte pelo pessoal 
do RH. São itens obrigatórios; um programador/analista sem essas habilidades, 
infelizmente, não é mais considerado para contratação, principalmente, para 
softwares comerciais. É importante desenvolver essas habilidades;
• Projetando: a simplicidade do XP não significa que ele possa excluir o processo de 
design. Sem um projeto adequado no longo prazo, o Sistema se torna muito complexo 
e os projetos podem parar. Importante criar uma estrutura de projeto que organize a 
lógica no Sistema, de modo que muitas dependências no Sistema possam ser evitadas.
13
UNIDADE 
Introdução ao Extreme Programming
Então, podemos enxergar graficamente os grandes eventos durante o desenvolvi-
mento XP, conforme mostrado pela figura a seguir:
Requisitos
do Projeto
Histórias
do Usuário
Casos
de Teste
Tarefas Conclusão
Usuário
Testando
Teste Unitários
Automatizados
Métricas das Histórias
Realizadas
Encontros de
planejamento
de liberação
Testes de
Aceitação
Entradas
do Usuário
Figura 3 – Visão simplifi cada dos grandes eventos no desenvolvimento XP
Fonte: Adaptado de umsl.edu
Histórias dos Usuários
Histórias do usuário é a pedra de toque dos métodos ágeis; elas foram iniciadas 
quando o XP foi criado e implantado para valer num projeto da Chrysler Motors; hoje 
uma empresa do grupo FCA. 
Sabemos que, normalmente, a primeira fase de um projeto e mesmo de um framework 
trata da elicitação de requisitos dos usuários que, de forma tradicional, trata de um levanta-
mento formal das necessidades de um projeto de software.
O problema é que esse documento formal feito por analistas obtido do pessoal de ne-
gócios e das áreas demandantes, apesar de relativamente minucioso e rico em detalhes, 
alicerça a estrutura inicial em que era feito o planejamento do Sistema para posterior 
codificação e entrega ao fim do projeto do software pronto.
Pois é, o problema começava exatamente aí. O negócio mudava no decorrer do pro-
jeto; já estávamos na década de 90, do século XX, próximo ao bug do milênio e outros 
momentos críticos para a indústria de software e também num evento especificamente 
cataclísmico, batizado um pouco mais tarde de Globalização.
Esse evento foi possível graças às Tecnologias de Comunicação que estavam evo-
luindo de forma voraz, principalmente, os protocolos de comunicação como os ISO e 
TCP-IP, que começaram a se solidificar durante a década de 1990. 
A Globalização e as novas TICs, incluindo Internet, browser e a recém-criada 
WWW colaboraram decisivamente para destruir as fronteiras físicas dos negócios, 
colocando tudo num cenário digital. Portanto, a velocidade da competição entre em-
presas antes transnacionais, agora globais, começou a acelerar de forma vertiginosa 
e a mudar as regras do jogo de forma geral e o comportamento e processamento 
dos dados em particular.
14
15
Isso sem dúvida criou mudanças nos negócios, regras e formas de ver as próprias orga-
nizações que refletiram de forma indubitável, no software e na forma de se fazer software. 
E ela aconteceu da pior forma possível, na forma de reclamações sobre fracassos 
na entrega, escopos totalmente desfocados da necessidade dos negócios e uma acele-
ração e custos somente comparável à quantidade de atraso gerado e posterior cance-
lamento, o que colocou a área de TI em xeque-mate.
Para enfrentar esses tempos difíceis, foi necessário entender que não se podia mais 
manter o usuário ou cliente longe do desenvolvimento do software, e que a primeira 
coisa que mudava num projeto de software eram os próprios requisitos, principalmen-
te, da forma com que eram feitos em documentos extensos e burocráticos.
É aí que a maré muda, e se percebeu que, para fazer frente a requisitos que muda-
vam, era necessário manter o que se chamou de histórias dos usuários sempre atuali-
zadas e a melhor forma de se fazer isso é mantendo os usuários e os clientes presentes 
durante o desenvolvimento e facilitar a vida de todas por meio de cartões índices (nada 
mais é do que uma ficha de catalogação bibliográfica)... ok, não se usa mais isso... 
quem disse?
Hoje, serve para escrever as famosas histórias do usuário, que nada mais são do que 
pequenas versões, bem curtas mesmo, com uma narrativa coesa sobreum comporta-
mento ou até uma funcionalidade do software que, em XP e nos métodos ágeis em 
geral, ajudam as equipes a manterem o norte, rumo ao sucesso.
Agora que já introduzimos você a esse importante artefato, vamos conhecer mais 
detalhadamente sua história.
As histórias dos usuários nas metodologias ágeis, em geral, e notadamente no XP, 
são a unidade fundamental das atividades dos times de desenvolvimento, como disse-
mos logo acima.
Release planning
As a ____, I
want to be able
to ____so that
____
Might have a initial
estimate (perhaps for
both analysis and
development), and an
expression of technical
and business and
con�dence that this is
real and achievable
Initial Story List
Iteration planning
As a ____, I
want to be able
to ____so that
____
Release Story List
As a ____, I
want to be able
to ____so that
____
I will know this
is done when
______
I will know this
is done when
______
To do this I must:
1 - ________
2 - ________
Iteration Story List
Development team breaks
out the detail of work
needed to pass test
Possible automation of
the acceptance test
More detaleid
estimate, and a
speci�c acceptance
test - low con�dence
stories might be
“spiked” or prototyped
Figura 4 – Histórias e seu fluxo pelo XP
Fonte: https://goo.gl/RohTas
15
UNIDADE 
Introdução ao Extreme Programming
As histórias de usuários são pequenas, muito menores do que outros artefatos de re-
quisitos, como casos de uso ou cenários de uso. É importante reconhecer que todas as 
declarações feitas num Index Card (Cartões de Índice) representam uma única história de 
usuário, por vez.
Mas, como escrevemos histórias de usuários? 
Vejamos a Figura 5:
• Os estudantes podem comprar passes de estacionamento mensais on-line;
• Os passes de estacionamento podem ser pagos por cartões de crédito;
• Os passes de estacionamento podem ser pagos via PayPal;
• Professores podem inserir as notas dos alunos;
• Os estudantes podem obter o cronograma atual do seminário;
• Os alunos podem solicitar transcrições oficiais;
• Os alunos só podem se inscrever em seminários para os quais tenham pré-requisitos;
• Transcrições estarão disponíveis on-line por meio de um navegador padrão.
Figura 5 – Exemplo de História Inicial do Usuário e Exemplo de Ficha de História de Usuário formal, 
digitalizada de sua fonte original. Ambas por Scott W. Ambler, 2009, criador do framework XP
Fonte: Adaptado de Scott W. Ambler
16
17
Vamos deixar uma coisa clara. 
Quem escreve história de usuários são... os usuários. 
É claro!
A equipe de desenvolvimento recebe, entende, analisa e pensa, sim, sabemos que isso 
é difícil, mas sim, eles pensam na arquitetura para atender aquelas histórias, na forma 
com que a interação humano computador será feita pelos designers, e demais aspectos 
do projeto do software.
Veja o que Ambler (2009) escreve a respeito disso, já que as partes interessadas – 
os clientes e usuários são “partes interessadas” – nesse projeto de software e para que 
as coisas aconteçam de forma correta devem ser estimuladas a escrever as “histórias 
de usuários”. 
Ele escreveu passo a passo o que você deve fazer para ser bem sucedido com as 
histórias de usuários:
• As partes interessadas escrevem histórias de usuários: um concei-
to importante é que os envolvidos no projeto escrevem as histórias do 
usuário, não os desenvolvedores. As histórias de usuários são simples 
o suficiente para que as pessoas aprendam a escrevê-las em poucos 
minutos, por isso faz sentido que os especialistas do domínio (as partes 
interessadas) as escrevam;
• Use a ferramenta mais simples: as histórias de usuários geralmente 
são escritas em fichas de índice. Os cartões de índice são muito fáceis 
de trabalhar e, portanto, são uma técnica de modelagem inclusiva;
• Lembre-se dos requisitos não funcionais: as histórias podem ser 
usadas para descrever uma ampla variedade de tipos de requisitos;
• Indique o tamanho estimado: inclua uma estimativa para o esforço 
de implementar a história do usuário. Uma maneira de estimar é atri-
buir pontos de história do usuário (planning poker) a cada cartão, uma 
indicação relativa de quanto esforço levará um par de programadores 
para implementar a história. A equipe sabe então que, se atualmente, 
leva em média 2,5 horas por ponto da carta; portanto, a história do 
usuário fica muito mais fácil de estimar. Então 2,5h x uma carta com 
5 pontos, teremos uma atividade cuja duração seria de aproximada-
mente 12,5h;
• Indique a prioridade: os requisitos, incluindo os defeitos identificados 
como parte de suas atividades de testes paralelos independentes ou por 
suas operações e esforços de suporte, são priorizados pelos envolvidos 
no projeto e adicionado à pilha no local apropriado. Você pode facil-
mente manter uma pilha de requisitos priorizados movendo as cartas 
na pilha conforme apropriado. O cartão de história do usuário inclui 
uma indicação da prioridade. Podemos usar uma escala de um a dez, 
sendo 1 a prioridade mais alta e 10 a mais baixa;
• Inclua um identificador exclusivo: o cartão também deverá possuir 
um identificador exclusivo para a história do usuário. A única razão 
para isso é manter a rastreabilidade entre a história do usuário e ou-
tros artefatos, em particular testes de aceitação. (AMBLER, 2009)
17
UNIDADE 
Introdução ao Extreme Programming
Bom, histórias de usuários são legais e muito úteis para o projeto. Mas como já vi-
venciamos, há usuário que se empolga e escreve mais um pouco. Claro que isso nem 
sempre é “non sense” ou “blá, blá, blá”. 
Podemos realmente ter histórias de usuários muito grandes, que chamamos de EPO-
PEIAS, ou grupos de histórias, que chamamos de TEMAS.
Vejamos como são estruturadas.
• Epopeias: são grandes histórias de usuário, normalmente, aquelas que são gran-
des demais para serem implementadas em uma única iteração e, portanto, pre-
cisam ser desagregadas em histórias de usuário menores, em algum momento 
(mais cartões índices). Normalmente, possuem prioridade mais baixa. Observa-
ção: não faz sentido desagregar uma epopeia de baixa prioridade, porque você 
estaria investindo tempo em algo que nunca poderá abordar, a menos que uma 
parte da epopeia seja de alta prioridade e precise ser abordada imediatamente 
pelo time de desenvolvimento;
• Tema: é uma coleção de histórias de usuários relacionadas. Por exemplo, para um 
Sistema de registro universitário, pode haver temas em torno dos alunos, gerencia-
mento de Cursos, geração de transcrição, administração de notas, processamen-
to financeiro. São usados para organizar histórias em lançamentos (iterações) ou 
organizá-las para que várias subequipes possam trabalhar nelas.
Você deve ter percebido que as histórias de usuários são o alfa e o ômega do XP.
A partir dessas histórias, os desenvolvedores costumam escrever os testes unitários 
baseados nelas. 
As histórias possuem as noções básicas da funcionalidade e são perfeitas para testes, 
porque são breves e caracterizam os recursos mais importantes do produto acabado. 
Os testes em XP, como já frisamos diversas vezes anteriormente neste texto, são 
escritos antes de começar a criação do código do próprio produto de software. 
Essa abordagem do pessoal de desenvolvimento visa a economizar tempo e a aten-
der aos termos do projeto.
Planning Game (Jogo do Planejamento)
O Jogo do Planejamento permite-nos encontrar rapidamente um plano aproxima-
do de projeto do software, e depois refiná-lo à medida que o projeto avança. 
Poderíamos dizer que o Jogo do Planejamento é uma reunião; é um ponto vital de 
interação entre cliente e desenvolvedor.
Uma reunião acontece com a equipe trabalhando em uma pilha de cartões de índice 
que contêm as histórias do usuário e são tratados durante o Jogo de Planejamento. 
18
19
Cartões de índice são uma ferramenta altamente eficaz. A função dos cartões é 
conectar os clientes e os desenvolvedores para atingirem seu objetivo comum, ou 
seja, o Sistema. 
Figura 6 – Exemplo de Cartão de Índice.“O cartão de índice não menciona uma programação declarativa. 
Ele também não especifica qual linguagem, sistema operacional ou hardware deve ser usado. 
O cliente simplesmente escreve em linguagem natural o que precisa. Ele não 
se importa como o desenvolvimento fará isso ou resolverá o problema.”
Fonte: extremeperl.org
Há uma clara separação de responsabilidades durante o Jogo de Planejamento. Vejamos 
quem são os atores que entram nesse jogo em XP.
Tabela 2 – Responsabilidades durante o Jogo de Planejamento
O negócio Técnico
Definir o escopo 
do lançamento
Estimar quanto tempo cada 
história do usuário levará
Definir a ordem de entrega (quais 
histórias são feitas primeiro)
Comunicar os impactos técnicos da 
implementação de requisitos
Definir datas e horários 
de lançamento
Divide as histórias do usuário em 
tarefas e aloque o trabalho
Fonte: https://goo.gl/XCPAaR
Podemos realizar as estimativas em cima desses cartões de histórias utilizando o 
Planning Poker, muito útil para as equipes ágeis. 
O Jogo de Planejamento é feito levando-se em consideração a expectativa de mu-
danças no projeto. Lembra-se dos problemas com os requisitos?
O planejamento do XP aborda duas questões-chave no desenvolvimento de software: 
• Prever o que será realizado até a data de vencimento; 
• Determinar o que fazer a seguir. 
A ênfase, como você poderá notar, está em direcionar, dar rumo ao projeto.
19
UNIDADE 
Introdução ao Extreme Programming
Duas etapas importantes em XP trabalham com esses conceitos. Lacey (2018) as 
descreve como:
• O Planejamento de Liberação é uma prática em que o Cliente apre-
senta os recursos desejados aos programadores e os programadores 
estimam sua dificuldade. Com as estimativas de custos em mãos e com 
o conhecimento da importância dos recursos, o Cliente estabelece um 
plano para o projeto. Os planos de lançamento inicial são necessaria-
mente imprecisos: nem as prioridades nem as estimativas são verdadei-
ramente sólidas e, até que a equipe comece a trabalhar, não saberemos 
com que rapidez elas serão. Até mesmo o primeiro plano de lançamen-
to é preciso o suficiente para a tomada de decisões, no entanto, e as 
equipes de XP revisam o plano de lançamento regularmente;
• Planejamento de Iteração é a prática pela qual a equipe recebe orien-
tação a cada duas semanas. As equipes de XP criam softwares em “ite-
rações” de duas semanas, entregando softwares úteis ao final de cada 
iteração. Durante o planejamento de iteração, o cliente apresenta os 
recursos desejados para as próximas duas semanas. Os programadores 
dividem-nas em tarefas e estimam seu custo (em um nível mais refinado 
de detalhes do que no Planejamento da Liberação). Com base na quan-
tidade de trabalho realizado na iteração anterior, a equipe se inscreve 
para o que será realizado na iteração atual. (LACEY, 2018)
Beck (1999) escreveu que: “O jogo de planejamento XP tem dois participantes no 
processo de planejamento: Negócios e Desenvolvimento”.
• Desenvolvedores: são as pessoas que irão realizar a implementação do que foi 
definido no cartão;
• Negócio (Cliente): são as pessoas que vão dizer aos desenvolvedores o que eles 
querem que seja implementado. O cliente decide a prioridade do trabalho a ser feito 
e o que está dentro e fora do escopo. 
Ainda, Kent Beck, criador do XP, coloca um peso muito grande no jogo de plane-
jamento. Ele é o que determina o grau de complexidade de cada história de usuário e, 
como num jogo, ele tem diversas fases. 
Vamos pegar o texto original de Beck (1999) e estudá-lo. Existem 3 fases do jogo do 
planejamento em XP:
1. Exploração: esta é uma maneira de tentar descobrir coisas novas que 
o sistema é capaz de fazer. O propósito da fase de exploração é dar aos 
jogadores uma apreciação do que todo o sistema deve eventualmente 
fazer. Exploração tem três movimentos:
a. Escreva uma história: negócios escreve uma história descrevendo 
algo que o sistema precisa fazer. As histórias são escritas em car-
tões de índice, com um nome e um parágrafo curto descrevendo o 
propósito da história;
b. Estimar uma história: desenvolvimento estima quanto tempo a 
história levará para implementar. Se o desenvolvimento não puder 
estimar a história, ela pode pedir aos negócios que esclareçam ou 
dividam a história;
20
21
c. Uma história é contada: se Desenvolvimento não puder estimar 
uma história completa ou se os negócios perceberem que parte 
de uma história é mais importante do que o restante, os negócios 
podem transformar uma história em duas ou mais histórias.
2. Compromisso: será tomada a decisão quanto aos passos a serem 
seguidos na realização dos requisitos.O propósito da fase de com-
promisso é que as empresas escolham o escopo e a data da próxima 
versão e que o desenvolvimento se comprometa com a entrega. 
Possui 4 movimentos a saber:
a. Classificar por Valor: negócios classifica as histórias em 3 pilhas:
I. Aquelas sem as quais o sistema não funcionará; 
II. Aquelas que são menos essenciais, mas fornecem valor comer-
cial significativo;
III. Aquelas que seria bom ter.
b. Classificar por risco: desenvolvedores classificam as histórias em 
3 pilhas:
I. Aquelas que podem estimar com precisão;
II. Aquelas que podem ser razoavelmente estimadas;
III. Aquelas que não podem estimar. 
c. Definir velocidade: desenvolvedores informam a rapidez com que 
a equipe pode programar em tempo de engenharia ideal por mês;
d. Escolher o escopo: a empresa escolhe o conjunto de cartões na li-
beração, seja definindo uma data para a engenharia estar completa 
e escolhendo cartões com base em sua estimativa e velocidade do 
projeto, seja escolhendo os cartões e calculando a data;
e. Direção: esta é a orientação dos desenvolvedores para o requisito 
do projeto. O propósito da fase de direção é a atualização do plano 
com base no que é aprendido pelo desenvolvimento e pelos negó-
cios durante o tempo. A fase de direção tem quatro movimentos:
I. Iteração: no início de cada iteração (de 1 até 3 semanas), Negó-
cios selecionam uma iteração das histórias mais valiosas a serem 
implementadas. As histórias da primeira iteração devem resultar 
em um sistema que é executado de ponta a ponta;
II. Recuperação: se o desenvolvimento perceber que ele superesti-
mou sua velocidade, ele poderá solicitar a Negócios que é o con-
junto de histórias mais valioso a ser retido no release atual com 
base na nova velocidade e nas estimativas;
III. Nova história: se os negócios perceberem que precisa de uma 
nova história durante o meio do desenvolvimento de um lança-
mento, ele poderá escrever a história. O desenvolvimento estima 
a história, depois o negócio remove as histórias com a estimativa 
equivalente do plano restante e insere a nova história;
IV. Reestimativa: se o desenvolvimento achar que o plano não 
fornece mais um mapa preciso do que fazer, ele pode reestimar 
todas as histórias restantes e definir a velocidade novamente. 
(BECK, 1999)
21
UNIDADE 
Introdução ao Extreme Programming
Como você percebe, o jogo possui uma dinâmica própria e eficaz; o time de desenvol-
vimento consegue determinar o grau de complexidade das histórias e o time de negócios 
as prioridades, e juntos conseguem determinar a ordem das entregas em geral.
Pequenos Lançamentos
O importante numa metodologia ágil como XP é garantir um fluxo contínuo de en-
tregas de software operacional e para isso nos valemos de iterações curtas. 
Os usuários ficam felizes, pois podem perceber os avanços e que o produto que uti-
lizam em seu dia a dia tem exatamente o efeito funcional que desejam.
Vejamos o que Baird (2002) nos diz:
[...] a única maneira de garantir que se esteja desenvolvendo o software 
que o cliente espera é manter os ciclos de lançamento os mais curtos pos-
síveis. Mesmo que o lançamento seja pequeno (se preferir pode chamar 
de Iteração), em XP ele ainda deve agregar valor comercial ao cliente. 
Como o cliente faz parte do planejamento de lançamentos, ele trabalha com a 
equipe de desenvolvimentopara definir as histórias do usuário e a ordem de imple-
mentação, como já vimos; além disso, a equipe de desenvolvimento pode usar cada 
lançamento como um ponto de verificação, em que ambos podem medir com a 
precisão das estimativas. 
Durante o estágio de planejamento, os desenvolvedores estimaram as histórias do 
usuário com base em sua taxa de transferência e dificuldade esperadas. Agora podemos 
comparar o planejado Xreal, usando essas lições aprendidas para a próxima iteração.
Os ciclos de lançamento pequenos são viáveis, porque estamos construindo as his-
tórias de usuários mais importantes primeiros, e nosso ambiente automatizado (ne-
cessidade de software de automação de testes e deployment como o JUnit e o JAVA 
Deployment Toolkit), facilitam a integração frequente de software.
As equipes XP praticam pequenos lançamentos (iterações) de 2 maneiras importantes:
• Primeiro: a equipe de desenvolvimento libera software testado e pronto para 
execução, entregando o valor comercial escolhido pelo Cliente, a cada iteração. 
O Cliente pode usar este software para qualquer finalidade, seja avaliação ou até 
mesmo liberação para usuários finais, o que é altamente recomendado;
• Segundo: a equipe libera direto para os usuários finais; a ideia é que testem e va-
lidem com frequência. Se houver algo ainda imperfeito, é prontamente ajustado. 
Dessa forma, quando estão seguros, liberam seguindo a primeira maneira narrada 
logo acima. Os projetos XP têm atualizações diárias, e isso é importante estar claro 
em sua mente.
22
23
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
 Vídeos
3 Formas de Quebrar Histórias de Usuário – Rodrigo Vieira (2016)
https://youtu.be/OAVR9Zc5DeI
Gerenciamento de Requisitos sem Mistério – Fabício Laguna (2016)
https://youtu.be/jajQyzOpLaE
Histórias de Usuário – Fatto Consultoria e Sistemas (2015)
https://youtu.be/sEtiCJfXTE8
Métodos Ágeis e Documentação de Software
https://youtu.be/3Smbhnmue7Y
O que é Requisito – Fatto Consultoria e Sistemas (2015)
https://youtu.be/ooO6hyLuFNU
23
UNIDADE 
Introdução ao Extreme Programming
Referências
BAIRD, S. Extreme Programming Practices in Action, p. 3. 2002. Disponível em: 
<http://www.informit.com/articles/article.aspx?p=30187&seqNum=4>. Acesso em: 
8 maio 2018.
BECK, K. Extreme Programming Explained: Embracing Change. Boston: Addison-
Wesley, USA, 1999.
CUNNINGHAM, W. History of Extreme Programming, 2008. Disponível em: 
<http://wiki.c2.com/?HistoryOfExtremeProgramming>. Acesso em: 2 maio 2018.
HUTAGALUNG, W. Extreme Programming. 2006. Disponível em: <http://www.
umsl.edu/~sauterv/analysis/f06Papers/Hutagalung/>. Acesso em: 7 maio 2018.
LACEY, M. Planning Game. 2018. EUA: Mitch Lacey & Associates INC. Disponí-
vel em: <https://www.mitchlacey.com/intro-to-agile/extreme-programming/planning-
-game>. Acesso em: 5 maio 2018.
PRESMAN, R.; MAXIM, B. R. Engenharia de Software: Uma Abordagem Profissio-
nal. 8.ed. McGraw Hill, 2016. p. 72-85.
TELES, V. M. Práticas do XP. 2006. Disponível em: <http://www.desenvolvimentoa-
gil .com.br/xp/praticas/>. Acesso em: 5 maio 2018.
24

Continue navegando