Modelo Ágil

A metodologia flexível (Agile) ajuda a reduzir o risco no desenvolvimento de software, movendo o fluxo de trabalho em vários pequenos ciclos. Esses ciclos são chamados de iterações e geralmente duram de duas a três semanas.

Uma iteração é como um pequeno projeto de software que consiste em tarefas, cada uma das quais melhora a funcionalidade. Isso inclui: elaborar um plano, avaliar requisitos, concordar com um projeto, escrever código, testar e criar documentação técnica.

Uma iteração geralmente não é suficiente para um lançamento de software completo. No entanto, o bom do Agile é que pequenas partes do projeto estão prontas para avaliação ao final de cada iteração. Isso permite que os membros da equipe alterem as prioridades para trabalhos futuros sem esperar pelo lançamento final.

Aplicando uma metodologia de desenvolvimento “ágil”, você pode ver um resultado concreto após cada iteração. Ou seja, o desenvolvedor pode entender se o resultado de seu trabalho atende aos requisitos ou não. Esta é uma das vantagens importantes do modelo flexível.

Quanto aos contras, ao usar o Agile, às vezes é difícil estimar o custo dos recursos de mão de obra e o orçamento do projeto. Se tomarmos as opções de aplicação prática do modelo flexível, a mais famosa delas é a Extreme Programming (XP).

O XP é baseado em breves reuniões dos membros da equipe que acontecem todos os dias e reuniões regulares (uma vez por semana ou menos). Em comícios diários (standup diário) geralmente são discutidos:

  • resultados atuais do trabalho;
  • uma lista de tarefas a serem concluídas por cada membro da equipe;
  • dificuldades encontradas e formas de resolvê-las.

Manifesto

Agile é toda uma direção no desenvolvimento, então as regras para trabalhar nele são declaradas em um documento especial - Agile Manifesto. Isso inclui práticas e princípios pelos quais a equipe deve trabalhar.

O Manifesto Ágil consiste em 4 ideias fundamentais e 12 princípios.

Ideias-chave:

  • colaboração entre desenvolvedores é mais importante do que ferramentas;
  • a versão de trabalho do produto tem precedência sobre a documentação;
  • o entendimento mútuo entre a equipe e o cliente é mais importante do que os termos do contrato;
  • O plano original sempre pode ser alterado, se necessário.

Quanto aos 12 princípios do Agile, aqui estão eles:

  • a principal prioridade é a conformidade do programa finalizado com as expectativas do cliente;
  • a alteração das condições é permitida em qualquer estágio, mesmo no estágio final de desenvolvimento (se isso puder melhorar a qualidade e a competitividade do software);
  • entrega regular de versões de trabalho do produto de software (a cada 14 dias, mês ou trimestre);
  • a chave do sucesso é a interação regular entre o cliente e os desenvolvedores (de preferência diariamente);
  • os projetos devem ser construídos entre aqueles que se interessam por eles, tais pessoas devem ter as condições necessárias para o trabalho e todo tipo de apoio;
  • a melhor maneira de compartilhar informações em uma equipe é uma reunião pessoal;
  • a versão de trabalho do software é o melhor indicador de progresso;
  • todas as partes interessadas devem ser capazes de manter o ritmo de trabalho desejado ao longo do processo de desenvolvimento de software;
  • melhoria técnica e bom design melhoram a flexibilidade;
  • é importante mantê-lo simples e não exagerar;
  • os melhores resultados são obtidos daquelas equipes que conseguem se auto-organizar;
  • os membros da equipe devem pensar regularmente em maneiras de melhorar sua eficiência alterando o fluxo de trabalho.

Segundo o manifesto Ágil, um bom processo de desenvolvimento de software depende diretamente das pessoas que estão envolvidas nesse processo. Para fazer isso, você precisa organizar a interação deles da maneira mais eficiente possível, criar a equipe mais organizada.

Metodologias

Existem também várias metodologias no Manifesto Ágil que explicam valores e princípios:

  • Modelagem Ágil;
  • Processo Unificado Ágil;
  • Método Ágil de Dados
  • Desenvolvimento Rápido de Aplicativos (DSDM);
  • Processo Unificado Essencial;
  • programação extrema;
  • desenvolvimento orientado a recursos;
  • Caindo na Real;
  • Abra;
  • Scrum.

A modelagem ágil é uma coleção de princípios, termos e práticas que acelera e simplifica o desenvolvimento de modelos e documentação de software.

O objetivo da modelagem ágil é melhorar a modelagem e a documentação. É importante observar que isso não inclui codificação, teste ou problemas relacionados ao controle, implantação e suporte do projeto. No entanto, esta metodologia inclui revisão de código.

O Agile Unified Process é uma metodologia que facilita a aproximação (modelo) para os usuários. Geralmente usado para desenvolver software comercial.

Agile Data Method - várias metodologias semelhantes nas quais as condições do cliente são alcançadas por meio da cooperação de várias equipes.

DSDM - esta abordagem difere das outras porque, junto com os desenvolvedores, os usuários do futuro produto participam ativamente dela.

O desenvolvimento orientado a recursos é uma metodologia de desenvolvimento que possui um limite de tempo: “cada recurso deve ser implementado em no máximo duas semanas”.

Vale a pena considerar que se o caso de uso for pequeno, pode ser considerado um recurso. Se for significativo, deve ser dividido em várias funções.

Getting Real é uma metodologia iterativa na qual a interface do programa é desenvolvida primeiro, e só então sua funcionalidade é desenvolvida.

O OpenUP é um método de desenvolvimento que divide o ciclo do projeto em quatro estágios: iniciação, refinamento, construção e entrega.

De acordo com os princípios do Agile, independentemente da duração do trabalho, é necessário fornecer a todos os stakeholders e membros da equipe uma forma de se conhecer e tomar decisões. Graças a isso, é possível controlar efetivamente a situação e avaliar os resultados intermediários a tempo. O plano do projeto define o ciclo de vida, e o resultado final deve ser considerado uma versão estável do aplicativo.

Já o Scrum regula as regras de gestão do processo de desenvolvimento e permite aplicar práticas de codificação existentes com a possibilidade de ajustar as condições ou efetuar alterações. O uso dessa metodologia permite visualizar e eliminar desvios do resultado esperado nas fases iniciais do desenvolvimento.

Vamos ver isso com um pouco mais de detalhes...