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.