Saltar para: Post [1], Pesquisa e Arquivos [2]

Profissional Moderno

Profissional Moderno

08 de Março, 2019

Mas afinal o que é o Agile?

Luís Rito

Não sei se é por estar na moda, mas hoje em dia todos falam de Agile.

 

Fico sempre na dúvida se sabem de facto o que significa uma gestão de projetos verdadeiramente ágil, e na grande maioria das vezes percebo que não. Dou um exemplo, existe muito a crença que assim que começamos a utilizar uma gestão de projetos agile, todos os nossos problemas passam a fazer parte do passado. Afinal, não precisamos de planear, não precisamos de produzir documentação e passamos a poder colar post-its na parede, o que nos faz parecer de repente que pertencemos a uma start-up e que somos muito "Cool". Se pensas assim, lamento mas o agile não é nada disto!

 

Na realidade, o agile são um conjunto de princípios e valores que foram criados por um conjunto de 17 pessoas em 2001! Pois, aquilo que pensas que é muito recente já leva uns anos de vida. Ao conjunto de valores que foram criados chamamos "Agile Manifesto".

 

Os valores são (vou deixar em inglês, tal como o original):

 

We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:

 

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

 

That is, while there is value in the items on
the right, we value the items on the left more.

 

Mas afinal o que é que significa tudo isto? Significa que para abraçamos o agile, temos que guiar as nossas ações do dia a dia de acordo com estes valores. Sempre que nos deparamos com uma decisão difícil, devemos pensar se estamos ou não a ir de encontro ao que está escrito naquelas 4 linhas que referi acima. Passo a explicar uma a uma.

 

Individuals and interactions over processes and tools

 

Na prática, isto significa que em agile se dá muita prioridade às pessoas, e à forma como se comunica. Comunicação cara a cara é muito valorizada, e existe o conceito de equipas multidisciplinares, onde facilmente todos os membros da equipa têm acesso a um conjunto amplo de conhecimento. Conheço casos em que se dá demasiado valor aos processos e ferramentas, o que origina muitas vezes tempos de espera grandes em cada fase do processo. Quanto mais complexo o processo, maior o tempo até à sua conclusão, resultando em lead times elevados. Sempre que possível, levanta o rabo da cadeira e fala diretamente com quem precisas, envia email somente quando necessário.

 

Working software over comprehensive documentation

 

Isto não significa que em agile vamos deixar de produzir documentação, não é nada disso. Mas pode significar que por exemplo a equipa pode avançar com o desenvolvimento de forma paralela à criação da documentação, não é necessário esperar que tudo esteja perfeitamente especificado para avançar. Em agile a medida real de progresso é trabalho realizado. De nada adianta ter toda a documentação bem realizada e bonita se depois falhámos completamente a data de entrega do projeto.

 

Customer collaboration over contract negotiation

 

Quem conhece a gestão de projeto tradicional, sabe que o gestor de projeto tenta no início do projeto fechar o seu âmbito o mais rápido possível. Isto permite-lhe fazer um plano de projeto e segui-lo passo a passo até ao seu final. Arrisco-me a dizer que em 99% das vezes existem alterações inevitáveis ao âmbito do projeto. Sejamos realistas, para conseguir planear com 100% de rigor teríamos de dispender muito tempo nesta fase, o que colide com o valor que falámos atrás. Hoje em dia os projetos têm que ver a luz do dia bem rápido, as empresas não se podem dar ao luxo de passar vários meses a fazer somente análise e planeamento. Dito isto, o que normalmente acontece na gestão de projetos tradicional é uma negociação constante entre o gestor do projeto e o cliente, ou seja, o cliente tenta incluir mais âmbito e o gestor de projeto tenta restringir ao máximo a entrada de alterações ao plano inicial. O agile defende que se deve colaborar com o nosso cliente, e não estar constantemente a negociar. Quanto mais envolvido estiver o cliente mais hipóteses do projeto ser um caso de sucesso. Ninguém vai destruir aquilo que ajudou a construir!

 

Responding to change over following a plan

 

Outra grande diferença entre uma gestão de projetos tradicional e o agile, é que na segunda, mudanças ao âmbito não são vistas como um risco ou como um custo. O agile abraça a adição de alterações no projeto, mesmo quando introduzidas numa fase tardia. Mais uma vez, isto deve-se ao facto do ritmo de mudança ser nos dias que correm muito rápido. Algo que era dado como adquirido à 6 meses atrás pode ser completamente diferente hoje. Os projetos têm que ter a capacidade de se adaptar a novas realidades. De nada serve acabar um projeto dentro do prazo e dentro do custo, se depois o produto final não vai de encontro ao que a empresa necessita. Muitas vezes são situações tão simples como, uma empresa concorrente inclui uma nova inovação, e a empresa onde estamos a executar o projeto tem que se adaptar rapidamente, sob pena de perder uma fatia da sua quota de mercado. No agile, a restrição mais importante é sempre o tempo, e nunca o âmbito. A grande luta é acabar o projeto on time, mesmo que tenhamos que excluir algum âmbito inicialmente definido para incluirmos novas funcionalidades não planeadas.

 

Para além dos valores descritos acima, existem ainda 12 princípios que funcionam como uma espécie de credo para os agilistas.

 

1) Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.

 

2) Welcome changing requirements, even late in
development. Agile processes harness change for
the customer's competitive advantage.

 

3) Deliver working software frequently, from a
couple of weeks to a couple of months, with a
preference to the shorter timescale.

 

4) Business people and developers must work
together daily throughout the project.

 

5) Build projects around motivated individuals.
Give them the environment and support they need,
and trust them to get the job done.

 

6) The most efficient and effective method of
conveying information to and within a development
team is face-to-face conversation.

 

7) Working software is the primary measure of progress.

 

8) Agile processes promote sustainable development.
The sponsors, developers, and users should be able
to maintain a constant pace indefinitely.

 

9) Continuous attention to technical excellence
and good design enhances agility.

 

10) Simplicity--the art of maximizing the amount
of work not done--is essential.

 

11) The best architectures, requirements, and designs
emerge from self-organizing teams.

 

12) At regular intervals, the team reflects on how
to become more effective, then tunes and adjusts
its behavior accordingly.

 

Se tiveres mais curiosidade sobre este tema, dá uma vista de olhos no site do Agile Manifesto.

Podes encontrá-lo aqui:

https://agilemanifesto.org/ 

 

Até à próxima!