terça-feira, agosto 18, 2009

Agile está morto! D-us salve o Agile!

Morte do Agile? Será que o José Papo enlouqueceu, alguns devem se perguntar? Não enlouqueci não! Na realidade, o que pretendo argumentar aqui é minha opinião (reforçada por outros papas do desenvolvimento de software, como o Ivar Jacobson) de que hoje já deveríamos considerar a distinção entre Agile e “Engenharia de Software Tradicional” como algo do passado. Na realidade, o que argumento é que os princípios e práticas pregados pelos agilistas são a Engenharia de Software da atualidade e do futuro próximo.

Ainda em muitos lugares Agile é visto como uma novidade, mas a realidade é que se você deseja realizar projetos de qualidade e com alta produtividade só conseguirá realmente utilizando as práticas adotadas pelos agilistas.

Assim como o Jacobson, já começo a ver as guerras metodológicas como coisas do passado, brigas de egos entre metodologistas... he, he! Em vez de ficarmos falando de uma metodologia ou processo versus outro devemos focar nos melhores princípios e práticas que nos trarão vantagem competitiva no desenvolvimento de produtos de software com qualidade.

Os princípios já estão claros quais são para as novas organizações de desenvolvimento de software: Os princípios do Manifesto Ágil.

Já as práticas podem mudar e devemos usar aquelas mais interessantes para cada projeto. Se o projeto é complexo e tem um modelo de entidades com um negócio muito rico porque não usar a prática de desenvolver um modelo de domínio, como descrito no FDD? Se temos uma equipe que ainda não se conhece bem porque não usar pair programming do XP?

Outras práticas deveriam ser obrigatórias, pois garantem a qualidade do produto. Desenvolver um novo sistema sem testes unitários automatizados é assinar uma sentença de morte para o projeto antes mesmo dele terminar.

Uma outra notícia interessante que mostra ainda mais essa guinada das empresas para o uso do Agile como o padrão da Engenharia de Software de nossos tempos: Na versão 7.5 do Rational Unified Process é possível encontrar uma série de práticas, obrigatórias ou opcionais. O fundamento do RUP se chama “Agile Core”. Este contém as práticas de desenvolvimento iterativo, planejamento de projetos em dois níveis, Time completo, Test-Driven Development e Integração Contínua.



Essa nova versão reforça ainda mais duas mensagens:

- A primeira é que o RUP está ainda mais Ágil e de forma ainda mais clara.
- E a segunda é que se você ainda usa os artefatos do RUP, mas faz tudo em cascata, sem testes unitários automatizados e sem integração contínua tenho que reforçar a má notícia: você não está usando o RUP!!! Portanto, não culpe o processo ou metodologia pelo fracasso do projeto caso não esteja seguindo seus princípios e práticas fundamentais.

Uma observação importante para aqueles que não entenderam a analogia que fiz no título de meu post. A analogia é com a famosa frase dita quando um rei morre: "O Rei está morto! D-us salve o Rei!". Apesar de parecer apenas definir a sucessão do rei para seu descendente, na realidade esta frase possui significado mais profundo.

Esse significado foi magistralmente detalhado no livro sobra história das idéias no período medieval do historiador judeu Ernst Kantorowickz de título "Os Dois Corpos do Rei". A frase na verdade é um reforço da idéia existente no período medieval de que o rei tinha dois corpos, um físico e outro espiritual. O corpo físico podia morrer, mas o corpo espiritual sempre vive. Essa é analogia que faço então com Agile. Agile, como nome e como corrente, pode morrer. Mas Agile como conceitos, princípios e práticas fundamentais da engenharia de software ficará ainda por muito tempo incorporado na engenharia de software.

5 Comentários:

At 1:31 PM, Blogger Rafael Ramos disse...

Excelente post.

O mais engraçado é que lendo o título do post fiquei meio desanimado... "Como assim? O agile nem chegou no seu topo e já está morto?"...

Vou criar um post no meu blog com um link para o seu.

Deixo um convite para visitar o meu blog: http://conhecimentoeti.blogspot.com

Grande abraço e parabéns pelo post!

 
At 1:09 AM, Blogger フィリッポ -FI.LI.PO- disse...

"mas a realidade é que se você deseja realizar projetos de qualidade e com alta produtividade só conseguirá realmente utilizando as práticas adotadas pelos agilistas."

Infelizmente não concordo com essa afirmação. Basta olhar ao redor para ver que não é bem assim. Muito se fala em métodos ágeis, mas até agora não ví um caso de projeto de alta complexidade e/ou duração que não exija a aplicação de práticas que acabam por descaracterizar um enquadramento dentro do que se chama de "ágil". Fácil é falar, quero ver é na prática!
Abraços!

 
At 9:33 AM, Blogger José Papo, MSc disse...

Olá Filipo,

Creio que você está mal informado. Centenas de empresas já adotam práticas ágeis e tiveram retornos altíssimos em produtividade e qualidade. E não só em projetos peuqenos mas também nos de altíssima complexidade. Creio que você não deve saber, mas o Google utiliza em diversos projetos gigantes o Scrum. Alémd disso, aqui no Brasil, Globo.com e UOL são cases famosos com equipes grandes. Não é porque você não viu que não existe :-) . É preciso pesquisar e estudar mais para olhar as experiências fora de seu mundo.

Abraços!

 
At 3:26 PM, Blogger Davi Luan disse...

"Na realidade, o que pretendo argumentar aqui é minha opinião (reforçada por OUTROS papas do desenvolvimento de software, como o Ivar Jacobson)" (destaque meu)

Então vc se considera um PAPA do desenvolvimento de software? Desculpa aí em vossa santidade! hahaha

#sarcasmo

Falando sério agora, post interessante. O que me irrita muito são os agilistas fanáticos que declaram ódio mortal ao RUP e dizem que devemos seguir o "by-the-book" do SCRUM, XP ou seja lá o que for. Não é assim. Dizer uma coisa dessas já não é ágil, viola os princípios ágeis, os quais vem muito antes das práticas e são suas bases.

Na verdade, dar nomes aos bois é bom para facilitar o diálogo, mas eu quero que se exploda se eu uso agile, RUP, ou o "Processo Davídico". Eu quero um esquema que tenha princípios semelhantes ao do manifesto ágil e que traga satisfação ao time e ao cliente. E ponto.

Como me irritam muitos agilistas de plantão, falam muito sem saber e falam muitas besteiras, se escondendo atrás de certificações toscas e que não valem o papel em que são escritas!

Parabéns pelo artigo, José Papo Furado! :P #naoresistibrincadeira

 
At 8:07 PM, Blogger Francisco das Chagas Alves disse...

Ótimo artigo, José. Aproveitando sua vasta experiência em processos, eu gostaria de tirar uma pequena dúvida sobre as fases do RUP: Um ciclo de desenvolvimento (concepção, elaboração, construção, transição) é sequencial ou não? Eu sei que o RUP em nada deve ser superposto com filosofia Cascata, e que as fases sendo sequenciais não implica isso, mas o próprio Pressman afirma que as fases do processo são concorrentes e escalonadas. Diante do que já li, não concordo que sejam, ainda assim, entendendo que os workflows sim, são processados muitas vezes em paralelo? Saberia/poderia me ajudar?

 

Postar um comentário

Links para este artigo:

Criar um link

<< Home


Veja as Estatísticas