Baixe o app para aproveitar ainda mais
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.
Compartilhar