Além do .NET

sexta-feira, maio 15, 2009

Viva a soldadesca

Mauro Sant’Anna é um cara que eu admiro e respeito. Gosto do seu jeito franco e direto de avaliar certas tecnologias. Escuto e leio atentamente todas as suas opiniões sobre TI.

Na Edição 19 da MSDN Magazine (hoje .NET Magazine), ele escreveu na sua coluna um texto bem interessante, fazendo uma analogia entre uma equipe de desenvolvimento de software e um exército.

Quando eu li a primeira vez esse texto, em junho de 2005, eu estava começando a minha carreira. Naquela época, eu passei batido por esse artigo, li mas não refleti sobre a boa analogia feita entre uma equipe de desenvolvimento de software e um exército.

O início do texto começa assim:

No exército – ou pelo menos nos filmes americanos sobre o exército – todos os militares, até mesmo generais se consideram “soldados”. Todos já passaram por algum tipo de treinamento básico, quer como simples recrutas, quer em uma escola para oficiais. Todos sabem lutar e atirar, sendo que os oficiais carregam pistolas ao invés de rifles.

Parece lógico que alguém envolvido em uma guerra deva saber lutar e atirar né? Acho que essa analogia estende-se perfeitamente aos Projetos de software, todos os membros de uma equipe devem ter bons e sólidos conhecimentos sobre programação e tecnologia em geral. Mas são conhecimentos sólidos e ATUAIS, e não aquela velha história de que já programou muito em Delphi (ou outra linguagem mais antiga qualquer) mas hoje está enferrujado… essa é a desculpa mais comum que eu escuto. Se está enferrujado não serve para a guerra.

Ele continua o texto falando que o resultado de uma batalha depende tanto das estratégias feitas pelos oficiais quanto pela luta no campo de batalha que é realizada por soldados, cabos e sargentos. Além disso, ele enfatiza:

É até justo dizer que mais pessoas devem ter o conhecimento de luta no campo de batalha do que estratégia, pela simples razão que precisamos de um número bem maior de soldados do que de generais.

Ainda no texto, Mauro conta uma estórinha que funciona bem para reforçar as suas opiniões sobre o assunto.

Vamos imaginar um país – vou chamá-lo de “Polianalandia” no qual os oficiais além de não saberem pegar em armas, não se preocupam em treinar e verificar se os soldados realmente tem as habilidades necessárias à luta. Esses oficiais se trancam em longas reuniões fazendo planejamento e discutindo estratégia. As reuniões produzem sempre documentos coloridos muito bonitos…

Os oficiais então entregam estes documentos aos soldados e dizem que os soldados devem “se preparar para essas batalhas”. Os soldados então, sem ajuda ou supervisão dos oficiais, saem fazendo o que acham correto em termos de preparação para implementar aqueles planos brilhantes.

No decorrer do texto ele questiona se no Brasil os envolvidos no desenvolvimento de software se comportam como os “oficiais” da Polianalandia ou como os do exército dos filmes americanos, e completa:

Infelizmente muitas das pessoas envolvidas hoje no desenvolvimento de software no Brasil acham que apenas as atividades dos oficiais, como “arquitetura”, “levantamento”, “projeto” e “análise” têm mérito e podem ser desempenhadas por pessoas cultas e bem-sucedidas.

Ele continua o texto, falando sobre a importância de valorizar, treinar e acompanhar o trabalho dos Desenvolvedores, preocupando-se em como devemos fazer a programação em si.

O trecho abaixo destaca bem a essência do texto na minha opinião:

O mais irônico é que se um projeto de software é entregue a fase de programação foi feita com certeza. Já as outras etapas “de alto nível” podem não ter sido feitas ou – pior ainda – ter sido feitas “de mentirinha”, onde foram criadas páginas e mais páginas de diagramas inúteis, porque o projeto foi mudando ao longo do desenvolvimento e a documentação inicial tornou-se obsoleta.

Eu li esse texto novamente em maio de 2009, praticamente 4 anos depois, e infelizmente vejo os mesmos problemas da Polianalandia acontecendo a cada novo projeto.