quinta-feira, 4 de junho de 2015

O Fim do 'Agil'

Alguns dias atrás li um artigo muito interessante, "The Failure of Agile", onde o autor, Andy Hunt, decreta o fim da era das metodologias 'ágeis'. Não é o primeiro a criticar o modismo autoproclamado como 'ágil', mas pelo que sei é o primeiro dos autores do manifesto ágil a fazer isso de forma explícita.
Quando o manifesto ágil foi lançado, a 14 anos, eu já programava profissionalmente a 16 anos e, pragmático, não dei muita atenção. Com o aumento da repercussão do manifesto, da criação da extreme programming e da cobrança entre meus pares me senti na obrigação de estudar o assunto mais a fundo. Li, assisti e ouvi um emaranhado de bobagens sob a nomenclatura de técnicas e metodologias ágeis. Algumas eram experimentos acadêmicos sem nenhum embasamento prático real, outros eram técnicas efetivas que já eram conhecidas e usadas desde muito antes do manifesto com uma roupagem diferente. Tinha alguma coisa de novidade boa realmente, fruto da experiência e bom senso, mas que por si só não merecia ser definido como metodologia. Quando li o livro "Scrum and XP from the Trenches" eu realmente desisti de aplicar de forma sistemática essas técnicas em minha equipe pois reforçou minha percepção de que a aplicação dessas técnicas exigiria ambientes bem especializados e um nível de experiência muito alto entre todos os desenvolvedores. Ou seja: não é que não funcionasse, mas para funcionar sairia muito caro, talvez mais caro do que uma abordagem mais tradicional. Achei inviável.

Delegação de tarefas e documentação

Uma equipe bem equilibrada deve ter desenvolvedores experientes, pouco experientes e inexperientes e a distribuição de tarefas deve seguir algumas regras bem definidas e claras para todos, de modo a ponderar tanto as competências quanto o conforto e o custo. Por exemplo: delegar tarefas básicas ou enfadonhas para desenvolvedores experiência é um convite ao desestímulo. Delegar tarefas complexas a desenvolvedores inexperientes é um convite ao desastre.
A busca pelo graal da agilidade fez outra baixa importante: a documentação. Sob a égide de ser ágil, decretou-se a morte da documentação. Tarefas passaram a ser delegadas 'de boca' e executadas sem nenhuma documentação. Ok, ok... metodologias formais demais, derivadas de ambientes paquidérmicos pregavam uma formalização absolutamente desnecessária no processo de desenvolvimento. De fato, nos primórdios :-), a delegação de tarefas, especificações funcionais e técnicas que nunca mais seriam lidas eram realmente criadas com um rigor e formalização absurdos e isso criou uma certa repulsa, revolta, que acabou criando a cultura do protótipo no guardanapo.

Testes e Integração Contínua

Apesar de desprezar a aplicação de testes unitários demais em sistemas de uso geral, penso que a visão inicial de automação dos testes unitários foi o que deu origem à visão mais pragmática e realista dos testes funcionais automatizados.
A integração contínua foi uma grande ideia. Não necessariamente, mas preferencialmente, conectados, a integração contínua e os testes automatizados criam um ambiente de relativa 'tranquilidade' no dia a dia do desenvolvimento. Talvez esses tenham sido os grandes legados da era 'ágil'.

Bala de prata

Como todo modismo passa, não me surpreendeu que esse também definhasse. No que diz respeito ao Andy Hunt, aparentemente ele está em busca de algo mais pé no chão através da defesa de uma visão mais focada em cada ambiente, ao invés de vender uma bala de prata, como faz a maioria dos especialistas da área.

Nenhum comentário: