Diferença entre programação extrema e SCRUM

Anonim

Programação Extrema vs SCRUM | XP vs SCRUM

Houve um número de diferentes metodologias de desenvolvimento de software utilizadas na indústria de software ao longo dos anos, como o método de desenvolvimento de cachoeira, V-Model, RUP e alguns outros métodos lineares, iterativos e combinados iterativos combinados. O modelo Agile (ou mais corretamente, um grupo de metodologias) é um modelo de desenvolvimento de software mais recente, introduzido pelo manifesto ágil para resolver os defeitos encontrados nas metodologias tradicionais de desenvolvimento de software.

Os métodos ágeis são baseados no desenvolvimento iterativo e usam o feedback dos usuários como o principal mecanismo de controle. Agile pode ser chamado de abordagem centrada nas pessoas do que os métodos tradicionais. O modelo Agile oferece 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 no início. O tempo de ciclo de teste do Agile é relativamente curto em comparação com os métodos tradicionais, porque o teste é feito paralelamente ao desenvolvimento. Devido a 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?

Como mencionado acima, o SCRUM é um processo de gerenciamento de projetos incremental e iterativo, que pertence à família dos métodos Agile. O SCRUM baseia-se em dar alta prioridade à participação do cliente no início do ciclo de desenvolvimento. Ele recomenda a incorporação de testes pelo cliente cedo e frequentemente possível. O teste é feito em cada ponto quando uma versão estável fica disponível. A base do SCRUM baseia-se em testes iniciais desde o início do projeto e continuando até o final do projeto.

O valor-chave do SCRUM é "a qualidade é a responsabilidade da equipe", o que enfatiza que a qualidade do software é responsabilidade de toda a equipe (não apenas da equipe de testes). Outro aspecto importante do SCRUM é quebrar o software em peças gerenciáveis ​​menores e entregá-las ao cliente muito rapidamente. Entregar um produto de trabalho é de extrema importância. Em seguida, a equipe continua a melhorar o software e entregar continuamente em cada etapa principal. Isso é alcançado através de ciclos de liberação muito curtos (chamados sprints) e recebendo feedback para melhoria 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 proprietário do Produto (quem representa o cliente e mantém o backlog do produto), Scrum master (que atua como organizador e coordenador da equipe, realizando reuniões de Scrum, mantendo o backlog sprint e gráficos queimados) e outros membros da equipe.Uma equipe pode consistir em papéis tradicionais, mas na sua maioria são equipes de autogestão. Os principais artefatos do Scrum são o backlog do produto / release backlog (lista de desejos), backlogs Sprint / backlogs de defeitos (tarefas em cada iteração), gráficos Burn down (trabalho restante vs. data). As principais cerimônias do SCRUM são reunião do processo, reunião Sprint e reunião Retrospect.

O que é a programação extrema?

Programação Extrema (XP abreviado) é uma metodologia de desenvolvimento de software que pertence ao modelo Agile. A programação extrema realiza fases em passos contínuos muito pequenos (em comparação com métodos tradicionais). A primeira passagem, que leva apenas um dia ou uma semana, é intencionalmente incompleta. Para fornecer metas concretas para o desenvolvimento do software, os testes automatizados são escritos no início. Em seguida, os desenvolvedores fazem a codificação. O foco é fazer programação como pares. Uma vez que todos os testes passam, a codificação é considerada completa. A próxima fase é design e arquitetura, que trata da refatoração do código pelo mesmo conjunto de programadores. No final desta fase, o produto incompleto (mas funcional) é apresentado às partes interessadas. Logo após isso, a próxima fase (que se concentra no próximo conjunto de recursos mais importantes) começa.

Qual a diferença entre o Extreme Programming eo SCRUM?

Programação Extrema e SCRUM são compreensivelmente metodologias muito parecidas e alinhadas. No entanto, existem diferenças sutis, mas importantes entre esses dois métodos. Os sprints SCRUM duram entre 2-4 semanas, enquanto as iterações típicas de XP são mais curtas (nas últimas 1-2 semanas). Normalmente, as equipes SCRUM não permitem mudanças em sprints, mas as equipes XP são pouco flexíveis para mudanças dentro das iterações. Por exemplo, após o planejamento de sprint, o conjunto de itens desse sprint permanece inalterado, mas um recurso que não começou a funcionar pode ser trocado com algum outro recurso no XP. Outra diferença entre o XP e o SCRUM é que a ordem dos recursos desenvolvidos no XP é estritamente priorizada pelo cliente, enquanto a equipe SCRUM decide a ordem dos itens (após o backlog do produto ser priorizado pelo proprietário do produto SCRUM).

Ao contrário do XP, o SCRUM não estabelece quaisquer práticas de engenharia. Por exemplo, o XP é impulsionado por práticas como desenvolvimento orientado por teste (TDD), par de programação, refatoração, etc. No entanto, alguns acreditam que o mandato de um conjunto de práticas em equipes auto-organizadoras pode ter um impacto negativo, e isso pode ser considerado uma deficiência do XP. Outra deficiência da programação Extreme é que as equipes inexperientes tendem a refatorar sem quaisquer testes automatizados ou TDD (ou simplesmente hackear). Portanto, alguns sugerem que o SCRUM é melhor para o desligamento (uma vez que traz grandes melhorias simplesmente através de iterações focalizadas) e o XP é adequado para equipes ligeiramente maduras que descobriram o valor das práticas acima mencionadas (em vez de usá-las porque foram perguntadas para fazê-lo).