quarta-feira, setembro 27, 2006

Coisas de programador

Quem programa sempre comete enganos monstruosos, muitos cômicos. Um programador passou uma manhã inteira tentando descobrir um erro no código, ficou indignado, depois furioso e não sabia por que a instrução não funcionava. Escreveu assim:

if Var1 > Var2 gosub Rotina

E o conteúdo da Var1 e Var2 estão com conteúdo zero. Um colega olhou e matou na hora a charada, pois zero nunca pode ser maior que zero. Tempos depois isto era lembrado e motivo de muitas gargalhadas.

E mais engraçada ainda são os comentários. Quem faz manutenção de software encontra cada um. Já encontrei: "deus do céu esta m... vai funcionar" – "vai fazendo numa nice" – "agora f..." – "agora vai, não sei para onde". E tantos outros que não me lembro. Certa vez, um gerente de sistemas, viu um destes comentários engraçados e mandou a equipe inteira vasculhar os códigos e retirar todos.

Sem contar, que muitos programadores utilizam nomes pouco ortodoxos para nomear suas variáveis, tais com "a1", b2", o nome da namorada e, quando está muito bravo, coloca palavrões.

Suporte de software

Quem trabalhou como programador ou analista em empresas pequenas e médias, muitas vezes já teve que também fazer o suporte ao usuário final. É bastante interessante como experiência e ao mesmo tempo desgastante, o que vale são os fatos que no momento não é nada engraçado, mas depois acaba virando piada.

Uma vez, um amigo estava trabalhando numa empresa que tinha filiais no Nordeste e sempre fazia suporte e para constatar o problema, emulava a máquina, usando aqueles antigos modens de 9600 bps. Estava ele falando com o usuário e toda vez que o computador discava, dava sinal de ocupado. Depois de muitas tentativas, descobriu que dava ocupado pois o usuário estava usando a linha do modem, ficou furioso e desligou.

E antes do uso do modem ainda era pior. Muitas vezes era preciso corrigir programas ditando para o usuário. Você dizia uma coisa, ele entendia outra.

domingo, setembro 24, 2006

A corrida do ouro da Internet

Quando a Internet começou, a mídia divulgava quase todo dia que surgia um milionário, por cima garoto que fez uma página em html, quase sempre trabalhando na garagem de sua casa, invocando o mito da fundação da Apple.

Criou-se uma corrida do ouro em praticamente todo o mundo. Era tão fácil que qualquer poderia fazer. Diziam, o importante é ter uma idéia. Ao se depararem que para a Internet ser utilizada e obter sucesso era preciso conteúdo. Criou-se até um nome: a Nova Economia. Em que as empresas de sucesso do futuro não precisa ter lucros. Foi uma verdadeira febre.

Surgiram então, provedores, escolas de design e tantas outras coisas. Qualquer empresa que precisasse colocar na web uma página institucional, hoje feita em questão de minutos, naquela época cobravam até 5.000 dólares. Muita gente ganhou muito dinheiro, quem foi mais esperto e foi na onda.

Em pouco tempo começaram as quebras, pois num mundo capitalista, sem dinheiro nada vai para frente. E ficaram aquelas empresas viáveis que souberam tirar proveito de seu sucesso e montar uma estrutura viável financeiramente.

Com acontece sempre na história, este movimento foi importante para disseminar a Internet pelo mundo. Foram estes profetas que bem ou mal trouxeram a nova era, esta coisa fantástica que já pode ser considerada tão importante ou até mais que a invenção da imprensa.

Qual a melhor linguagem?

Ao começar na área de informática, no final dos anos 80, ouvia muita discussão sobre qual seria a melhor linguagem de programação. Existiam os fanáticos pelo COBOL, outros pelo Clipper e tantas outras. Parecia até time de futebol ou religião. O tempo se encarregou de dar fim nestas discussões tolas, afinal cada linguagem tem pontos positivos e negativos.

O profissional que escolhe uma linguagem para trabalhar, precisa se preocupar somente em utilizar todos os recursos da ferramenta e construir aplicativos robustos e consistentes. Não adianta nada dizer que trabalha com uma poderosa linguagem e escrever programas cheio de erros.

Ao portar para outra linguagem, muitos têm a ilusão de seus problemas serão resolvidos com um passe de mágica. Enganam-se totalmente, é preciso fazer um trabalho obsessivo de procurar todos os "bugs" e melhorar sempre a qualidade do aplicativo. Se insistir em continuar codificando do mesmo jeito, é só questão de tempo para os problemas aparecerem.

Finalizando, a melhor linguagem é aquela que sabemos codificar com confiança e qualidade.

sexta-feira, setembro 22, 2006

Manutenção de software

Toda empresa ou equipe que desenvolve software sabe disso. O maior esforço consiste em manter o código do aplicativo. O tempo despendido é maior do que o projeto e codificação. Quanto mais o projeto e design é melhor especificado, menor a manutenção.

E por que isto ocorre? Devido ao cliente e desenvolvedor não terem idéia de onde querem chegar. O cliente muitas vezes precisa de um produto e não sabe dizer com detalhes o que realmente precisa. E o desenvolvedor muitas vezes não conhece o negócio do cliente e perde muito tempo tentando descobrir uma solução.

Além disso, as empresas tem uma rotatividade muito grande profissionais e embora muitas adotem um padrão, a codificação ainda fica com a "cara do programador". E no código os atalhos e soluções imediatistas, causam no futuro um transtorno tremendo. E a falta de integração das equipes faz com que exista muito redundância de código.

E quando um código está muito ruim, o melhor é jogar tudo fora e desenvolver novamente. É a melhor solução, mas pouco adotada pelas empresas devido ao custo-benefício que a maioria dos gestores não sabem avaliar.

Existem inúmeras obras, principalmente em inglês sobre o assunto. E é um tema que nenhum desenvolvedor de software pode deixar de se preocupar.

Dicas do Joel Spolsky

Joel Spolsky, trabalhou como programador e gerente na Microsoft e possui um site na internet em inglês e português com dicas interessantes para quem desenvolve software.

Não deixe de visitar.

Migração de dados

Com as frequentes mudanças de plataformas e sistemas, a migração de dados acontece e na maioria das vezes não se consegue um sucesso de 100% e os erros e falhas ficam evidentes por muitos meses até serem corrigidas, quando isto é possível.

Normalmente, as áreas de planejamento e informática, sub-estimam a migração de dados e a tratam como se fosse uma coisa menor, até mesmo simples. Dizem, basta gerar um arquivo texto e importar do outro lado. E muitas regras do negócio, detalhes de como a empresa trabalhava não são mapeados e nos testes tudo ocorre perfeitamente, mas quando o novo sistema entra em produção, os usuários entram em pânico.

Já vi casos em que a migração de dados no cronograma foi previsto apenas duas semanas e quando tentaram a migração ocorreram tantas falhas que tiveram que voltar atrás e muitos pessoas foram colocadas para fazer o trabalho e só conseguiram sucesso depois de mais de seis meses de trabalho árduo.

A importância para a migração não é dada devido a ocorrer somente uma vez ou outra, mas esquecem que os reflexos desta atitude poder se refletir por anos e anos. No dia-a-dia, as empresas fazem muitas trocas eletrõnicas com clientes, fornecedores e bancos. E poucos sistemas possuem um controle eficiente e completo sobre estas transações. O custo para as empresas é enorme, devido aos erros, atrasos e re-trabalho.

Com o lançamento da linha .Net, a Microsoft disponibilizou o aplicativo Biztalk que facilita e muito este trabalho de exportação e importação de dados.

Barata Elétrica

É um dos fanzines sobre tecnologia mais antigos publicado no Brasil. Começou na época das BBS e, muita coisa ainda em texto. Derneval Cunha é um batalhador, não desiste nunca e, continua publicando excelentes textos. Em breve deve sair novo número.

O Barata Elétrica foi tema de muitas matérias nas mais diversas mídias, nos anos 90. Relendo os números do fanzine têm-se uma idéia de como era a informática ao longo dos anos. E todos os assuntos são tratados - os vírus, hackers, a bolha da internet, os filmes sobre tecnologia.

O conteúdo do blog e do fanzine é muito rico e vale a pena uma leitura.

A evolução das linguagens de programação

As linguagens de programação que é o software tem acompanhado toda a evolução ocorrida no hardware. Na época dos mainframe existiam diversas e usadas conforme a aplicação e na área comercial, dominava o COBOL.

No início dos anos 80 com o advento da micro-informática, praticamente todas as linguagens foram portadas e aconteceu o sucesso do dBase e, também surgiram muitos clones.

No Brasil, no final da década de 80 o DataFlex fez muito sucesso pela sua facilidade do aprendizado e possibilidade de rodar em diversas plataformas como Unix, DOS e Novell. A Data Access lançou versões no ambiente windows, mas a maioria de seus antigos usuários partiram para outras soluções.

Chegou a vez do ambiente gráfico e o destaque aconteceu com o Visual Basic da Microsoft e o Delphi da Borland. Surgiram milhares de aplicações no estilo client-server e ainda hoje é uma solução bastante usada.

No ano 2000, com o enorme sucesso da internet, a preocupação era que as soluções fossem portadas para este ambiente. A Microsoft, sempre na dianteira, lançou o .Net um pacote com muitos pacotes que vinham de encontro a estes anseios e é a tecnologia que vai dominar nos próximos anos.

O que virá depois? Não dá para prever pelo dinamismo do nosso tempo, mas com certeza num futuro bem próximo, continuará acontecendo a fusão de todos estes ambientes e mídias. É esperar para ver.

Meu currículo

Nascido em Recreio(MG), mudei-me para Guarulhos(SP) em janeiro/1989, à busca de novas perspectivas profissionais. Em março deste mesmo ano, comecei a trabalhar na Rápido Ribeiro, empresa de transporte de cargas, como auxiliar de operações.

Passei-me a interessar por informática e fiz vários cursos. Em 1990 matriculei-me no ENIAC de Guarulhos, onde cursei Tecnologia em Informática. Naquele mesmo ano, a empresa trocou o sistema para DataFlex e de maneira autodidata, aprendi esta linguagem. Fiz um estágio na Sist Global, empresa que desenvolvia soluções para transporte de cargas.

No final de 1991, comecei a prestar serviços de informática para a Renosul-Renovadora de Pneus e fiquei até 2004, quando o sistema foi substituído. Desenvolvi um aplicativo para gerenciar uma transportadora pequena, em 1994 e, implantei em diversas empresas tais como TVW Transportes e Indaiá Transportes.

Em agosto de 1993, fui convidado a trabalhar na Dom Vital, onde fiquei até maio de 1998. A Dom Vital estava trocando seu sistema escrito em Basic que rodava no minis da Sisco para o Dataflex, na plataforma Unix. Nesta empresa ajudei a desenvolver vários aplicativos e viajei para muitas filiais no Brasil, implantando os sistemas.

Final de 1998, comecei a trabalhar na NeoData, soft-house que desenvolvia aplicativos para área de saúde, em DataFlex. Em 2000 passei para Interclínicas onde fazia manutenção do SMS 3.0 e depois passei a fazer parte da equipe que desenvolvia e mantia aplicativos desenvolvidos em Visual Basic, utilizando o Oracle como banco de dados. Fiz diversos cursos de VB e SQL Server na Tekno e TBA.

Desenvolvi vários projetos em ASP e como banco de dados Access e SQL Server. O de maior destaque foi uma solução utilizada pela Colúmbia Cargas e Transaliança, onde os clientes destas empresas conseguiam rastrear a movimentação da mercadoria de seus depósitos até a entrega no cliente. Participei da elaboração de um portal para uma empresa que gerenciava viagens ao exterior para tratamento médico. Também participei do desenvolvimento do portal da Interclínicas, na parte de informações ao associado.

Em dezembro de 2004, a Interclínicas sofreu uma intervenção da ANS, tendo demitido todos os seus funcionários. Saí e fiz diversos trabalhos free-lance: na RP&M desenvolvi e implantei um sistema para controle e administração usando VB e SQL Server - na Edubel, desenvolvi um aplicativo para controle da indústria de produtos alimentícios, com VB e Access - na Viza(Girardi), ajudei a desenvolver e implantar um sistema em VB e SQL Server para controlar a fabricação de brindes e confecções.

Em agosto de 2005 mudei-me com minha família para São José dos Pinhais(PR). Voltei à São Paulo(SP), depois de uma proposta de trabalho em Curitiba(PR) não ter acontecido. Comecei a trabalhar na Intersaúde, na manutenção do software que administra o plano de saúde, em VB e Oracle e, é onde trabalho atualmente.