Olá pessoal, boa noite.
Desculpem primeiramente pelo título que é um pouco vago e pelo tamanho do texto.
Estou escrevendo para compartilhar com vocês algo muito desagradável que está acontecendo comigo e gostaria da opinião de vocês sobre o quais atitudes devo ou não tomar.
Bem, a história a seguinte…
No início do segundo semestre de 2007, fiz uma palestra em uma escola onde falei sobre Java. Mostrei o que era, o que podia ser feito, dei exemplos e implementei algumas coisas para o pessoal ver. A resposta a minha palestra foi boa, pois pude aumentar minha rede de contatos.
No final de outubro de 2007, uma pessoa - que vou identificar como “pessoa X” - entrou em contato comigo para que eu fizesse um orçamento de um sistema dado os requisitos levantados por essa mesma pessoa. Analisei os requisitos e estimei o tempo de desenvolvimento para aproximadamente 30 dias.
Um contrato foi confeccionado, onde as partes eram eu (contratado) e a pessoa X (contratante). No contrato era especificado o sistema, o cronograma e os deveres e obrigações de cada parte. Basicamente, o sistema que seria desenvolvido era constituido de vários cadastros básicos e um cadastro principal, onde os dados desse cadastro seriam comercializados depois de um ano ou mais que o sistema estivesse rodando. O sistema não trata nada de dinheiro, pagamento, etc… Seria cobrado o acesso ao sistema, mas isso seria administrado por pessoas e não por processos automáticos na aplicação.
A pessoa X agiu como um intermediário entre eu e a empresa que seria a dona do sistema. Sendo assim, salvo engano, eu teria que prestar contas para o contratante, não a empresa correto?
Vale ressaltar que essa empresa é uma empresa muito conceituada no mercado e o dono dela é uma pessoa muito importante no meio de atuação dessa empresa.
Iniciei o desenvolvimento do sistema e recebi metade do valor combinado. Sempre fui apresentando as versões que iam sendo geradas para a pessoa X para que ela aprovasse ou não o que estava sendo feito. No final do desenvolvimento, a pessoa X contratou um PÉSSIMO serviço de hospedagem. Nessa hospedagem estava rodando o Java 5, Tomcat 5.5 e MySQL 4.1, onde o tomcat era comum a todos que tinham alguma aplicação em Java hospedada nesse serviço de hospedagem.
O sistema que desenvolvi utilizava Hibernate e Spring para persistência e nenhum framework MVC, apenas JSPs e Servlets. Optei pela não utilização de nenhum framework MVC para tentar manter a arquitetura do sistema o mais básica possível, permitindo que qualquer pessoa com o minimo de conhecimento de desenvolvimento web com Java pudesse realizar a manutenção a aplicação.
No contrato, também era prevista a entrega dos fontes da aplicação, permitindo com que a pessoa X pudesse contratar quem ela bem quisesse para fazer a manutenção do sistema.
A aplicação foi entregue, implantada, os problemas que existiam foram solucionados, algumas outras coisas foram inseridas - e recebi por isso também, mas já não fazia mais parte do contrato original.
Pois bem, o sistema foi entregue, a pessoa X sumiu do mapa. A aproximadamente 45 dias atrás a pessoa X aparece de novo, desesperada, pq o sistema não estava mais funcionando direito e que algumas páginas não eram renderizadas completamente. A pessoa X falou que tinha sumido por problemas pessoais, que tinha ficado com depressão e aquele bla bla bla, como se eu tivesse algo haver com isso.
Enfim, fui ver qual era o problema.
A pessoa X falou que os problemas começaram a aparecer depois que o sistema foi migrado do ambiente que eu falei acima para um ambiente com o MySQL 5. Achei estranho, pois não havia motivo para estar dando problema. O contrato também previa que qualquer problema com o ambiente de execução ou alimentação errônea dos dados para o sistema seria de total responsabilidade da parte contratante (pessoa X).
O grande problema é que quem estava usando o sistema, fazia um cadastro e esse cadastro era usado em outro cadastro diferente. Ai a pessoa apagava a primeira coisa que foi cadastrada e pronto, dava problema na hora de trazer a entidade do segundo cadastro, pois a sua dependencia tinha sido removida. Isso não estava sendo tratado no sistema. O Hibernate tava configurado com o dialeto MyISAM do MySQL e não InnoDB.
Fácil de resolver? Nesse caso sim. Com 3 cláusulas SQL eu resolvi o problema. Mas é claro que a responsabilidade quanto a integridade não era minha, e a parte contratante sabia das implicações de usar MyISAM, sendo assim eu não iria fazer o serviço de graça. Cobrei um valor (alto por sinal) primeiramente por eu estar extremamente ocupado com o mestrado e a pessoa X ficar me torrando a paciência o dia todo por causa do problema que ninguém, por incrível que pareça, conseguia arrumar! O que aconteceu? A pessoa X não quis pagar meu serviço (arrumar o banco e as alterações que seriam necessárias fazer na configuração do sistema) e o mais estranho, ele não fez nenhuma contra proposta ao meu valor, apenas falava que a empresa dizia que o valor estava muito alto. Então eu simplesmente não fiz o serviço e a pessoa X sumiu do mapa de novo.
Eu perguntei o porque que a pessoa X não tinha encontrado ninguém para dar a manutenção. Ela falava que tinha encontrado, mas ninguém sabia mexer no Spring. Eu usei o Spring SOMENTE para dar uma mão com o Hibernate, nada mais nada menos. E não era necessário conhecer nada do Spring para dar a manutenção, pq ja estava tudo configurado, só precisava conhecer um pouco de Hibernate.
Bem, passaram umas 3 semanas, eu até já tinha esquecido do ocorrido e pensava que a pessoa X tinha encontrado alguém competente para ver que o problema principal era no banco e não na aplicação.
Para minha surpresa hoje a pessoa X brota novamente no meu MSN falando que precisava conversar comigo urgentemente. Falou que eu estava lesando a empresa porque eles compraram o sistema inteiro e ele não estava mais funcionando. No contrato fala que eu receberia a segunda parcela quando o contratante julgasse que o sistema estava funcionando corretamente. Eu recebi a segunda parte do pagamento, sendo assim, pressupõe-se que o sistema está OK correto?
Tah, passa praticamente 1 ano e eu sou o culpado? Esse não foi o problema, pois eu me dispus a arrumar. O grande problema foi que a tal pessoa X comecou a me ameaçar, falando que por causa disso, eu iria ser prejudicado na instituição onde faço mestrado, pois o dono da tal empresa tinha vários contatos na cidade da universidade, que eu não teria chance de enfrentar uma empresa pois eu não sou nada e bla bla bla…
Sei que o texto está gigante e muitos detalhes escaparam da explicação. Não vou colocar o contrato aqui porque é antiético, mas o que vocês acham disso? Eu acho que a pessoa X está blefando quanto a isso de justiça, pois a empresa e o dono da empresa são extremamente sérios e com certeza teriam me procurado para resolvermos o assunto. No contrato é dito que depois que o sistema foi entregue, toda responsabilidade por dados inconsistentes, eventuais problemas do programa e pelo ambiente de execução é do contratante e não do contratado.
Isso serviu para eu abrir ainda mais meus olhos para os pilantras de plantão. A pessoa X já é conhecida por esses tipos de problemas maracutaias, mas eu precisava do dinheiro na época e como era com contrato eu me senti de certa forma respaldado quanto a garantia de pagamento. Ele teve a coragem de falar que não foi “autorizado usar spring na aplicação”. No contrato não fala o que eu não posso usar. Minha intenção foi facilitar a manutenção e não prejudicar ninguém. O kra quer arrumar gente para dar manutenção por 50 conto, ai não dá não é? Se eu falar o preço que eu cobrei pelo sistema (lembrando que o código foi vendido também) vocês não iriam acreditar…
Bem pessoal, gostaria da opinião de vocês. Devo ter não escrito muitos detalhes do acontecido, sendo assim com a discussão eu irei lembrar e justificar alguma dúvidad e vocês.
Grande abraço.