Alguns dias atrás eu comentava com um colega de trabalho, sobre o meu sentimento de que o “agilismo” (ou seja lá qual for o termo) já se tornou a moda da vez. Os “xipezeiros”, “scrunzeiros” e agilistas de plantão estufam o peito pra falar dos seus “sprints”… que utilizam quadros brancos… que tem post-its colados por toda empresa… que UML não serve pra náda… e que ser ágil é sentar e sair programando.
Tenho o sentimento que muitas pessoas e consequentemente empresas, se juntam a manáda e começam a utilizar alguma metodologia, porque alguém disse que é bom, ou porque o blog do momento falou que é “cool” ser ágil.
Qual a empresa de tecnologia hoje, ser arriscaria a dizer para seu cliente que não é “Ágil” ?
Todo mundo tenta desesperadamente ser ágil.
Até a IBM, quer ser ágil.

Tenho a impressão que essa busca incansável, é motivada principalmente por 2 coisas:
- a primeira é que já sofremos muito durante os últimos anos tentando fazer software
Quem já trabalhou numa fábrica de software, numa consultoria de 3 letrinhas, já encarou caso de uso de mais de 100 páginas, ou quis modelar um ERP inteiro em UML antes de começar a programar, sabe bem do que estou falando. Para quem já está na labuta a pelo menos uns 10 anos e passou por tudo isso já aprendeu que algumas coisas nem sempre funcionam. E vêem o agile como a melhor opção disponível para desenvolver software atualmente.
- a segunda é a falsa idéia de que as metodologias ágeis pregam… não utilizar metodologia alguma..!!!
Isso é fato quando se vê muita gente em fóruns e afins, falando que na suas empresas não tem análise, não tem documentação ou burocracia alguma...que após uma reunião, todos os programadores se debruçam-se sobre seus teclados e se põe a codificar até que algo seja “entregável” para o cliente.
Bem, IMHO isso me parece muito mais um XGH…. ou um “Just Do-it Programming” disfarçado de scrum.
Acho que muita gente que está entrando no mercado de trabalho recentemente (a uns 3 ou 4 anos), diz que utiliza XP, Scrum, Lean ou qualquer metodolgia ágil porque tem a ilusão de que é fácil de implementar.
“Se não tem documentação… não tem formalidade alguma….se é só fazer uma reunião de 15 min durante a manhã e programar durante o resto do dia… eu também posso ser ágil… vamos implementar isso aqui na nossa empresa !!!”
Essa é uma das maiores falácias do desenvolvimento de software. Por experiência própria, eu posso dizer que aplicar uma metodologia como Scrum ou XP na prática numa empresa e obter resultados positivos é um trabalho árduo. É difícil e vai requerer uma paciência que você achava que não tinha. Ao contrário do que muitos pensam, aplicar algumas práticas do XP, como o TDD por exemplo, vai exigir muito mais disciplina de uma equipe, do que se ela estivesse trabalhando numa fábrica de software com CMM5.
Com tudo isso, surgiram inúmeros cursos Scrum e XP por aí… apareceram centanas de especialistas em agile, que prometem demonstrar um conjunto de práticas para tornar qualquer empresa ágil…acabando com seus problemas de escopo, prazo e relacionamento com o cliente.
A verdade é que não existe uma fórmula, ou receita de bolo pra isso. A bala de prata não existe. Cada empresa tem uma caracterísitca….cada projeto tem um contexto… que faz com que seja necessário escolher as melhores práticas em cada situação.
A melhor idéia de agile que tenho até o momento, foram as palavras de Philippe Kruchten no seu keynote no final semana passado, no agile brazil 2010:
“Software development is not a Natural Science like Physics or any other. In Agile Software Develpment, we have different methods (aka: scrum, xp, lean) for diferente issues. We have to ask ourselves which practices or methods will fit better in our project context”
“Why we’re using XP ? What practices will fit better in these project ? … and why we’re doing this any way?”
Você consegue imaginar a utilização de XP no desenvolvimento do software que contola um caça F-35 ?
Xispezeiro: “Sem problemas, nessas duas primeiras semanas vamos entregar a parte que faz ligar o motor e você já pode decolar com o avião”
Piloto: “E o controlador de vôo ?”
Xispezeiro: “O que ? O controlador de vôo ? Mas você vai precisar disso mesmo ? O mais importante agora é decolar… depois conversamos sobre o controlador de vôo…”
Não conheço náda de aeronáutica, mas é bem provável que um projeto de desse tipo seja obrigado a ter uma fase muito detalhada de design e documentação, porque um erro de projeto, pode gerar um prejuízo estratosférico.
E gerar muita documentação nesse caso está errado? Você faria uma reunião de 4 horinhas pra modelar uma funcionalidade num F-35 ?
Claro que esse é um exemplo extremo, mas existem muitas organizações e ramos de negócio que precisam de mais formalidade e provavelmente teriam muitas dificuldades implementando métodos ágeis.
Por isso que contexto, é fundamental.
Com toda essa confusão de post-its e sprints do falso agile, os verdadeiros valores do manifesto ágil acabam ficando em segundo plano para maioria das pessoas. Acabamos desconsiderando o mais importante: o contexto no qual estamos tentando implementar agilidade.
Por que estamos utlizando essa metodologia ? Qual o problema que estamos tentando resolver ? Essas práticas se encaixam no contexto desse projeto ?
Tags: agile, metodologia








Realmente, parece que a maioria dos “ágil embedded guy’s” pensa que desenvolvimento ágil == XGH (GO Horse).
Não que às vezes não o seja, but… enviroment
Parabéns Kruger, ótimo post!!!!
Keep writing.
Hmm… este exemplo foi meio forçado demais, não?
Para desenvolver um software que controla uma avião eu acho muito difícil que alguém usaria XP. Mas também acho que é muito difícil que alguém usaria Java, .Net, Ruby ou até C/C++, sistemas aviônicos e militares são geralmente produzidos em ADA.
Este tipo de software possui necessidades tão distantes do cenário normal que praticamente nenhuma das ferramentas ou metodologia que usamos faria sentido em plenitude. Isso não quer dizer, entretanto, que os princípios sejam muito diferentes.
[]s
Boa,
é muito mais fácil falar o que é ser ágil do que realmente ser. Entender toda a metodologia SCRUM e XP por exemplo não deve ser mais que 2% de todo o trabalho de adotar uma delas.
Até!
João.
Opa Phillip.. com certeza… programar para um f-35 foi forçado mesmo…
E você tem razão quando diz que nenhuma tecnologia padrão do nosso dia-a-dia iria resolver um problemão desse…
Mas o exagero foi proposital…
tenho a impressão que muitas empresas acabam dizendo que estão implementando XP, Scrum…
mas na maioria das vezes muito pouco sabem o que estão fazendo… e se “tornam ágeis” porque algum gerente ou arquiteto master disse que é legal…
e acabam invariavelmente não conseguindo resultado algum, não porque os métodos não funcionem, mas por pura falta de conhecimento, experiência de como implementá-los..
Vc já não teve essa impressão… principalmente aqui no Brasil ?
ps: gostei muito da apresentação que vc fez no workshop do Rodrigo Yoshima, muito bom !
pena que suas outras propostas não foram aceitas….
abrasss…
Kruger!
Muito bom o comparativo entre a disciplina do TDD e do CMMI, para nós de Joinville que somos acostumados a fazer ERP é até mais fácil escrever um documento detalhado de caso de uso do que mudar a forma de programar que estamos acostumados. Ainda estou tentando me acostumar com esta prática do XP, que acredito ser o principal divisor de águas entre uma empresa que se diz ágil e a empresa que é ágil.
Kruger, Parabéns pelo Post…
Sempre acreditei que modismo e levantar bandeira (defender um modelo até a morte) são atitudes que não minimizam a dificuldade cotidiana que encontramos no desenvolvimento de software.
Creio que toda discussão acerca de uma tecnologia, metodologia, experiencias,… são extremamentes importantes para difusão de idéias e reflexões. Sabemos que a Egenharia Software é imatura frente outras engenharias (será que um dia amadurecerá?), bom essa discussão vai longe…
O Cliente não quer só agilidade, ele quer que você respeite a Tríplice Restrição a favor dele…o desafio é equilibrar isso também no projeto de desenvolvimento de software.
Kruger, muito oportuno o vosso post, valeu