Buscar

ESTUDO COMPARATIVO SOBRE AS METODOLOGIAS ÁGEIS XP E SCRUM

Prévia do material em texto

ESTUDO COMPARATIVO SOBRE AS METODOLOGIAS ÁGEIS XP E SCRUM 
Mayara Marilia da Silva Balduino 
 
Metodologia XP (Extreme Programming) 
A XP é uma metodologia ágil, considerado um dos mais eficazes em software 
desenvolvimento. Opera com um esquema de desenvolvimento test-first. Possui planejamento 
de curto prazo, sendo altamente adaptável às mudanças de requisitos e consiste em equipes 
produtivas que produzem software de qualidade rapidamente e efetivamente. 
Em XP, o envolvimento do cliente é maior do que em qualquer outra metodologia ágil. Eles são 
um membro ativo da equipe durante todo o ciclo de vida do projeto. 
Na verdade, é verdadeiramente "extremo", pois requer muito esforço. O lançamento do 
software deve responder às necessidades do cliente o mais rápido possível. Normalmente, o 
código deve ser projetado e testado hoje, não amanhã. 
Requer altos níveis de persistência e disciplina. O uso frequente de testes funcionais e testes 
automatizados unidades precisam de pensamento lógico, experiência relevante e habilidades 
rápidas para resolver problemas. 
Equipe 
O tamanho da equipe XP varia de um pequeno número de cinco pessoas até 12. As posições na 
equipe são: rastreador, programador, treinador, testador e cliente. Devido à complexidade e 
alta velocidade do trabalho, eles estão em comunicação verbal frequente. 
O cliente define as regras: testes funcionais, prioridades e históricos de usuários. Eles têm 
reuniões regulares com o rastreador para mantê-los bem informados sobre o andamento do 
projeto. 
O rastreador é como o gerente da equipe XP. Eles assumem a responsabilidade de apoiar a 
equipe e assegurar que o projeto está indo no caminho certo. 
O programador implementa os requisitos do cliente para o projeto. Eles definem as tarefas e 
estimam as cargas de trabalho em relevância aos históricos dos usuários. 
O testador realiza testes do código e analisa gráficos. Eles relatam os resultados para o resto 
da equipe. 
O treinador organiza as reuniões diárias e semanais. Normalmente, eles são responsáveis por 
transmitir informações importantes para o rastreador. 
Na XP, há reuniões diárias chamadas de stand-ups que duram até 15 minutos. Geralmente, os 
stand-ups estão no início do dia. Durante essas reuniões, as metas são introduzidas e 
colaboradas com a equipe. No entanto, ao final de cada ciclo, há uma reunião mais longa em 
que a velocidade do projeto é medida. 
A programação em pares é quando dois desenvolvedores trabalham juntos em uma estação. 
Eles trabalham em blocos de tempo, geralmente uma ou duas semanas no máximo. Assim, a 
XP reduz o custo de alterações nos requisitos ao ter muitos ciclos em vez de apenas um longo. 
 
Princípios 
XP segue os princípios ágeis. No entanto, possui cinco valores-chave: simplicidade, 
comunicação, coragem, respeito e feedback. Cada um dos valores-chave tem um forte 
impacto no fluxo de trabalho na programação extrema do sistema. 
Coragem permite que os programadores modifiquem o código independentemente dos riscos. 
É uma habilidade necessária quando decisões críticas devem ser tomadas, como refatorar o 
código ou remover o código-fonte. 
O respeito é essencial para os membros da equipe do XP. Eles precisam mostrar compreensão 
e apoio quando se trata para fornecer e aceitar feedback construtivo. Somente uma equipe 
respeitosa pode lidar com a velocidade do trabalho necessário em projetos XP. 
Diferentemente de outros métodos, o teste vem em primeiro lugar. Em cada ciclo, em vez de 
criar código e testes e depois executá-los, a equipe da XP primeiro codifica os testes 
automatizados que falham, depois os executa e depois desenvolve o código para fazer os 
testes passarem. No entanto, as chances de o código funcionar desde o início são maiores do 
que na programação tradicional. 
 
A entrega do sistema no prazo requer que os codificadores o escrevam e testem 
constantemente. Os riscos são geralmente assumidos por horários fixos, usando a tecnologia 
mais recente. No entanto, durante o ciclo semanal (geralmente no início), a equipe da XP se 
reúne para analisar o progresso, os riscos e as tarefas semanais. 
 
As vantagens e desvantagens da metodologia devem ser reconhecidas antes de aplicar essa 
abordagem ao seu projeto. 
 
VANTAGENS 
 
Rápido. Em vez de alguns anos, como em outros métodos de desenvolvimento de software, 
projetos de programação extremos duram apenas alguns meses. Existe um ambiente de 
trabalho acelerado, sem perda de tempo. Há integração e implantação contínuas. 
 
Visível. A comunicação aberta dentro da equipe ajuda todos a acompanhar o progresso do 
projeto. Todos trabalham em tarefas individuais, mas as reuniões regulares registram a 
melhoria coletivamente. Devido à visibilidade dos projetos XP, falhas e bugs são limitados. 
 
Reduz custos. Na programação extrema, o ciclo de feedback é reduzido. Assim, o custo da 
mudança também é reduzido. Em outras metodologias, o código é remanufaturado somente 
após o feedback do cliente. Aqui, as mudanças são 
implementadas ao longo do período de desenvolvimento. 
 
Trabalho em equipe. No XP, os desenvolvedores trabalham duro para atingir objetivos dentro 
de prazos apertados. Eles se apoiam durante todo o projeto. Eles projetam e testam o código 
juntos. A programação em pares os reúne em grupos 
de dois, onde eles compartilham idéias e criam software lado a lado. Portanto, há um maior 
comprometimento e satisfação dos funcionários. 
 
DESVANTAGENS 
 
O código supera o design. O foco do XP é definitivamente o código e não o design. O design é 
o que vende o aplicativo; portanto, o cliente pode ficar insatisfeito com o produto final se o 
design não for bom o suficiente. Às vezes, isso pode resultar na falha na implementação 
completa dos requisitos de software. 
 
Localização. Os projetos XP são difíceis de implementar quando o cliente está longe da equipe 
de desenvolvimento. Normalmente, as interações do XP são bem-sucedidas quando os 
membros da equipe se encontram cara a cara. Portanto, a aplicação de programação extrema 
limita a variedade de projetos. 
 
Falta de documentação. As alterações constantes não podem ser documentadas 
corretamente. Portanto, há altos riscos de falhas inesperadas que não podem ser rastreadas. 
Mesmo quando os erros são corrigidos, sem documentação precisa, é possível que os mesmos 
erros possam ocorrer novamente. 
 
Estresse. Há muita pressão trabalhando com prazos apertados. Se os desenvolvedores tiverem 
altos níveis de estresse para concluir tarefas no prazo, é mais provável que cometam erros 
durante a codificação. Posteriormente, a qualidade do software pode ser reduzida devido ao 
agendamento. 
 
 
Metodologia SCRUM 
 
Scrum é uma metodologia ou estrutura de gerenciamento de projeto ágil usada 
principalmente para projetos de desenvolvimento de software com o objetivo de fornecer 
novos recursos de software a cada 2-4 semanas. É amplamente utilizado por equipes de 
desenvolvimento de software, de fato é a metodologia ágil mais popular, no entanto, o Scrum 
se espalhou para outras funções de negócios, incluindo TI e marketing, onde existem projetos 
que devem avançar na presença de complexidade e ambiguidade. 
 
Sendo um subgrupo das metodologias ágeis - um conjunto de valores e princípios que 
descrevem as interações e atividades diárias de um grupo, o Scrum segue os valores e 
princípios do ágil, mas inclui outras definições e especificações, especialmente em relação a 
certas práticas de desenvolvimento de software. Embora desenvolvido para o 
desenvolvimento ágil de software, o Scrum ágil se tornou a estrutura preferida para o 
gerenciamento ágil de projetos em geral. 
 
O Scrum aborda a complexidade no trabalho, tornando as informações transparentes, para 
que as pessoas possam inspecionar e se adaptar com base nas condições atuais, e não nas 
condições previstas. Isso permite que as equipes resolvam as armadilhas comuns de um 
processo de desenvolvimento em cascata: caos resultanteda constante mudança de 
requisitos; subestimação de tempo, recursos e custo; compromissos na qualidade do 
software; e relatórios de progresso imprecisos. É necessária transparência de termos e 
padrões comuns no desenvolvimento do Scrum para garantir que o que está sendo entregue 
seja o que era esperado. A inspeção frequente garante progresso e detecta variações desde o 
início, para que os ajustes possam ser feitos rapidamente 
 
Equipe 
As equipes do Scrum geralmente são compostas por 7 +/- 2 membros e não têm líder de 
equipe para delegar tarefas ou decidir como um problema é resolvido. A equipe como uma 
unidade decide como resolver problemas e resolver problemas. Cada membro da equipe 
Scrum é parte integrante da solução e espera-se que leve um produto desde o início até a 
conclusão. Existem três funções principais em uma equipe Scrum: 
 
O Dono do Produto é o principal interessado do projeto - geralmente um cliente interno ou 
externo ou um porta-voz do cliente. Há apenas um Dono do Produto que transmite a missão e 
a visão geral do produto que a equipe está construindo. Ele é responsável por gerenciar o 
backlog do produto e aceitar incrementos de trabalho concluídos. 
 
O ScrumMaster é o líder servidor do Dono do Produto, da Equipe de Desenvolvimento e da 
Organização. Sem autoridade hierárquica sobre a equipe, mas um facilitador, garante que a 
equipe adira à teoria, às práticas e às regras do Scrum. Ele protege a equipe, fazendo o 
possível para ajudá-la a desempenhar o mais alto nível. Isso pode incluir a remoção de 
impedimentos, facilitando as reuniões e ajudando o Dono do Produto a preparar a lista de 
pendências. 
 
A equipe de desenvolvimento é um grupo multifuncional e auto-organizado, munido de todas 
as habilidades para fornecer incrementos entregáveis na conclusão de cada sprint. O Scrum 
amplia a definição do termo "desenvolvedor" além dos programadores para incluir qualquer 
pessoa que participe da criação do incremento entregue. Não há títulos na equipe de 
desenvolvimento e ninguém, incluindo o ScrumMaster, diz à equipe de desenvolvimento como 
transformar itens de backlog do produto em incrementos potencialmente entregáveis. 
 
Eventos 
 
Um sprint é um período de tempo determinado durante o qual um trabalho específico é 
concluído e preparado para revisão. As corridas geralmente duram de 2 a 4 semanas, mas 
podem ser tão curtas quanto uma semana. 
 
As reuniões da equipe de planejamento são eventos com cronograma que determinam quais 
itens da lista de pendências do produto serão entregues e como o trabalho será realizado. 
O Stand-up diário é uma breve reunião de comunicação (não mais do que 15 minutos), na qual 
cada membro da equipe cobre de forma rápida e transparente o progresso desde o último 
stand-up, o trabalho planejado antes da próxima reunião e quaisquer impedimentos que 
possam estar impedindo sua participação. o progresso dela. 
 
A Revisão da Sprint é o evento "mostrar e contar" ou demonstração para a equipe apresentar 
o trabalho concluído durante a sprint. O Dono do produto verifica o trabalho em relação aos 
critérios de aceitação predefinidos e aceita ou rejeita o trabalho. As partes interessadas ou os 
clientes fornecem feedback para garantir que o incremento entregue atenda às necessidades 
da empresa. 
 
A Retrospectiva, ou Retro, é a reunião final da equipe no Sprint para determinar o que correu 
bem, o que não correu bem e como a equipe pode melhorar no próximo Sprint. Participada 
pela equipe e pelo ScrumMaster, a Retrospectiva é uma oportunidade importante para a 
equipe se concentrar em seu desempenho geral e identificar estratégias para melhoria 
contínua de seus processos. 
 
 
Artefatos 
 
O backlog do produto é o documento mais importante que descreve todos os requisitos de 
um sistema, projeto ou produto. A lista de pendências do produto pode ser vista como uma 
lista de tarefas a fazer, composta por itens de trabalho, cada um dos quais produz uma entrega 
com valor comercial. Os itens da lista de pendências são pedidos em termos de valor comercial 
pelo Dono do produto. 
 
Um backlog do sprint é a lista específica de itens retirados do backlog do produto que devem 
ser concluídos em um sprint. 
 
Um incremento é a soma de todos os itens de backlog do produto que foram concluídos desde 
a última versão do software. Embora seja responsabilidade do Dono do produto decidir 
quando um incremento é liberado, é responsabilidade da equipe garantir que tudo o que está 
incluído em um incremento esteja pronto para ser liberado. Isso também é chamado de 
Incremento Potencialmente Deslocável (PSI). 
 
Vantagens 
 
Eficiência. Scrum é uma estrutura que pode ajudá-lo a gerenciar seu projeto com mais 
eficiência e a aproveitar melhor o tempo e o orçamento. 
 
Transparência. Scrum é uma garantia de transparência de todas as etapas do projeto. 
 
Eficácia. Estima-se que o Scrum seja atualmente o método mais eficaz de gerenciar projetos de 
TI. 
 
Minimização dos Erros. Um dos princípios do Scrum é focar na minimização de erros. Graças a 
essa abordagem (por exemplo, executando vários testes), você pode ter certeza de que o 
projeto é mantido no mais alto nível de qualidade. 
 
Sprints. A implementação do projeto usando Scrum é dividida nos chamados sprints. Durante 
a vida, a equipe se concentra no desenvolvimento de funcionalidades estritamente definidas. 
Os sprints são uma ótima maneira de alcançar o desenvolvimento progressivo e sustentável de 
produtos. 
 
Flexibilidade. Scrum é uma metodologia muito flexível. Se o cliente quiser fazer alterações ou 
ampliar o produto com novas funcionalidades, geralmente não há problemas com isso. Esse 
tipo de elasticidade é garantido pelos sprints. 
 
Prioridades. Scrum fornece priorização de tarefas. Primeiro, você desenvolve os ticks das 
principais tarefas a executar e, em seguida, também implementa uma lista de tarefas 
pendentes. Este último inclui tarefas que podem ser descritas como "boas de se ter". Dessa 
forma, você pode ter certeza de que a equipe está atualmente trabalhando nas 
funcionalidades mais importantes. 
 
Feedback. Scrum também é uma metodologia eficaz da perspectiva do cliente. Graças a 
reuniões diárias, o cliente pode estar atualizado com todo o trabalho atual. Seu feedback 
também é levado em consideração. 
 
Reuniões. As reuniões diárias ajudam a identificar ameaças e problemas emergentes que 
podem ser resolvidos rapidamente. 
 
Orçamento. A metodologia Scrum é acessível para o orçamento. Você pode controlar e 
estimar regularmente todas as despesas. 
 
Desvantagens 
 
O sucesso do seu projeto pode estar em risco se um membro da equipe não estiver envolvido 
ou fizer seu trabalho mais lentamente que os outros. 
 
A função Scrum Master é crítica. Se ele não desempenhar suas funções adequadamente, 
poderá levar a atrasos no projeto. 
 
Scrum é ideal para equipes de 3 a 9 pessoas. No caso de equipes maiores, pode haver 
problemas na eficiência do gerenciamento. 
 
As reuniões diárias podem ser frustrantes para os membros da equipe que apresentam os 
resultados de seu trabalho. 
 
A partida inesperada de um membro da equipe pode prejudicar o andamento de todo o 
projeto. 
 
A data de entrega do produto e o prazo do sprint não se aplicam ao Scrum. 
 
 
 XP Scrum 
Definição 
O XP é um conjunto de práticas de software destinadas a 
oferecer um produto de qualidade que atenda às mudanças 
nos requisitos do cliente. O XP está muito mais focado nas 
atividades de programação, em particular, e prescreve 
maneiras pelas quais práticas tradicionais de engenharia de 
software como TDD, Programação de Pares, refatoração etc. 
são levadas a níveis "extremos" para maximizar seu valor. 
O Scrum pode ser considerado como uma estrutura para 
gerenciamento de projetos que pode ser aplicada para criar 
um produto rapidamente e com complexidades mínimas. 
Uma equipe de scrum pode usar métodos e práticas de 
outros métodos ágeis conforme suas necessidades. Não é 
algo específico paraproblemas do mundo do software e 
também pode ser usado por outros projetos da indústria. 
Desenvolvimento 
As equipes do XP normalmente trabalham em iterações de 
uma a duas semanas, o motivo pelo qual o XP acredita em 
lançamentos mais rápidos e feedback mais rápido. 
As equipes Scrum normalmente trabalham em iterações 
(chamadas sprints) que podem levar de duas semanas a um 
mês. 
Mudanças 
O XP é flexível o suficiente para acomodar mudanças nos 
requisitos / abordagens durante a iteração e acredita em 
incentivar mudanças no início do jogo para oferecer um 
produto de qualidade. Desde que a equipe não comece a 
trabalhar em um recurso específico, ele poderá ser substituído 
por um novo recurso da mesma complexidade. 
O Scrum, por outro lado, não permite alterações durante o 
sprint atual depois que o planejamento desse sprint for feito. 
Se qualquer grande mudança for necessária, a equipe poderá 
interromper o sprint atual e iniciar um novo sprint com novos 
requisitos. 
Tarefas 
As equipes do XP trabalham em um pedido estrito, priorizado 
pelo cliente, e é necessário que o time trabalhe nele na 
mesma ordem. 
Por outro lado, o Dono do produto no Scrum especifica a 
prioridade das tarefas de desenvolvimento em um sprint, 
mas a equipe ainda se desenvolve na ordem em que 
escolheu, dentro de um sprint. 
Práticas 
O XP incentiva fortemente a equipe a usar práticas como 
programação de pares, desenvolvimento orientado a testes, 
refatoração, integração contínua e testes automatizados para 
melhorar a qualidade, obter feedback frequente do cliente e 
entregar em versões menores. 
O Scrum se concentra principalmente na produtividade e não 
prescreve nenhuma prática de engenharia, mas a equipe 
pode adotar práticas do XP ou Kanban conforme suas 
necessidades de projeto. 
Proprietário 
No XP, o cliente desempenha o papel de Dono do produto, 
que está sempre disponível. 
No Scrum, o Scrum Master se comunica com o Dono do 
produto para definir as histórias em ordem para o sprint a 
partir do backlog. Ele também garante que a equipe entenda 
cada uma das histórias durante a fase de planejamento.

Continue navegando