28 maio 2008

Falando em Agilidade: o discurso certo para o público certo.

Já tem algum tempo que me interesso muito por XP. Minha primeira tentativa de usar a metodologia em um projeto real foi em 2004. De lá pra cá, tentei muitas vezes falar sobre XP nos locais onde trabalhei, tentando influenciar de alguma forma o modo como desenvolvíamos software.

No entanto, foi só a partir do ano passado que essas iniciativas começaram a surtir efeito. Hoje já estamos usando grande parte das práticas de XP em 4 projetos na SEA, e considero que pelo menos outros 2 foram muito bem sucedidos especialmente por conta delas.

Apesar dos casos de sucesso que tivemos, ainda acho bem difícil convencer alguns grupos a darem mais atenção a essa inevitável mudança de paradigma por que nossa indústria vem passando.

Recentemente, tive a oportunidade de apresentar algumas palestras sobre XP e Scrum em algumas empresas de Brasília e na UnB. Semana passada, foi a primeira vez que apresentei uma palestra sobre RubyOnRails, dessa vez para estudantes de graduação da Unip, aqui em Brasília.

Dessas experiências, tirei uma conclusão que a partir de agora passará a fazer parte da minha caixa de ferramentas sempre que for chamado para outras apresentações sobre Agilidade: Se for apresentar para gerentes e executivos, fale de Scrum; se for falar para programadores e/ou estudantes, fale de Rails.


Algumas das apresentações mencionadas foram decisivas pra essa conclusão. uma delas foi a palestra que fiz sobre metodologias ágeis na semana de extensão da UnB. Para essa palestra, escrevi um resumo super cuidadoso, relacionando a agilidade com o tema maior do evento - sustentabilidade. Resultado: não apareceu ninguém. Estudantes de graduação simplesmente não têm o menor interesse em assuntos como metodologias de desenvolvimento. Talvez porque ainda não compreendam a importância do assunto.

Outra experiência importante foi a apresentação de Rails na Unip. Como preparei tudo com bastante pressa, acabei pecando no ponto mais básico de todos: o público alvo. Preparei uma apresentação cheia de exemplos de código e explicações técnicas; comparações com Java, etc. Ao começar a apresentação, percebi que estava em uma enrascada. Aproximadamente 90% do público nunca havia programado profissionalmente ainda!

Fui em frente, fiz minha apresentação, e no final, quando havia planejado uma demonstração, acabei preferindo terminar sem fazer a demonstração. Afinal, já havia mostrado tanto código que achei que a demonstração fosse ficar mais chata ainda.

A grande surpresa é que a reação da platéia foi exatamente a contrária. Todos adoraram a idéia da demonstração e ninguém se levantou, como eu havia imaginado. Achei ótimo! O Paulão colocou uma musiquinha ambiente, sentei na mesa com o microfone e programei uns 2 casos de usos simples narrando passo a passo cada linha de código programada. Foi super legal!

Em contrapartida, ao falar para gerentes e executivos, o que sempre percebi foi uma resistência terrível às práticas de XP, especialmente as mais relacionadas com atividades de engenharia: programação em par, testes automáticos, design evolutivo. São práticas que simplesmente não entram na cabeça dessas pessoas.

Mas, ao falar de Scrum ao invés de XP, tudo muda! As práticas de engenharia (mais controversas) não estão na pauta, temos gráficos bonitos e bem apresentados, argumentos pomposos, certificações e tudo mais que essa turma adora!

Portanto, se vc tem uma apresentação de XP a fazer, considere bem seu público. Estudantes e programadores jovens não se interessam por metodologias, mas ficam fascinados ao ver uma demonstração de RoR. Enquanto isso, bombardeie valores e princípios ágeis. Gerentes em geral são tão preconceituosos com XP, que antes mesmo de começar a apresentação, já terá várias críticas para responder. Apresente-lhes Scrum, com seus gráficos bonitos e certificações, que as portas se abrirão como mágica.