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 !

Compartilhar:

Este post tem 2 comentários

  1. Vejo muito developer “bitolado” que não sabe o básico de infraestrutura, em que no final finda culpando o ambiente tecnologico (É mais fácil culpar os outros mesmo..) pelo mal funcionamento do software.

    Já vi isso acontecer, e PIOR! Uma empresa de software (só de software mesmo) migrou uma aplicação em clipper para java em um cliente e o que aconteceu? Diversos problemas/bugs do sistema novo que não estava pronto, e a culpa dele não ter rodado bem foi a “infra”.

    O que softwarehouse sugeriu?

    Cobrou uma consultoria de 20.000 só para falar “troca isso, troca aquilo, compre um servidor IBM xyz”.

    Resolveu?

    Bem… o ambiente ficou melhor mais o problema/bugs ainda persistem..

    Enfim! Complicado d+!

  2. Sou desenvolvedor Java e sou obrigado a concordar, inúmeras vezes já vi outros desenvolvedores colocarem a culpa na infra ou no banco de dados e quando vai ver é o software. Agora já vi também muita gente de infra dizendo que a culpa era do software, na verificação o servidor tava com gargalo ou porta bloqueada ou configuração feita errada.

    O servidor de aplicação é um ponto de atrito muito comum pq é sempre a questão quem faz a manutenção? A equipe de desenvolvimento ou da infra? Porque é um ponto que afeta profundamente as duas equipes.

    Minha experiência mostra que quando finalmente as duas conseguem trabalhar juntas e juntas eu digo próximas fisicamente a coisa começa a andar melhor, não só porque elas passam a conversar, mas porque começa a ter um certo “relacionamento” entre as equipes coisa que telefone e/ou video conferencia não deixam ter. Outra coisa que ajuda muito é um bom coordenador que mande nas duas áreas pois a prioridade é o cliente e não a área de desenvolvimento e/ou infraestrutura.

    Para equipes de banco de dados a mesma regra se aplica.

Deixe uma resposta

Fechar Menu