Na coluna passada, analisei a importância de se levar em conta o volume de tráfego gerado por aplicações cliente-servidor como um dos critérios para avaliação destes aplicativos: se a implementação for cuidadosa, gerando o mínimo de tráfego possível, então é possível implementar estas aplicações com servidores sendo acessados através da Internet (mantendo um tempo de resposta adequado).

Este é apenas um dos novos aspectos do desenvolvimento de software que precisa ser levado em conta pelos desenvolvedores contemporâneos. Outro aspecto é a crescente globalização, que exige outras características dos novos aplicativos.

O primeiro efeito da globalização dos negócios sobre o desenvolvimento de aplicativos é a necessidade de lidar com endereços em vários países, que se manifesta quando os clientes do desenvolvedor passam a realizar negócios em outros países. É comum ver aplicativos, por exemplo, que dado um CEP (código de endereçamento postal), obtém automaticamente o endereço correspon¬dente. E se precisarmos cadastrar endereços de países fora do Brasil, o que acontecerá? A grande maioria dos aplicativos exige, mesmo que os dados de códigos postais dos outros países sejam disponibilizados ao desenvolvedor, modificações no código fonte da aplicação.

O segundo efeito da globalização aparece quando o cliente do desenvolvedor possui unidades ou filiais em outros países. Neste caso, passa a ser necessário pelo menos disponibilizar o aplicativo em várias línguas. Entretanto, dentro de uma mesma área lingüística (considere por exemplo os países de língua espanhola), há variações quanto ao nome da unidade monetária, convenções para exibição de datas e uso de pontos e vírgulas com números decimais. A solução mais simples para este problema é a criação de novas versões do código fonte do aplicativo, adaptados a cada realidade nacional. Entretanto, a proliferação de versões de código fonte acaba gerando difi¬culdades enormes de evolução do código fonte.

Outra necessidade comum, de existir uma versão de demostração, além da versão completa, resulta na proliferação ainda maior de versões diferentes do aplicativo.

O passo seguinte na evolução da globalização é a exigência, por parte dos clientes, de utilizar bancos de dados globais, compartilhando a informação a nível global, mas mantendo a interface de usuário adaptada a cada realidade nacional. Por exemplo, uma aplicação de CRM global permite a uma empresa multinacional atender seus clientes no mundo inteiro, a partir do relacionamento existente em todos os países. Entretanto, em cada país os operadores acessam as informações na sua língua nativa.

Finalmente, a diversidade de ambientes de execução diferentes (versões de sistema operacional, gerenciador de bancos de dados ou linguagem de programação) pode exigir ainda mais versões do aplicativo. A menos que o desenvolvedor consiga manter um código fonte único, seu trabalho será, no mínimo, caótico.

Além das dificuldades já descritas, a criação de aplicativos “atuais” exige do desenvolvedor um bom conhecimento da criação de imagens (por exemplo, a criação de ícones apropriados é uma ciência que poucos desenvolvedores conhecem), um excelente conhecimento de modelagem de bancos de dados (afinal, se o modelo de dados não for eficaz e eficiente, a aplicação nunca o será), interação com a Internet (acesso a sites, e-mails, etc.) e integração com outros aplicativos, sejam eles pacotes de produtividade (como por exemplo, o Microsoft Office) ou aplicativos específicos, já existentes nas empresas.

Observando a lista de requerimentos acima é fácil compreender por que um grande número de empresas que se dedicaram ao desenvolvimento de software nos anos oitenta e noventa, optaram mais recentemente por deixar de desenvolver seus próprios softwares e passaram a ser represen¬tantes, parceiros e/ou implementadores de aplica¬tivos de terceiros, muitas vezes empresas cujas equipes de desenvolvimento estão no Exterior.

Por outro lado, também é verdade que as empresas que conseguirem atender a todos estes requisitos, terão em mãos produtos muito mais competitivos, dando a elas a chance de competir com as empresas estrangeiras.

Como conclusão gostaria de registrar uma dúvida, quase existencial: esta forma darwiniana de “evolução da espécie” elevará nossa indústria nacional de software a um novo patamar de competitividade internacional, ou estamos diante de uma espécie em vias de extinção? Só tenho certeza de que a intensa competição com os produtos estrangeiros permitirá cada vez menos as situações intermediárias.