Trabalhar em projetos de implementação de soluções mistas é um das coisas mais estressantes que existem, como em um acordo entre cavalheiros você se compromete em entregar uma infraestrutura robusta e estável e uma outra empresa se compromete em entregar um software funcional e estável, sabemos porém que a realidade não é bem assim, principalmente quando trabalhamos com projetos com prazos apertados, clientes com budget reduzido e fábrica de softwares de fundo de quintal.

Vamos a um exemplo prático, implementação da solução de NFe (Nota Fiscal Eletrônica), o governo brasileiro já havia informado a todas as empresas brasileiras com lucro presumido a necessidade da implementação de um sistema que se comunicasse com o SEFAZ (Secretária da Fazenda de cada Estado) para emissão de uma Nota Fiscal de forma eletrônica, porém como a grande maioria das coisas que acontecem no Brasil, tudo ficou para última hora, as empresas só começaram a se mover faltando poucos meses para data final de implementação, o que resultou em projetos caóticos, sistemas instáveis e muitos problemas.

O interessante disso é que surgiram centenas de empresas que dizem ser especialistas em implementação de NFe, trabalhei com a grande maioria destas empresas e posso afirmar, cada implementação ou solução é diferente devido a uma grande variável: O Cliente. A maioria das soluções de NFe que implementei foram desenvolvidas em JAVA, daí  a necessidade do cliente ter um servidor aplicacional JAVA instalado em sua infraestrutura, correto ? Errado ! Alguns dos fornecedores de NFe esqueceram-se de informar isso aos clientes, legal não ?!

Os fornecedores mais espertos informaram aos seus clientes a necessidade da aquisição de um servidor aplicacional JAVA, a grande maioria recomendou  JBoss, e a explicação para essa indicação é simples, a empresa desenvolvedor da solução de NFe não quer gastar dinheiro com licenciamento, JBoss é freeware. O problema é que a grande maioria dos clientes no Brasil não utiliza JBoss, isso falando de empresas de Telecom e TI, eles utilizam mais o WebLogic ou WebSphere.

Vários desenvolvedores JAVA que leram este trecho acima devem estar falando: Mas isso não é problema, se é JAVA roda em qualquer ambiente! Sim, mas para isso o programa deve ter sido desenvolvido para isso, e vocês não acham que uma fábrica de software de NFe pensou nisso, acham ?!

Nesses 4 anos de implementação de NFe eu me vi frente a uma centena de erros diferentes pois empresas ditas especialistas em NFe não conhecem o básico sobre infraestrutura ou até mesmo como funciona um servidor aplicacional como o WebLogic ou o WebSphere. Erros do tipo: A aplicação não funciona no JRockit, mas roda como uma beleza no SUN Java Hotspot.

Isso porquê fábricas de software de NFe não possuem experiência em desenvolvimento JAVA e nem na realização de testes, é fácil culpar o mordomo, neste caso eu, ou o cara de infraestrutura, mas quando você pega um cara de infraestrutura que possui conhecimentos de desenvolvimento a coisa muda de figura e como muda ! Algumas cenas tinham que ser gravadas pois o pessoal não acreditaria, como por exemplo: O desenvolvedor compilou o código em JAVA SDK 1.6 e queria porque queria que ele rodasse em JAVA SDK 1.5, sem dar erros.

É importante que o profissional de infraestrutura, principalmente aquele que trabalha com suporte a servidores aplicacionais, saiba um pouco de desenvolvimento, assim fica mais fácil identificar o verdadeiro vilão da estória, que nem sempre é o mordomo !