Partilhar via


O que é Agile?

Diagrama que mostra vários aspetos do Agile alimentando uns aos outros, como colaboração, desenvolvimento e controle de versão automatizado e implantação.

Agile é um termo que descreve abordagens para o desenvolvimento de software que enfatizam a entrega incremental, a colaboração em equipe, o planejamento contínuo e a aprendizagem contínua. O termo Agile foi cunhado em 2001 no Manifesto Ágil. O manifesto se propôs a estabelecer princípios para orientar uma melhor abordagem ao desenvolvimento de software. Em sua essência, o manifesto declara quatro declarações de valor que representam a base do movimento ágil. Conforme escrito, o manifesto afirma:

Valorizamos:

  • Indivíduos e interações sobre processos e ferramentas.
  • Software funcional em vez de documentação abrangente.
  • Colaboração com o cliente na negociação de contratos.
  • Reagir a mudanças em vez de seguir um plano.

O manifesto não implica que os itens do lado direito dessas declarações não sejam importantes ou necessários. Em vez disso, os itens à esquerda são simplesmente mais valorizados.

Métodos e práticas ágeis

É importante entender que Agile não é uma coisa. Você não faz Agile. Em vez disso, o Agile é uma mentalidade que impulsiona uma abordagem ao desenvolvimento de software. Como não existe uma abordagem única que funcione para todas as situações, o termo Agile passou a representar vários métodos e práticas que se alinham com as declarações de valor no manifesto.

Os métodos ágeis, que são frequentemente chamados de frameworks, são abordagens abrangentes para as fases do ciclo de vida do DevOps: planejamento, desenvolvimento, entrega e operações. Eles prescrevem um método para realizar o trabalho, com orientações e princípios claros.

O Scrum é o framework Agile mais comum e aquele com o qual a maioria das pessoas começa. As práticas ágeis, por outro lado, são técnicas que são aplicadas durante as fases do ciclo de vida de desenvolvimento de software.

  • Planning Poker é uma prática de estimativa colaborativa que é projetada para incentivar os membros da equipe a compartilhar sua compreensão do que significa fazer . Muitas pessoas acham o processo divertido, e ele provou ajudar a promover o trabalho em equipe e melhores estimativas.
  • A integração contínua (CI) é uma prática comum de engenharia ágil que envolve a integração frequente de alterações de código na ramificação principal. Uma compilação automatizada verifica as alterações. Como resultado, há uma redução na dívida de integração e um ramo principal continuamente enviável.

Essas práticas, como todas as práticas ágeis, carregam o rótulo ágil , porque são consistentes com os princípios do manifesto ágil.

O que o Agile não é

À medida que o Agile ganhou popularidade, muitos estereótipos e interpretações erradas lançaram uma sombra negativa sobre a sua eficácia. É fácil dizer "Sim, estamos fazendo Agile", sem qualquer responsabilidade. Tendo este ponto em mente, considere algumas coisas que o Agile não é.

  • Agile não é codificação de cowboy. O Agile não deve ser confundido com uma abordagem "vamos descobrir à medida que avançamos" para o desenvolvimento de software. Tal ideia não poderia estar mais longe da verdade. O Agile requer uma definição de valor feito e explícito que é entregue aos clientes em cada sprint. Enquanto o Agile valoriza a autonomia para indivíduos e equipes, enfatiza a autonomia alinhada para garantir que a maior autonomia produza maior valor.
  • Ágil não é sem rigor e planejamento. Pelo contrário, as metodologias e práticas ágeis normalmente enfatizam a disciplina no planejamento. A chave é o planejamento contínuo durante todo o projeto, não apenas o planejamento inicial. O planejamento contínuo garante que a equipe possa aprender com o trabalho que executa. Através dessa abordagem, eles maximizam o retorno sobre o investimento (ROI) do planejamento.

"Os planos não valem nada, mas o planeamento é tudo." — Dwight D. Eisenhower

  • O Agile não é uma desculpa para a falta de um roteiro. Este equívoco provavelmente causou mais danos ao movimento Agile em geral. As organizações e equipas que seguem uma abordagem Agile sabem absolutamente para onde vão e os resultados que querem alcançar. Reconhecer a mudança como parte do processo é diferente de girar em uma nova direção a cada semana, sprint ou mês.
  • Agile não é desenvolvimento sem especificações. É necessário, em qualquer projeto, manter sua equipe alinhada sobre o porquê e como o trabalho acontece. Uma abordagem ágil para especificações inclui garantir que as especificações sejam dimensionadas corretamente e que reflitam adequadamente como a equipe sequencia e entrega o trabalho.
  • O Agile não é incapaz de acomodar trabalhos não planejados e outras interrupções. É importante completar os sprints dentro do prazo. Mas só porque surge um problema que desvia o desenvolvimento não significa que um sprint tenha que falhar. As equipes podem planejar interrupções designando recursos com antecedência para problemas e problemas inesperados. Então eles podem resolver essas questões, mas permanecer no caminho certo com o desenvolvimento.
  • O Agile não é inadequado para grandes organizações. Uma queixa comum é que a colaboração, um componente-chave das metodologias ágeis, é difícil em grandes equipes. Outro problema é que abordagens escaláveis para o Agile introduzem estrutura e métodos que comprometem a flexibilidade. Apesar desses equívocos, é possível escalar os princípios ágeis com sucesso. Para obter informações sobre como superar essas dificuldades, consulte Dimensionamento ágil para grandes equipes.
  • O Agile não é ineficiente. Para se adaptarem às necessidades em constante mudança dos clientes, os desenvolvedores investem tempo a cada iteração para demonstrar um produto funcional e coletar feedback. É verdade que esses esforços reduzem o tempo que gastam no desenvolvimento. Mas incorporar as solicitações dos clientes logo no início economiza tempo significativo depois. Quando os recursos permanecem alinhados com a visão do cliente, os desenvolvedores evitam grandes revisões no futuro.
  • O Agile não é uma opção inadequada para os aplicativos atuais, que geralmente se concentram no streaming de dados. Esses projetos normalmente envolvem mais modelagem de dados e cargas de trabalho de extração-transformação-carga (ETL) do que interfaces de usuário. Este fato torna difícil demonstrar software utilizável em um cronograma consistente e apertado. Mas, ajustando as metas, os desenvolvedores ainda podem usar uma abordagem ágil. Em vez de trabalhar para realizar tarefas a cada iteração, os desenvolvedores podem se concentrar na execução de experimentos de dados. Em vez de apresentar um produto funcional a cada poucas semanas, eles podem ter como objetivo entender melhor os dados.

Porquê Agile?

Então, por que alguém consideraria uma abordagem ágil? É claro que as regras de engajamento em torno da construção de software mudaram fundamentalmente nos últimos 10-15 anos. Muitas das atividades são semelhantes, mas a paisagem e os ambientes onde as aplicamos são visivelmente diferentes.

  • Compare como é comprar software hoje com o início dos anos 2000. Com que frequência as pessoas se dirigem à loja para comprar software de negócios?
  • Considere como o feedback dos clientes é coletado sobre os produtos. Como é que uma equipa compreendeu o que as pessoas pensavam sobre o seu software antes das redes sociais?
  • Considere a frequência com que uma equipe deseja atualizar e melhorar o software que entrega. As atualizações anuais já não são viáveis contra a concorrência moderna.

Diego Lo Guidice da Forrester diz melhor em seu blog, Transforming Application Delivery (outubro de 2020).

"Tudo mudou drasticamente. A sustentabilidade, além de verde e limpa, significa que o que construímos hoje tem que ser fácil e rapidamente mudado amanhã. Os planos estratégicos são de curto prazo, e o planejamento e a mudança são contínuos." — Diego Lo Guidice, Forrester

As regras mudaram, e organizações em todo o mundo agora adaptam sua abordagem ao desenvolvimento de software de acordo. Métodos e práticas ágeis não prometem resolver todos os problemas. Mas eles prometem estabelecer uma cultura e um ambiente onde as soluções emergem por meio da colaboração, planejamento e aprendizado contínuos e um desejo de enviar software de alta qualidade com mais frequência.

Próximos passos

Decidir seguir o caminho ágil para o desenvolvimento de software pode introduzir algumas oportunidades interessantes para melhorar seu processo de DevOps. Um conjunto chave de considerações se concentra em como o desenvolvimento ágil se compara e contrasta com a abordagem atual de uma organização.