Preciso de uma indicação de programador em Recife que saiba lidar com bancos de dados Dbase e tenha experiência com sistemas comerciais, incluindo emissão de NFE.
É um sistema pequeno, com apenas 12 usuários no momento. E poucas transações por hora. Creio que apenas 4 usuários fazem lançamentos e o resto apenas consulta.
O sistema atual é feito em Clipper/VFP, mas não temos o código-fonte então o novo programa só aproveitará o banco de dados.
Nossa senhora… mexi com isso em 86… naquele época era Dbase III PLUS, e compilavamos com o Clipper summer. Fazíamos a base de dados num itautec pc-xt com winchester de 20Mb e leitora de fd dupla densidade de 720kb. Pena que eu esteja em cuiabá, senão dava uma força .
Jefferson o banco de dados sei que tem como converter para outros… aí não fica tao complicado. O lance mesmo seria sistema comercial (NFE) que nunca trabalhei com… senão, um PHP + MySQL seria tranquilo fazer
Jefferson, eu não sou exatamente de Recife ;-)
Já tentou um descompilador? (Valkyria, etc..)?
Marcel, eu falei em Recife pensando na RMR. O trabalho fica a uns três quilômetros de você.
Não há razão para fazer descompilação. O programador atual ainda está a serviço da empresa. O problema é que há cinco anos (segundo meu cliente) ele vem prometendo resolver os problemas do sistema pré-histórico dele e não resolve. Os funcionários precisam manter uma extensa quantidade de controles e relatórios em planilhas do Excel porque o programa não dá as informações. O sistema demora demais para fazer certas operações, provavelmente porque não usa uma arquitetura cliente-servidor (a tabela inteira precisa ser levada para a estação a cada pesquisa).
Então ficou decidido que a empresa vai pagar por um sistema novo, moderno, que elimine as gambiarras. Hoje eu vou participar da entrevista de um programador que já tem um sistema pronto, específico para o ramo, e já sendo utilizado por concorrentes do meu cliente. Parece bem promissor.
Jefferson,
Tem certas coisas que sistemas que já estão prontos para a área a muito tempo realmente atendem com maior rapidez que pegar um sistema do zero. Por outro lado, as vezes começar um sistema do zero pode trazer diferenciais que um sistema comercial não poderia atender. Espero que saiba dosar…
Não chego nem a dizer que teria ganho de performance com estrutura de banco de dados cliente-servidor, que isto é quase óbvio, mas até base access roda melhor que base de dados DBF nos dias atuais. O conserto de sistema assim é refazê-lo, motivo pelo qual talvéz não se queira dar atenção ao seu cliente…
Um workaround possível é compilar o codigo usando algum compilador linux, por exemplo. E as estações rodarem o programa através de sessões SSH no servidor. Ou um windows 2003 com terminal services.
Rafael,
Bem pensado! Esqueci que podia usar o Remote Desktop para minimizar o problema com o banco de dados. O servidor do cliente passou a ser Windows 2003 há algumas semanas e essa possibilidade não havia me ocorrido. Eu uso Remote Desktop apenas para dar manutenção.
Marcel,
Voltei agora da entrevista. O sistema é bom. Especializado na atividade do cliente. Existem várias adaptações que precisam ser feitas mas tudo relativamente simples. Por exemplo, o sistema não emite nota fiscal. Nem mesmo faz a exportação necessária para poder emitir a nota usando o programa da fazenda de SP. Isso será providenciado.
Outra coisa que me espantou é que o sistema dele é todo em PHP e roda no browser. Não estou acostumado a ver sistemas comerciais assim. E mais estranho: por default o sistema é usado via internet, com o banco de dados administrado e hospedado pelo programador. Eu acho absurdo, e mais absurdo ainda que outras empresas do ramo tenham aceitado isso. Mas meu cliente concordou que vamos usar a opção de rede local (intranet, com possibilidade para extranet).
Outra coisa estranha é que o programador se habilita apenas a migrar as tabelas de produtos e clientes. Ele não faz a importação de outros dados antigos, o que vai fazer a migração total ser muuuuito demorada (anos). Ele alega que dá muito trabalho compatibilizar as tabelas, mas eu tenho certeza que dá pelo menos para poupar muita digitação, migrando parte das informações. Tenho que negociar com ele uma forma de fazer eu mesmo essa migração, com ou sem a intermediação dele.
De fato é um baita de um trabalho migrar as informações de um dbf, provavelmente sem nenhuma regra de normalização, pra um banco de dados relacional normatizado. Mas onde o dinheiro for e nao resolver é porque foi pouco
Em relação ao remote desktop se abrir varios conexões cada um fica em uma "sessão" diferente? Eu usava o terminal services num cliente que mantinha o servidor hospedado na empresa que trabalho e ele tinha 14 filiais que se conectavam nesse servidor. Cada login era uma sessão.
Rafael,
Remote Desktop é apenas o novo nome para o Terminal Services. O que dá para fazer no segundo, é possível no primeiro (mas o contrário, nem sempre).
Cada conexão é uma sessão diferente, mesmo que seja o mesmo usuário. Na empresa eu faria cada usuário logar com suas credenciais, mas eu posso ter duas sessões "Administrador" em execução.
Ah massa!
Tava imaginando o remote desktop como um vnc/logmein da vida.
Jefferson,
Pra mim sistemas comerciais que rodam completamente no navegador não são novidade, são evolução. Você não tem que instalar nada na máquina e teoricamente (e só teoricamente) rodam em qualquer dispositivo, de pcs à celulares e tablets.
Esta história de pagar software como serviço (hospedado em servidor alheio) eu acho encrencado. Você paga por algo que não é exatamente seu. E quem garante que não usarão seus dados? E quem garante que eles têm backups (já vi cagadas homéricas com isso, perda total e processo judicial). Mas instalar como uma intranet acho interessante…
O que eu vejo de problema maior nisso tudo é a aplicação ser PHP. Não que não dê para programar com muita segurança e muito bem no PHP, mas não é bem isso que acontece no mercado atualmente. Os programadores da finada linguagem ASP (que espero que ninguém use mais) pularam tudo para PHP por ser linguagem de scripts e não precisar de toda programação orientadinha, organizadinha do que o JAVA e C# (Não que não há falhas de segurança nestas também, mas por padrão já são mais orientadas e o mercado exige maior qualificação). Já vi muito ARTESANATO DE SOFTWARE feito em PHP que dá arrepios quando você vê a segurança escancarada, falhas de SQLInjection entre outras coisas que não ficam seguras NEM NA INTRANET.
PS: Programo em php tb, desde 2001, e sou fã da programação do wordpress, e de outros frameworks orientados a objeto que não vão ao caso agora, e a crítica não é da linguagem, mas da forma como os programadores as usam…
Marcel, a minha opinião é mais ou menos como a tua. Já ví empresas que venderam sistemas para prefeituras e todos os dados ficavam na mão da empresa. Acabou o contrato e a prefeitura pegou o DVD e jogou em um canto sendo que 2 anos depois foram atráz da empresa querendo processar ela pois os dados não estavam condizentes conforme eles.
Quanto a linguagem PHP, a linguagem em sí é ótima. O maior problema do PHP é a quantidade de cacas que os programadores fazem. Não prevenir SQL Injection e outras cacas é muito normal hoje em dia em PHP. Agora não vou falar de JAVA e outras linguagens, principalmente as da Micro$$oft por que lá também tem programadores que fazem muita caca.
Marcel,
E quem garante que não usarão seus dados?
Disso eu não tenho garantia nenhuma, mesmo hospedando localmente. Afinal o programador precisa ter acesso irrestrito ao banco de dados, assim como eu tenho.
E quem garante que eles têm backups
Quando eu assumi o serviço neste cliente estranhei não haver backup de absolutamente nada. Depois de algumas semanas, quando eu já estava certo de que estava familiarizado com o funcionamento das coisas, comentei isso em um almoço com o cliente. Adivinhe só… ele achava que havia backup, porque o técnico anterior disse que havia. Implantei um procedimento automático com o Cobian que todos os dias, durante o expediente, faz backup de documentos localizados nas estações. E durante a madrugada faz backup do sistema comercial.
Eu só acredito no backup que eu possa ver.
falhas de SQLInjection entre outras coisas que não ficam seguras NEM NA INTRANET.
Talvez eu esteja sendo ingênuo, mas eu deveria mesmo me preocupar com SQL injection na intranet? Considerando que todos os usuários são funcionários, só tem acesso por meio de senha e são razoavelmente confiáveis (tenho certeza de que ninguém na empresa sequer sabe o que é SQL)?
Ainda baseado na minha possível ingenuidade, mesmo com o sistema aberto para a internet, sendo o logon seguro, limitado a um punhado de usuários, eu não vejo como alguém poderia aproveitar falhas da programação. Se o sistema for aberto para que clientes possam fazer consulta, aí sim, o bicho pega.
Esse programador cobrou R$3500 pelo sistema, mais R$300 mensais de manutenção. Eu achei razoável, levando em conta que o programador atual cobra R$180 por um sistema pré-histórico e lerdo que está obrigando a empresa inteira a manter controles paralelos no Excel.
Meses atrás meu cliente apresentou uma proposta de outra empresa que eu achei simplesmente insana. Não me lembro dos valores precisos agora, mas eles cobravam mais de R$100 mensais por estação a título de manutenção. Ia custar ao cliente mais de R$1000 por mês. Eu não vejo nenhuma lógica em se cobrar manutenção de software baseado em número de estações. E se esse preço fosse cobrado para manutenção geral (hardware e software) ainda estaria caro!
Ainda sobre as deficiências do sistema atual, quando eu assumi esse cliente ele tinha um problema sério com impressoras matriciais. Ele precisava emitir um relatório mensal que só podia ser emitido numa impressora matricial de 125 colunas que vivia dando pau. Eu tive que criar um programa em Delphi que automatizava o programa Clipper (simulando a digitação do cliente) para gerar o relatório em TXT, que meu programa reformatava e imprimia na jato de tinta ou laser do cliente. Problemas de impressão mais simples que ocorriam por toda a empresa eu resolvi com o DOS2USB e o PRINTFIL. No final o cliente pôde economizar uma nota (e muito aborrecimento) abandonando todas as matriciais exceto a que emitia notas fiscais.
Talvez eu esteja sendo ingênuo, mas eu deveria mesmo me preocupar com SQL injection na intranet?
Não tenho a porcentagem em mãos, mas sei que a maioria dos ataques em redes de computadores visando roubo de dados ou sabotagem são internos, sendo executados por funcionários insatisfeitos. A maioria dos operadores não possui conhecimento de exploits e coisas do tipo, mas é com a minoria que conhece que se deve preocupar
De qualquer forma, colocar um sistema sabidamente inseguro em produção é algo absolutamente não recomendo.
Alexandre,
O sistema atual inteiro pode ser levado para casa em um pendrive simplesmente copiando o conteúdo do "drive L:" Se isso nunca foi motivo de preocupação para a diretoria (só requer que o funcionário saiba como se abre um DBF), não creio que SQL injection venha a ser num futuro próximo. A atividade do meu cliente é razoavelmente específica e a espionagem não é uma preocupação para ele.
Em empresas grandes, com centenas de funcionários, onde você sequer conhece o dono, eu acho compreensível a preocupação. No meu último emprego às vezes eu me fazia de idiota quando falava com o departamento de informática porque não era interessante para o meu departamento (eletrônica) que certos indivíduos lá descobrissem o quanto eu sabia. Eles ficavam felizes achando que eram os maiorais e era melhor mantê-los assim.
Jeferson! até imagino vc conversando com o pessoal do departamento de TI… hummm, certo… hummm. …. certo ehehehehe!
A verdade é que eu também prefiro utilizar esta politica, que é me fazer e bobo e não sei de nada. O que noto é que sempre que uma empresa tem um departamento de TI, os caras se acham deuses (ou acima dos mortais) e não vai ser um cara de fora que vai mudar isto. Logico, tudo depende do que vc foi contratado para fazer lá! tenho um cliente por exemplo que o sistema dos caras é ruim, feito em dataflex e é difícil tirar de lá o negocio pois envolve mais politica do que se o sistema é bom ou não. Um pessoal tentou entrar com uma solução em delphi e oracle e os caras nunca mais fizeram mais nada lá. Então o que vendo para eles hoje é melhorias em servidores e esquemas para rodar o sistema sobre emulação do DOS no linux.
Ahhh… Dataflex… Tive um “emprego” relacionado com TI numa empresa com sistema em Dataflex onde o dono era o programador. É claro que o sistema nunca ia sair, porque ele programava para trapacear as comissões dos vendedores!
Sé estou comentando isso, claro, porque a empresa nem existe mais e não há como identificar o cara
Voltando ao meu último emprego, lá o departamento de TI se comportava como se TI fosse a atividade fim da empresa e não uma mera atividade acessória, com a missão de ajudar os outros departamentos a executar suas atividades. Para vocês terem uma idéia, eu tive o pedido de autorização para instalar o adobe reader recusado, juntamento com dois softwares freeware de eletrônica, com a inacreditável resposta do gerente de TI: “iremos avaliar a necessidade disso”. Como se um gerente de TI tivesse alguma capacidade de avaliar “necessidades” do departamento de eletrônica. Um gerente de TI pode avaliar viabilidade (legal, operacional, etc), mas ao achar que pode avaliar “necessidade” está abusando do seu poder.
É óbvio que com um povo obtuso como esse no controle do departamento de TI, tínhamos que operar clandestinamente para poder colocar nossos projetos em operação.