Nesse momento, surgem perguntas errôneas, como por exemplo: "qual é a melhor linguagem de programação?". Vamos discutir mais adiante qual seria a melhor pergunta, antes de encontrar a melhor resposta. O dilema que vivemos hoje em cada projeto foi vivido também nos primórdios da energia elétrica. Veja:
Por volta de 1890, foi anunciado um prêmio para aquele que conseguisse implementar um sistema de distribuição elétrica eficiente. Dentre os inventores que perseguiram a implementação perfeita estavam Thomas Edson e George Westinghouse, juntamente com Nikola Tesla.
Edson propunha o método de transmissão por corrente contínua, no qual em cada quarteirão haveria uma subestação elétrica para manter a tensão elétrica até os pontos necessários. Por outro lado, Tesla e Westinghouse propunham a transmissão por corrente alternada, onde a corrente era elevada a altas tensões para poder ser transmitida a distâncias muito maiores, e a cada subestação a tensão era convertida novamente.
Edson era muito famoso por suas inúmeras invenções, em especial a lâmpada. Ele não era um cientista, antes, era altamente experimental; anotava tudo o que fazia e tinha como meta criar um pequeno invento a cada 10 dias e um grande invento a cada seis meses.
Já Tesla, que era apoiado por Westinghouse, estudou nas melhores universidades e era conhecido pelos seus métodos inovadores e ousados; ele anotava somente o necessário; chegou a trabalhar com Edson quando fora para os EUA, porém isso não perdurou.
Edson, pressionado pelos seus clientes quanto à mudança para corrente alternada, empreendeu diversas campanhas publicitárias para tentar convencer a população de que a corrente alternada era um risco, e não uma solução. Em meio a essa guerra travada, Westinghouse propôs a Edson uma parceria, para que juntos pudessem construir o melhor meio de transmissão; Edson sequer o respondeu.
A dupla Westinghouse e Tesla ganhou a licitação para apresentação na feira de Chicago e, devido a isso, Edson proibiu a utilização das suas lâmpadas, levando Tesla à implementação de uma nova lâmpada para utilizar na apresentação - que foi um sucesso: toda a cidade iluminada e a premiação das Cataratas do Niágara garantida a eles. A corrente alternada se popularizou, sendo um método de transmissão utilizado no sistema elétrico conhecido nos nossos dias.
Podemos ver semelhanças entre o que houve na guerra elétrica com o que vivemos nos dias de hoje, estamos em meio a uma corrida para o melhor desenvolvimento, as melhores tecnologias e os melhores métodos que propiciem o desenvolvimento em custo, tempo e qualidade satisfatórios. Afinal, qual é a melhor linguagem? Qual o melhor método de desenvolvimento de software?
Acho que não existe uma resposta única para cada pergunta. Creio que as linguagens que temos à disposição e as metodologias que podemos usar para implementar softwares devem ser utilizadas no momento oportuno. É uma questão de estratégia, muito mais do que um assunto de preferências pessoais. Ou seja, não há melhores e piores, mas sim o mais adequado.
Encontramos no mercado de TI profissionais com estilos como Edson e Tesla: percebe-se que Edson tinha uma metodologia parecida com o Scrum, no que condiz às metas de implementação; por outro lado, ele era altamente documental. Já Tesla era simplista, documentava o necessário e tinha seu foco voltado para resultados. Ambos foram gênios que fizeram grandes descobertas na História, mas o que fica muito explícito na "guerra elétrica" foi o ego: Edson sabia que a corrente contínua não era ideal para a necessidade, mas, por ele ser "o grande Edson", não quis "dar o braço a torcer"; não foi o seu jeito de trabalhar que o levou à derrota, nem mesmo o seu conhecimento, e sim o ego. Por outro lado, as decisões ousadas por parte de Westinghouse e Tesla foram decisivas para o sucesso do projeto.
Para vermos a mesma guerra que foi travada entre Edson e Tesla/Westinghouse, basta acessarmos grupos de discussão sobre Gerência de Projetos, Engenharia de Software e Linguagem de Programação; encontraremos inúmeros "Edsons" e "Teslas" discutindo se devem aplicar Agilidade em tudo, ou usar .Net para todos os projetos, e outras discussões como essas, que não levam a nenhum lugar concreto e raramente servem para outra coisa se não expor uma opinião pessoal.
E então surgem as perguntas... "E se o ambiente for Linux? Vou forçar Mono para manter .Net ou implementaria com Java? Será que não preciso conhecer o todo para implementar as partes?
Se for implementar uma baleia, eu não preciso saber de toda a baleia? E se eu implementar só a nadadeira, no final não correria o risco de ter uma nadadeira de golfinho para colocar em uma baleia?
Será que a mesma regra realmente pode ser sempre aplicada? Até onde nosso objetivo é fazer um bom projeto, ou será que queremos apenas fazer um bom nome? Acredito que se o projeto for bem feito, consequentemente o nome do profissional será "bem feito" também.
Até onde nosso objetivo é a solução ideal, e até onde ele é apenas a nossa opinião? É preciso refletir sobre isso.
artigo publicado originalmente no iMasters, por Bruno Carlos Alves