You are on page 1of 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.

You might also like