quarta-feira, 15 de setembro de 2010

Ser ágil não é fácil

Trabalhando há algum tempo em equipes ágeis percebo que algumas coisas não são muito bem compreendidas por quem decide formar uma equipe assim, em boa parte dos casos.

O que mais percebo em conversas, ou até em algumas equipes que já trabalhei, é que o desenvolvimento ágil muitas vezes é visto pelo gerente como uma ferramenta para motivar a equipe. O pessoal fica feliz porque está trabalhando com tendências da moda, cola post it aqui e ali e tudo flui bem, tudo continua como era antes, apenas diminuímos a documentação.

Se você pensa assim, saiba que pode está cometendo um grande erro e você pode levar seu projeto a falência.

Ser ágil não é fácil como parece, os princípios por trás do manifesto exigem uma equipe muito bem preparada.

Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor.

O principal objetivo de ser ágil é entregar valor ao cliente, entregar cedo e de forma contínua. Para chegar a esse objetivo você não vai desenvolver em módulos, fazer toda uma parte do sistema e depois ir pra outra e não voltar nessa parte tão cedo. Você vai desenvolver um todo, que funciona, de forma simples, e ficar melhorando todas as partes desse todo incrementalmente e continuamente.

Isso exige muito mais maturidade da equipe do que um projeto não ágil. Para fazer essa refatoração contínua (e criação de novas funcionalidades) nesse sistema em constante mudança você vai precisar de, no mínimo, uma ótima cobertura de testes.

Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o cliente possa tirar vantagens competitivas.

Se entrega de valor já faz com que você tenha que adaptar e evoluir um código constantemente, imagine mudanças de requisitos no meio do projeto.

Aonde eu quero chegar

O que eu estou querendo dizer com isso tudo é que desenvolvimento ágil na minha opinião é a maneira mais eficaz de se desenvolver software, se a decisão for minha eu com certeza vou optar por ela. Mas que fique bem claro que essa é uma forma de desenvolvimento difícil, que exige bastante da equipe.

Chegaria até a dizer que não é viável criar uma equipe ágil apenas com desenvolvedores inexperientes. Digo isso porque geralmente uma equipe iniciante, para atender à demanda flexível de um projeto ágil, acaba criando código difícil de lidar e, em pouco tempo, gera um projeto engessado, difícil de expandir.

Lembre-se:

Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem ser capazes de manter indefinidamente, passos constantes.

A velocidade de entrega de valor deve ser constante, mesmo após um tempo de projeto.

Se você gerente, deseja formar uma equipe ágil, tome essa decisão de forma consciente, sabendo que há muito trabalho à fazer, que será preciso investir na equipe. Que desenvolvimento ágil exige muito comprometimento por parte de todos e aponta falhas.

Uma vez que você sabe que desenvolvimento ágil não é mais fácil ou mais tranquilo que os demais e mesmo assim deseja adotá-lo, querendo obter o real valor dele, seja bem vindo =)