Conceito

  • O desenvolvimento ágil é um termo que se define pelas melhores metodologias segundo os princípios de desenvolvimento segundo o Manifesto para o Desenvolvimento Ágil de Software (também conhecido como Manifesto Ágil), toda metodologia que segue os princípios desse manifesto pode ser considerado como desenvolvimento ágil. Tal manifesto são os princípios comuns entre os projetos de sucesso, ele foi criado durante uma reunião de diversos profissionais da área de desenvolvimento de software no início de 2001 durante um workshop realizado em Snowbird, Utah, EUA.
  • No desenvolvimento ágil o desenvolvimento do software é feito em forma de espiral e de forma interativa diferente do modelo tradicional (modelo em cascata), ou seja, no desenvolvimento ágil o projeto é dividido em partes e gerando ciclos de repetição para cada parte do sistema. Em cada ciclo é gerado um sistema funcional, testado e aprovado, com novas funcionalidades.

Vantagens ao Cliente

  • Esse tipo de desenvolvimento se adequa bem a mudanças de projeto, já que possui apenas uma idealização básica das funções e do sistema em si, achando assim natural as mudanças de projeto, surgimento de novas funções e erros no projeto (já que eles estimulam a criatividade e aprendizado do programador). Diferente do desenvolvimento tradicional, que busca a definição no inicio do projeto de um sistema que será a meta final, separando o projeto em fases que devem ser seguidas a risca segundo o plano de desenvolvimento, onde cada pessoa tem seu papel totalmente definido, tendo que realizar apenas o que lhe foi exigido, considerando erros e alterações de projeto como falhas, que atrapalham o rendimento do projeto e assim como aumento do custo do mesmo.
  • No desenvolvimento ágil o cliente tem maior afinidade com o projeto, devido ao fato de poder interferir e opinar no sistema durante o decorrer de sua criação, já que é possível retirar duvidas de funcionamento do sistema e inserir com facilidade ideias e funções que surjam nesse processo de criação. Algo que não ocorre no desenvolvimento padrão, já que o plano já foi definido e dependendo da etapa em que o projeto se encontra seria necessário um retorno de etapas da cascata para redefinição de projeto e desenvolvimento, atrapalhando a data de entrega do sistema e seu custo, sendo assim o cliente tem que se adequar ao sistema entregue e não o contrário.

Vantagens para os desenvolvedores

  • No desenvolvimento ágil por conta de como os erros são tratados (como possibilidades de aprendizado), os desenvolvedores possuem a chance de testar novas funcionalidades para os programas, incentivando a criatividade nas maneiras para solucionar os eventuais erros, assim como na criação de designs e funcionalidades no decorrer do projeto. Sendo assim os desenvolvedores que participam desse modo de desenvolvimento tem uma maior chance de experimentação de desenvolvimento, tendo desse modo uma maior capacitação, já que são forçados a encontrar erros e suas respectivas soluções, além de possuírem mais criatividade, por serem incentivados a criar novas maneiras de efetivação do projeto.
  • Desse modo os desenvolvedores ágeis são melhores tratados, já que não tem a pressão de seguir a risca um padrão de desenvolvimento, que não suporta erros ou mudanças, ou seja, que em caso de erro o trabalhador pode ser o causador do prolongamento da entrega do projeto e/ou possível cancelamento.

Princípios

  • Os princípios do Manifesto Ágil são:
    • Indivíduos e interação entre eles mais que processos e ferramentas.
    • Software em funcionamento mais que documentação abrangente.
    • Colaboração com o cliente mais que negociação de contratos.
    • Responder a mudanças mais que seguir um plano.
  • Os 12 princípios do Desenvolvimento Ágil são:
    • A maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor.
    • Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o cliente possa tirar vantagens competitivas.
    • Entregar software funcionando com freqüencia, na escala de semanas até meses, com preferência aos períodos mais curtos.
    • Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do projeto.
    • Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho.
    • O Método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de desenvolvimento, é através de uma conversa cara a cara.
    • Software funcional é a medida primária de progresso.
    • Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem ser capazes de manter indefinidamente, passos constantes.
    • Contínua atenção à excelência técnica e bom design, aumenta a agilidade.
    • Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito.
    • As melhores arquiteturas, requisitos e designs emergem de times auto organizáveis.
    • Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.

Metodologias

  • XP (Extreme Programming) e SCRUM são as metodologias ágeis mais conhecidas e usadas, porém também existem outras, como: Adaptive Software Process, Feature Driven Development (FDD), Crystal, Agile Modeling e Win-Win Spiral.

Referências