# Metodologia Ágil

A metodologia ágil consiste em prática que promove a iteração contínua de desenvolvimento e teste através do SLDC no projeto. Na metodologia Ágil dentro do teste de software, tanto desenvolvimento quanto testes são concomitântes, ao contrário do modelo cascata.

# Em que Consiste o Desenvolvimento de Software Ágil?

Esta metodologia é uma das mais simples e eficientes para tornar a visão das necessidades de um negócio em soluções de software. Ágil é um temro usado para descrever as abordagens de desenvolvimento que aplicam planejamento, aprendizando, melhorias, colaboração em time, desenvolvimento evolucionário e entregas iniciais contínuas, Isto encoraja respostas flexíveis a mudança.

Os quatro valores nucleares da metodologia Ágil são:

  • Interações individuais e em time acerca de processos e ferramento;
  • Software Funcional sobre documentação compreensível;
  • Colaboração com cliente sobre negociação de contrato;
  • Responder a mudança sobre seguir um plano;

Metodologia Ágil vs Modelo Cascata

  • Metodologia Ágil

    • Metodologias Ágeis proponhem abordagens incrementais e iterativas ao design de software
    • O Processo Ágil na engenharia de software é dividido em modelos individuais que designers se debruçam sobre;
    • O cliente tem oportunidades frequentes e desde o início para ver o produto e realizar decisões ou mudanças no projeto;
    • É considerado inestruturado quando comparado ao modelo cascata
    • Projetos pequenos podem ser implementados rapidamente, já projetos grandes é difícil estimar o tempo de desenvolvimento;
    • Erros podem ser corrigidos no meio do projeto;
    • O processo de desenvolvimento é iterativo, e o projeto é executado em iterações curtas (2-4 semanas)
    • Documentação possui menor prioridade do que desenvolvimento de software;
    • Cada iteração tem sua própria fase de testes. Isto permite o implemento de testes de regressão toda vez que uma nova funcionalidade ou lógica for lançada;
    • No teste Ágil quando uma iteração termina, features enviáveis do produto são entregues ao cliente. Novas features são usáveis logo após o envio, o que é útil quando se tem bom contato com clientes;
    • Devs e testers trabalham juntos;
    • No fim de cada sprint, a aceitação de usuário é aplicada;
    • Requer comunicação próxima com desenvolvedores, para juntos analisar requerimentos e planejamentos;
  • Modelo Cascata:

    • Desenvolvimento do software flue sequencialmente do começo ao fim;
    • O processo de design não é subdividido em modelos individuais
    • O cliente pode ver o produto apenas no fim do projeto;
    • Modelo cascata é mais seguro por ser orientado pelos planos;
    • Todos os tipos dep rojetos podem ser estimados e completos;
    • Apenas no fim, o produto inteiro é testado. Se erros são localizados ou quaisquer mudanças forem feitas, o projeto começa todo de novo;
    • O processo de desenvolvimento se da por estágios, e o estágio é muito maior que uma iteração. Cada estágio termina com uma descrição detalhada do próximo;
    • Documentação é de altíssima prioridade e pode ser usada inclusive para treinar colaboradores e melhorar o software com outro time;
    • Apenas após a fase de desenvolvimento a testagem se inicia, pois partes separadas não são completamente funcionais;
    • Todas as features desenvolvidads são entregues de uma vez após uma longa fase de implementação;
    • Testers trabalham de forma separada dos devs;
    • Aceitação de usuários é aplicada no fim do projeto;
    • Devs não se envolvem nos processos de regras de negócio e planejamento. Geralmente, existem atrasos entre testes e código;