Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

AULA 5 
 
 
 
 
 
 
 
 
 
 
DIFERENTES METODOLOGIAS 
ÁGEIS DE PROJETOS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Profª Ana Paula Costacurta 
 
 
2 
TEMA 1 – REGRAS DA XP 
As regras da programação extrema são muito similares a um quebra-
cabeça, com muitas peças pequenas que, combinadas, criam uma visão 
completa. Neste tema, falaremos sobre as regras simples da programação 
extrema. 
1.1 Planejamento 
Na fase de planejamento com base nas funcionalidades desejadas, os 
clientes escreverão as histórias de usuários e uma reunião é realizada com a 
equipe de desenvolvimento para: 
• Criar o planejamento de liberação; 
• Dividir as interações e realizar os lançamentos frequentes. 
Planejar cada interação e definir o início das interações. 
1.2 Gerenciamento 
Na fase de gerenciamento, será definida a equipe e algumas ações são 
definidas: 
• Espaço de trabalho aberto dedicado para equipe; 
• Definição de ritmo sustentável; 
• Reuniões diárias em pé; 
• Realizar a medição da velocidade dos projetos; 
• Movimento das pessoas. 
Corrigir o XP quando necessário. 
1.2.1 Espaço de trabalho aberto dedicado 
É importante para uma equipe na XP realizar a comunicação; por isso, 
remover as barreiras que dificultam a comunicação é essencial. 
Algumas atitudes na hora de montar a área de trabalho da equipe podem 
facilitar a comunicação, como: 
• Incentivar pessoas a trabalhar em pares, colocando computadores em uma 
área central; 
 
 
3 
• Lugar para pessoas trabalharem sozinhas sem desconectar da equipe, 
colocando meses ao redor do perímetro; 
• Grande área de reunião para reuniões diárias em pé; 
• Mesa para realizar discussões em grupo, para a equipe ouvir ou participar; 
• Quadros brancos para notas importantes ou esboços, quadro de atividades 
com os cartões de histórias de forma visível; 
• Disponibilização de gráficos para melhoria do processo ou visualização do 
progresso do projeto. 
1.2.2 Ritmo sustentável 
É importante realizar um planejamento realista e não colocar a equipe em 
horas extras ou estresses desnecessários. Caso, após realizar o planejamento da 
interação, seja verificado que a equipe não conseguirá entregar tudo o planejado, 
é melhor realizar uma nova reunião de planejamento de interação para alterar o 
escopo ou rever o tempo do projeto. 
Não é uma boa ideia solicitar que a equipe aumente a velocidade. O 
importante é realizar o planejamento e encontrar uma velocidade perfeita que a 
equipe continue constante em todo o projeto. 
1.2.3 Movimento das pessoas 
Ter uma pessoa com um conhecimento que não tenha ninguém para 
substituir é um risco para o projeto. Por isso, é importante realizar o treinamento 
cruzado movendo as pessoas pela base do código combinado com a 
programação em pares. 
É importante incentivar todos a tentarem trabalhar em uma nova seção, 
pelo menos uma parte em cada interação. Com a programação em pares, isso é 
possível sem impactar na produtividade, visto que um realiza a programação 
enquanto o outro fica observando. 
1.2.4 Corrigir o XP 
É importante ter em mente as regras do XP, porém, se não estiver 
funcionando para o projeto, não hesite em mudar o que deve ser mudado. A 
equipe não pode fazer o que quiser; as regras devem ser seguidas até que se 
decida realizar as mudanças. 
 
 
4 
As reuniões de retrospectivas podem ser uteis e os membros da equipe 
podem falar o que está funcionando e o que poderia ser melhorado no XP. 
1.3 Projetando 
Nesta fase de projeção, são realizados: 
• Design Simples; 
• Metáfora do sistema; 
• Cartões CRC para sessões de projeto; 
• Solução de Pico (Spike), para redução do risco; 
• Refatoração sempre que possível. 
Não adicionar funcionalidade cedo demais. 
1.3.1 Design simples 
A equipe deve sempre prezar pela simplicidade. Como a simplicidade é 
muito subjetiva, de forma conjunta, a equipe decidirá o que é simples e a 
recomendação é que se tenha quatro qualidades: 
• Testável: é possível escrever testes de unidade e testes de aceitação para 
verificar se há problema; 
• Compreensível: é fácil de compreender; 
• Navegável: é capaz de encontrar o que você quer quando quiser; 
• Explicável: é fácil mostrar para as outras pessoas como funciona. 
1.3.2 Cartões CRC 
Os Cartões CRC (Classe, Responsabilidade e Colaboração) permite que a 
equipe inteira contribua com o projeto e são utilizados para representar os objetos. 
Podemos ver um exemplo de Cartão CRC na figura 1. 
É realizada uma sessão de CRC. Alguém fala sobre quais objetos enviam 
mensagens para outros objetos, percorrendo o processo para descoberta das 
fraquezas e problemas. 
 
 
 
5 
Figura 1 – Exemplo de CRC (autor) 
Classe: Conta Corrente 
Responsabilidade Colaboração (Classes 
Colaboradoras) 
Consultar Saldo Cliente 
Consultar o número da conta Histórico de transações 
Consultar o nome cliente da conta 
Realizar Saque 
Realizar Depósito 
Consultar Histórico de transações 
1.3.3 Não adicionar funcionalidade cedo demais 
Não adicione funcionalidades extras, porque já sabemos exatamente incluí-
las, ou pela impressão, que seria muito melhor que a funcionalidade fosse incluída 
no sistema agora. Lembre que a inclusão dessas funcionalidades poderá deixar o 
projeto complexo. 
Manter o código simples e pronto para mudanças é uma questão da técnica 
de design simples. É importante se concentrar no que foi programado para não 
adicionar um risco desnecessário ao projeto. 
1.4 Codificação 
Nesta fase, é realizada a implementação do código do software. Para isso, 
é preciso realizar as seguintes atividades: 
• O cliente sempre presente; 
• Padrão de codificação; 
• Desenvolvimento Orientado a Testes (TDD); 
• Programação em pares; 
• Integração Sequencial; 
• Integração frequentemente; 
• Computador de integração dedicado; 
• Propriedade Coletiva. 
 
 
6 
1.4.1 Integração 
Vários desenvolvedores trabalhando realizam a integração do seu código 
e realizam a integração confiando que está tudo bem. Quando um programador 
pega uma classe, cria a propriedade de classe específica que está se trabalhando; 
porém, mesmo assim, as dependências podem estar erradas. 
A integração frequente ou contínua evita e detecta problemas 
antecipadamente em relação à compatibilidade dos códigos, em que, sempre que 
possível, os desenvolvedores devem realizar a integração e confirmação do 
código no repositório. 
A integração sequencial apenas em um par de desenvolvedor realiza a 
integração, testa e confirma a alteração em determinado momento. 
Para realizar a integração sequencial, um mecanismo é necessário: um 
computador de integração dedicado. Esse computador funciona como local para 
controlar a liberação e nele devem estar os testes unitários sempre atualizados. 
Nenhuma alteração é liberada sem passar por esse computador e ter a 
estabilidade garantida. 
1.4.2 Dia de um desenvolvedor XP 
Na Figura 2, podemos ver um exemplo de um dia típico de um 
desenvolvedor, em que, após a reunião diária em pé, formam pares, começando 
com uma rápida sessão de design para formular uma estratégia inicial no que 
estiverem trabalhando. 
Realiza a criação dos testes, codifica e refatora. A equipe de qualidade 
deve ter um contato frequente com a equipe de desenvolvimento. A integração 
deve ser realizada antes finalizar o dia de trabalho ou, caso tenha finalizado a 
atividade antes do fim do dia, inicia uma nova tarefa e realiza uma nova seção 
rápida de design para nova tarefa. 
 
 
 
7 
Figura 2 – Dia típico de um desenvolvedor 
 
Fonte: Agile Modeling, 2022. 
1.5 Teste 
Nesta fase, os testes precisam ser realizados pela equipe para evitar erros 
(bugs) antes de realizar a liberação. Para isso, algumas atividades são realizadas: 
• Teste de unidade; 
• Criação de testes ao encontrar erro; 
• Testes de aceitação. 
1.5.1 Teste de Unidade 
Primeiro, é necessário criar ou baixar uma estruturade teste de unidade 
para criação de conjunto de testes automatizados. As estruturas de testes de 
 
 
8 
unidade, além da realização de testes, auxiliam na formalização de requisitos, 
esclarecimento de arquitetura, codificação, depuração, integração e otimização. 
A maioria das linguagens possui uma estrutura de testes de unidades, 
como, por exemplo, JUnit para Java. 
Saiba mais 
Conheça mais sobre o XP no link: 
<https://wiki.c2.com/?ExtremeProgrammingRoadmap>. Acesso em: 4 mar. 2022. 
TEMA 2 – VANTAGENS E DESVANTAGENS DA XP 
A abordagem e métodos da programação extrema podem ser considerados 
por muitos bastante controversos e não podem ser aplicados a todos os projetos. 
Neste tema, tentaremos demonstrar as vantagens e desvantagens da abordagem 
Programação Extrema. 
2.1 Vantagens 
Com a utilização do XP, podemos auxiliar na redução do tempo e custos 
do desenvolvimento, e os motivos são: 
• Sistemas estáveis: as práticas de testes frequentes e refatoração ajudam 
a estabilizar o sistema; 
• Código claro e conciso: seguindo o valor da simplicidade os códigos, são 
criados de forma a facilitar a leitura e manutenção no futuro; 
• Entrega rápida de mínimo produto viável (MVP): apenas os recursos 
necessários, utilizando uma abordagem minimalista; 
• Documentação reduzida: são criadas histórias de usuários com 
informações suficientes para compreensão para o desenvolvimento; 
• Sem horas extras: caso seja percebido que não será possível realizar as 
entregas no tempo estimado, deve ser realizada uma revisão e novo 
planejamento; 
• Grande visibilidade do projeto: com constante comunicação, possibilita 
que todos os membros da equipe tenham uma visão do progresso do 
projeto; 
• Colaboração em time: a programação em pares gera um produto com alta 
qualidade e menos erros (bugs); 
 
 
9 
• Satisfação do cliente: o cliente está sempre presente e participando de 
todo o processo de desenvolvimento e testes, influenciando diretamente no 
resultado; isso garante sua satisfação por receber exatamente o que 
desejavam. 
2.2 Desvantagens 
Algumas desvantagens podem ser listadas quando utilizamos XP que 
devemos levar em consideração, sendo elas: 
• Estimativa irreal: sem uma visão clara do cliente, acaba tornando difícil 
realizar uma estimativa real de escopo, custo e tempo; 
• Perda de tempo: gastar mais tempo com reuniões frequentes do que 
desenvolvimento; 
• Pouca documentação: a falta de documentação pode produzir a falta de 
requisitos e especificações claras e gerar desvio do escopo do projeto; 
• Grandes mundanas culturais: a adoção do XP exige uma transição dos 
métodos tradicionais para ágil e, consequentemente, mudanças 
significativas de cultura e estruturas; 
• Maior tempo em programação em pares: pode existir problemas de 
compatibilidade entre membros e, consequentemente, pode levar mais 
tempo e não funcionar adequadamente; 
• Dificuldades com equipes distribuídas: as reuniões são realizadas 
presencialmente; por isso, o XP funciona melhor em equipes alocadas em 
um mesmo local fisicamente; 
• Estresse: por existirem prazos apertados, isso pode ser um pouco 
estressante, pois, às vezes, o cliente pode não estar disponível para 
realizar o feedback necessário e com valor; 
• Foco excessivo no código: pelo foco não estar no design pode gerar 
duplicação de código, falta de garantia de qualidade e resultados ruins 
quando os desenvolvedores não possuem muita experiência. 
TEMA 3 – MAPA DO PROCESSO DA XP 
Na figura 3, podemos ver o mapa do processo da XP. Neste tema, veremos 
uma breve explicação sobre os cinco principais itens do processo: Histórias de 
 
 
10 
usuários, Pico arquitetônico, Planejamento do Lançamento, Interação e Teste de 
Aceitação. 
Figura 3 – Ciclo de vida de Projeto de Programação Extrema 
 
Fonte: Wells, 2022. 
3.1 Histórias de Usuários 
Após os levantamentos das funcionalidades desejadas pela área de 
negócio, é o momento de realizar a transformação em histórias de usuários para 
que a equipe de desenvolvimento tenha um melhor entendimento do que é 
desejado. 
As histórias de usuários possuem o mesmo propósito de casos de usos, 
mas não é a mesma coisa. Elas são escritas pelos clientes com informações do 
que o sistema precisa fazer e são utilizadas para realizar as estimativas para 
reunião de planejamento de Lançamento. Elas também vão orientar a criação dos 
testes de aceitação. 
É importante lembrar que as histórias de usuários devem conter apenas 
detalhes suficientes para possibilitar a estimativa de risco e tempo. Somente na 
fase de interação é que os desenvolvedores conversarão como cliente para 
detalhar melhor os requisitos. 
 
 
 
11 
3.2 Solução Pico ou Pico Arquitetônico 
Quando é necessário descobrir respostas para problemas técnicos ou 
planejamento que sejam de difícil entendimento, é criada uma solução de Pico. 
Para a solução de pico (Architectural Spike), ou fase de exploração, será 
desenvolvido um programa bem simples com objetivo de explorar possíveis 
soluções. O XP prefere essa prática a protótipos, pois protótipos são apenas para 
demostrar visualmente a funcionalidade; já a solução de pico auxilia da 
identificação de áreas de risco para começar a ter uma estimativa mais realista. 
3.3 Planejamento do Lançamento 
Para criar o plano de lançamento (Release Planning), é realizada uma 
reunião em que o cliente e a equipe de desenvolvimento possam tomar as 
decisões necessárias. O principal objetivo da reunião de lançamento é a equipe 
de desenvolvimento realizar a estimativa das histórias e o cliente decidirá então 
qual história é a mais importante ou com maior prioridade de conclusão. 
Para realizar a estimativa das histórias, a equipe de desenvolvimento pode 
colocar as histórias de usuários em cartões, em que esses cartões vão se 
movendo em grupos para criar o conjunto para interação, sempre pensando na 
entrega que possa ser testada e utilizada pelo cliente. 
A reunião de planejamento do lançamento também é chamada de jogo do 
planejamento (Game Planning) com regras específicas. 
Saiba mais 
Veja as regras do Jogo do planejamento no link disponível em: 
<http://c2.com/cgi/wiki?PlanningGame>. Acesso em: 4 mar. 2022. 
3.4 Planejamento da Interação 
A reunião de planejamento da interação (Interation Planning) é realizada 
no início de cada interação para criação do plano de tarefas do desenvolvimento 
da interação. 
As interações têm duração de uma a três semanas. Para isso, são 
escolhidas as histórias de usuários para a interação pelo cliente, na ordem de 
maior valor para o cliente. 
 
 
12 
As histórias de usuários e erros encontrados são divididos em tarefas e os 
desenvolvedores se inscrevem para trabalharem nas tarefas. O desenvolvedor 
que aceitou a tarefa realiza a estimativa de tempo para finalizá-la, que deve ser 
estimada em dias ideais. 
Se a interação tiver muitas ou poucas histórias para interação, deve ser 
realizado o ajuste, colocando ou tirando histórias de usuários. Histórias de 
usuários com menos de um dia de trabalho devem ser agrupadas com outras. 
3.5 Testes de aceitação 
Com base nas histórias de usuários, são criados os testes de aceitação 
(Acceptance Tests), em que o cliente define os cenários para teste. Serão criados 
um ou mais testes de aceitação, para garantir que foi realizada a implementação 
correta e que a funcionalidade está operacional. 
Os testes de aceitação ou funcionais são utilizados também como testes 
de regressão, antes de uma versão ser implementada no ambiente de quente ou 
de produção. O controle de qualidade no XP é realizado por uma equipe separada 
e o relacionamento com o desenvolvimento deve ser muito próximo. 
Saiba mais 
Veja um exemplo de caso de uso do xp no link disponível em: 
<http://agilemodeling.com/essays/agilemodelingxplifecycle.htm>. Acesso em: 4 
mar. 2022. 
TEMA 4 – ETAPA DE INTERAÇÃO DA XP 
Na Figura 4, veremoso mapa do processo da etapa de interação do XP. 
Neste tema, iremos ver em detalhes os três principais itens: erros, 
desenvolvimento, novas histórias de usuários e velocidade de projeto. 
4.1 Erros (Bugs) 
Quando um erro (bug) é encontrado, precisa ser criado um teste de 
aceitação para avisar aos desenvolvedores sobre o problema e saber se foi 
corrigido. 
Primeiro, é executado o teste unitário para mostrar o defeito do ponto de 
vista técnico do código fonte; quando for executado sem erros nos testes de 
unidade, passa-se para os testes de aceitação para verificar se o erro foi corrigido. 
 
 
13 
 
4.2 Desenvolvimento 
Na XP, os programadores trabalham em pares no código, para que seja 
possível o gerenciamento de código por toda a equipe. Utiliza-se o 
desenvolvimento orientado a testes para escrever os testes unitários. 
A programação em pares leva à propriedade coletiva do código, em que 
deve ser seguidas as convenções de codificação. Veremos a etapa de 
desenvolvimento em detalhes no próximo tema. 
4.3 Velocidade do Projeto 
A velocidade do projeto ou apenas velocidade é a medida que indica a 
soma das estimativas das histórias dos usuários que foram concluídas na 
interação. A medida de velocidade e a totalização das estimativas serão utilizadas 
no planejamento das próximas interações. 
É na reunião de planejamento da interação que o cliente decide se irá 
escolher o mesmo número de histórias de usuário que a velocidade medida de na 
última interação. A velocidade aumentará caso o desenvolvedor solicite novas 
tarefas quando o trabalho for concluído antecipadamente. Caso a velocidade 
mude drasticamente, podem ser realizadas novas estimativas e pode se 
renegociar o plano de lançamento. 
O problema de qualquer projeto é a estimativa inicial. Mesmo com muitos 
detalhes, tudo não passará de um palpite, pois ainda não teremos dados históricos 
suficientes para uma boa estimativa. A estimativa vai melhorando durante as 
explorações iniciais de cada interação, utilizando os dados históricos das 
interações anteriores. 
 
 
14 
TEMA 5 – ETAPA DE DESENVOLVIMENTO 
Na Figura 5, podemos ver o mapa do processo da etapa de 
desenvolvimento. Neste tema, veremos em detalhes os dois processos principais: 
Reuniões diárias em pé e Propriedade coletiva do código. 
5.1 Reuniões diárias em pé 
Nas reuniões diárias em pé, há a possibilidade de comunicação com toda 
a equipe. Deve ser realizada no início do expediente e deve ser utilizada para 
comunicar problemas, soluções e prover foco da equipe. 
 As reuniões devem ser realizadas em pé com tempo limitado para manter 
o foco e não desperdiçar o tempo da equipe de desenvolvimento. Caso seja 
necessário, podem ser agendada outras reuniões específicas com apenas as 
pessoas envolvidas. 
 Os desenvolvedores vão relatar o que foi realizado ontem, o que está 
planejado para ser realizado hoje e quais problemas estão enfrentando que 
podem causar atrasos ou estão causando atraso. 
Figura 5 – Mapa do processo da etapa de desenvolvimento 
 
Fonte: Wells, 2022. 
5.2 Propriedade Coletiva do código 
Na Figura 6, podemos ver o mapa do processo da propriedade coletiva do 
código (Colletive Code Ownership). 
 
 
 
 
15 
Figura 6 – Mapa do Processo da Propriedade Coletiva do Códig 
 
Fonte: Wells, 2022. 
A propriedade coletiva de código é uma alternativa ao Gerenciamento de 
código (CodeStewardship). O Gerenciamento de código e a propriedade coletiva 
do código consideram que o código pertence ao projeto e não a uma única pessoa, 
como na Propriedade de Código (CodeOwnership). 
No Gerenciamento de código, existe um mordomo que é responsável 
principal pela verificação das alterações realizadas pelos outros membros. 
Comparando com a propriedade de código, é uma nomenclatura diferente, porque 
nenhuma alteração é realizada no gerenciamento de código sem passar pela 
verificação do mordomo, criando assim uma propriedade de código ao mordomo. 
Na propriedade coletiva de código, os programadores trabalham em pares 
e movem pessoas para pulverização do conhecimento entre todas da equipe. 
Caso alguém quebre o código, é sua responsabilidade realizar a correção até que 
passe 100% no teste unitário. 
 
 
 
16 
REFERÊNCIAS 
ALTEXSOFT. Extreme Programming: Values, Principles, and Practices. 
Disponível em: <https://www.altexsoft.com/blog/business/extreme-programming-
values-principles-and-practices/>. Acesso em: 3 mar. 2022. 
WELLS, D. Extreme Programming: A gentle introduction. Disponível em: 
<http://www.extremeprogramming.org/>. Acesso em: 3 mar. 2022. 
BECK, K.; ANDRES, C. Extreme Programming Explained: Embrace Change. 2. 
ed. USA: Person Education, 2005. 
AGILE MODELING. AM Throughout the XP Lifecycle. Disponível em: 
<http://agilemodeling.com/essays/agileModelingXPLifecycle.htm>. Acesso em: 3 
mar. 2022.

Mais conteúdos dessa disciplina