Você está na página 1de 2

A adoção das metodologias ágeis no desenvolvimento de software

O desenvolvimento de software tem ficado cada vez mais complexo desde o seu surgimento. No
começo, muitas práticas de engenharia foram adaptadas e a metodologia sequencial,
denominada Cascata, foi a mais utilizada. Durante o amplo uso dessa metodologia, novas
arquiteturas e metodologias foram desenvolvidas para atender os problemas mais específicos e
recorrentes na área de software, como documentações desatualizadas, frequentes mudanças
de requisitos, atritos nas negociações de contratos com os clientes, entre outros. Com as
dificuldades, novas meios foram desenvolvidos. Em 2001 ocorreu um evento marcante para a
adoção de novas metodologias de desenvolvimento de software, nesse ano foi publicado o
Manifesto Ágil.

O Manifesto Ágil foi um documento elaborado por dezessete desenvolvedores críticos dos
padrões de desenvolvimento de software da época, que decidiram se reunir para discutir os
problemas recorrentes e chegaram a um consenso sobre um jeito melhor de abordar o
desenvolvimento de software. Esse jeito é descrito por meio de princípios e valores, com a
prioridade principal de satisfazer o cliente por meio de entregas rápidas e continuas de software.
No Manifesto Ágil estão presentes contrastes do que é mais valorizado no desenvolvimento de
software para atender essa prioridade, que exige maior adaptação a mudança e entrega
contínua de software. Para que isso ocorra, há uma redução na parte burocrática, por meio da
valorização maior dos indivíduos em vez de processos, software em funcionamento em vez de
documentação abrangente, colaboração com o cliente em vez de negociação de contratos,
responder as mudanças em vez de seguir um plano.

Com o tempo, as metodologias de desenvolvimento de software com base nos mesmos


princípios do manifesto ágil ganharam cada vez mais relevância. Uma importante metodologia
que veio a emergir foi a Extreme Programming (XP), desenvolvida anteriormente por um dos
signatários do manifesto ágil e aperfeiçoada ao longo do tempo. Ela buscou elencar práticas que
levam todas as características que são consideradas mais benéficas no manifesto ágil ao
extremo. A exemplo disso, como a revisão de código é considerada benéfica, levado ao extremo
temos a programação em par. Outros exemplos de métodos e práticas de engenharia de
software para XP são: testar antes de programar (TDD), integração contínua, implantação
contínua, código coletivo, base de código única e implantação diária.

Outra ferramenta relacionada ao movimento ágil é o Scrum. Um framework que começou a ser
utilizado nos anos 90, que promove o uso constante de iterações para constante inspeção,
adaptação e validação de software. O framework é constituído principalmente de papéis,
cerimônias e artefatos.

Um time Scrum tipicamente é composto de um Product Owner (PO), Desenvolvedores e o Scrum


Master (SM). O PO é responsável por manter a relação de requisitos dos clientes priorizados,
em um artefato conhecido como Product Backlog. Para atender ao backlog são executadas as
Sprints, que é um ciclo desenvolvimento. Esse ciclo se inicia com a cerimônia de Sprint Planning,
que reúne os desenvolvedos e o PO para acordar sobre a meta do ciclo (Sprint), o que será
desenvolvido e o dimensionamento de complexidade das atividades. As tarefas detalhadas para
desenvolvimento são armazenadas em um artefato chamado Sprint Backlog. Diariamente os
desenvolvedores se reúnem para se manter cientes do andamento das atividades e o Scrum
Master atua na remoção de impedimentos identificados pela equipe e dá suporte para a correta
aplicação do framework. Uma Sprint leva em torno de 1 a 4 semanas e ao final dela deve ser
apresentado e entregue ao PO um pacote potencialmente implantável, em uma cerimônia
conhecida como Sprint Review. Por fim, ocorre a Sprint Retrospective, que busca refletir sobre
a Sprint que foi concluída, para identificar o que pode ir melhor, o que não foi bem e o que
poderia ser feito de forma diferente na próxima Sprint.

Atualmente, as metodologias, frameworks, processos e métodos baseados nos princípios ágeis


de desenvolvimento de software tornaram-se bem populares. Os benefícios de técnicas como
TDD (Test Driven Development), Continuous Integration (CI) e Continuous Deployment (CD) são
frequentemente notados e requisitados no desenvolvimento de software complexos, pois há
um retorno real de longo prazo na manutenção e evolução do código. Porém, nenhuma técnica
está isenta de críticas e avaliação de sua utilização. Por exemplo, o custo maior para desenvolver
em pares, preparar o código para testes, integração e implantação automatizados, bem como
críticas aos frameworks, como o Scrum, que por não exigir uma formalização e dar muita
abertura as mudanças, podem gerar muito retrabalho e dar espaço para a inclusão de requisitos
indefinitivamente. Outras práticas como reuniões diárias, também podem dispersar a atenção
dos desenvolvedores e levar a questionamentos improdutivos, ou até mesmo criar uma
sensação ruim de ambiente com microgerenciamento. Acredito que o melhor é conhecer bem
os processos, métodos e ferramentas para utilizá-los com flexibilidade, de acordo com as
expectativas e características da equipe de desenvolvimento, dos clientes e dos projetos que
serão desenvolvidos.

Você também pode gostar