Diferença Entre Programação Extrema E SCRUM

Diferença Entre Programação Extrema E SCRUM
Diferença Entre Programação Extrema E SCRUM

Vídeo: Diferença Entre Programação Extrema E SCRUM

Vídeo: Diferença Entre Programação Extrema E SCRUM
Vídeo: SCRUM VS EXTREME PROGRAMMING | WHAT ARE THE MAJOR DIFFERENCES? 2024, Abril
Anonim

Extreme Programming vs SCRUM | XP vs SCRUM

Ao longo dos anos, várias metodologias de desenvolvimento de software diferentes foram usadas na indústria de software, como método de desenvolvimento em cascata, V-Model, RUP e alguns outros métodos lineares, iterativos e linear-iterativos combinados. O modelo Agile (ou mais corretamente, um grupo de metodologias) é um modelo de desenvolvimento de software mais recente introduzido pelo manifesto Agile para tratar das deficiências encontradas nessas metodologias tradicionais de desenvolvimento de software.

Os métodos ágeis são baseados no desenvolvimento iterativo e usam o feedback dos usuários como principal mecanismo de controle. O Agile pode ser chamado de abordagem centrada nas pessoas do que os métodos tradicionais. O modelo ágil fornece uma versão funcional do produto muito cedo, dividindo o sistema em subpartes muito pequenas e gerenciáveis, para que o cliente possa perceber alguns dos benefícios logo no início. O tempo do ciclo de teste do Agile é relativamente curto em comparação com os métodos tradicionais, porque o teste é feito em paralelo ao desenvolvimento. Por causa de todas essas vantagens, os métodos ágeis são preferidos em relação às metodologias tradicionais no momento. A programação Scrum e Extreme são duas das variações mais populares dos métodos Agile.

O que é SCRUM?

Conforme mencionado acima, SCRUM é um processo de gerenciamento de projetos incremental e iterativo, que pertence à família de métodos Agile. O SCRUM se baseia em dar alta prioridade à participação do cliente no início do ciclo de desenvolvimento. Ele recomenda incorporar testes pelo cliente o quanto antes e com a maior freqüência possível. O teste é feito em cada ponto quando uma versão estável é disponibilizada. A fundação do SCRUM é baseada no início dos testes desde o início do projeto e continuando até o final do projeto.

O principal valor do SCRUM é “qualidade é responsabilidade da equipe”, o que enfatiza que a qualidade do software é responsabilidade de toda a equipe (não apenas da equipe de teste). Um outro aspecto importante do SCRUM é dividir o software em partes menores gerenciáveis e entregá-las ao cliente muito rapidamente. Entregar um produto funcional é de extrema importância. Em seguida, a equipe continua a melhorar o software e entregar continuamente em cada etapa principal. Isso é obtido por meio de ciclos de lançamento muito curtos (chamados de sprints) e da obtenção de feedback para melhorias no final de cada ciclo.

SCRUM define várias funções-chave para o bom funcionamento de uma equipe de desenvolvimento. Eles são o Product owner (que representa o cliente e mantém o backlog do produto), Scrum master (que atua como organizador e coordenador da equipe conduzindo reuniões de scrum, mantendo o sprint backlog e queimando gráficos) e outros membros da equipe. Uma equipe pode consistir em funções tradicionais, mas na maioria das vezes são equipes autogeridas. Os principais artefatos do Scrum são Product backlog / release backlog (lista de desejos), Sprint backlogs / defeitos (tarefas em cada iteração), Burn down gráficos (trabalho restante vs. data). As principais cerimônias de SCRUM são reunião de backlog de produto, reunião de Sprint e reunião de Retrospectiva.

O que é Extreme Programming?

Extreme Programming (abreviado como XP) é uma metodologia de desenvolvimento de software que pertence ao modelo Agile. A programação extrema executa fases em etapas contínuas muito pequenas (em comparação com os métodos tradicionais). A primeira passagem, que leva apenas um dia ou uma semana, é intencionalmente incompleta. Para fornecer objetivos concretos para o desenvolvimento do software, testes automatizados são escritos no início. Em seguida, os desenvolvedores fazem a codificação. O foco está em fazer programação em pares. Depois que todos os testes forem aprovados, a codificação será considerada concluída. A próxima fase é design e arquitetura, que lida com a refatoração do código pelo mesmo conjunto de programadores. No final desta fase, o produto incompleto (mas funcional) é apresentado às partes interessadas. Logo depois disso, a próxima fase (que se concentra no próximo conjunto de recursos mais importantes) começa.

Qual é a diferença entre Extreme Programming e SCRUM?

Extreme Programming e SCRUM são, compreensivelmente, metodologias muito semelhantes e alinhadas. No entanto, existem diferenças sutis, mas importantes entre esses dois métodos. Sprints SCRUM duram de 2 a 4 semanas, enquanto as iterações XP típicas são mais curtas (últimas 1 a 2 semanas). Normalmente, as equipes SCRUM não permitem mudanças nos sprints, mas as equipes XP são um pouco mais flexíveis para mudanças nas iterações. Por exemplo, após o planejamento do sprint, o conjunto de itens desse sprint permanece inalterado, mas um recurso que não começou a funcionar pode ser trocado a qualquer momento por algum outro recurso no XP. Outra diferença entre XP e SCRUM é que, a ordem dos recursos desenvolvidos no XP é estritamente priorizada pelo cliente, enquanto a equipe SCRUM decide a ordem dos itens (após a lista de pendências do produto ser priorizada pelo Product owner do SCRUM).

Ao contrário do XP, SCRUM não estabelece nenhuma prática de engenharia. Por exemplo, o XP é conduzido por práticas como desenvolvimento orientado a testes (TDD), programação em pares, refatoração, etc. No entanto, alguns acreditam que exigir um conjunto de práticas em equipes auto-organizadas pode ter um impacto negativo, e isso pode ser considerado uma deficiência do XP. Outra deficiência da programação Extreme é que equipes inexperientes podem tender a refatorar sem quaisquer testes automatizados ou TDD (ou simplesmente hackear). Portanto, alguns sugerem que SCRUM é melhor para começar (uma vez que traz grandes melhorias simplesmente por meio de iterações limitadas de tempo) e XP é adequado para equipes ligeiramente maduras que descobriram o valor das práticas mencionadas acima (em vez de usá-las porque foram solicitadas para fazer isso).

Recomendado: