domingo, 6 de novembro de 2016

Simplicidade II


A long time ago, após desenvolver, juntamente com minha equipe, um aplicativo de cadastro da rede externa do BB, fui convidado para apresentar a solução em uma agência do Banco no exterior. Chegando lá, após as devidas apresentações, posicionamo-nos todos à frente de um terminal – analistas de TI, representantes da Diretoria Internacional, gerente da agência... umas 12 pessoas.

Fiz o login no sistema e caí na tela inicial. Mal deu tempo de terminar de digitar a senha e um hermano, funcionário da agência, já fuzilou:

- ¡Espera! Vienes de Brasil muéstrame una solución y su pantalla está en ?? portugués !!
- Ih!! É mesmo! Vou ter que voltar e refazer a aplicação!
Mal estar generalizado...
Completei:
- Só pra gente não perder a viagem, o senhor pode entrar no aplicativo e fazer uns testes básicos de navegação?
Visivelmente contrariado, o reclamão sentou ao terminal e, resmungando uns monossílabos ininteligíveis, digitou furiosamente o login. Qual não foi sua surpresa ao perceber que sua tela inicial era toda em castelhano.
Descontração total.
Na realidade, eu apenas havia feito um teatro para gerar um impacto em todos, naquela gelada manhã em Buenos Aires. Um quebra-gelo, que, obviamente, me gerou uma admoestação ao voltar ao Brasil, quando meu chefe soube da história.
A aplicação, na realidade, era adaptável ao idioma do usuário. Funcionava mais ou menos assim: o funcionário digitava suas credenciais, o sistema interfaceava com a base de RH, validava o acesso, identificava a dependência de lotação do usuário, o país dessa dependência e o respectivo idioma que se falava naquele país.

O ambiente, então, carregava internamente uma variável de idioma que era utilizada para gerenciar as informações apresentadas.

As opções de idioma, no caso, se resumiam a português, inglês e espanhol. Não se esperasse ver caracteres hiragana ou katakana ao utilizar o sistema em Tóquio, por exemplo. 

Tínhamos, portanto, nossas limitações, mas que atendiam perfeitamente as especificações do demandante. A tecnologia também não era a mais avançada – terminal preto, 3270, linguagem Natural, e por aí vai...
A codificação era limpa, e não tinha praticamente nenhuma estrutura interna de decisão, tipo ninho de IFs ou coisa semelhante.
Após identificar o idioma nativo do usuário – que poderia ser alterado, conforme sua vontade – o sistema carregava uma variável do Natural e a utilizava em vários contextos.
Para carregar a tela – os famosos mapas – a instrução era simplesmente:
INPUT USING MAP “MCEM010&”.
O último caractere no nome do mapa era uma variável da própria linguagem, correspondente ao idioma que carregamos lá no login. O aplicativo, portanto, carregava dinamicamente o componente adequado àquele contexto. Outros artifícios foram utilizadas para gerenciar mensagens para o usuário e acesso a informações parametrizadas em banco de dados, mas sempre baseado no mesmo princípio.
Tudo muito simples. Mas muito eficaz.   
Isso faz muito tempo, mas a opção 7 do aplicativo CLIENTES continua lá, firme e forte!
Em tecnologia, assim como no nosso dia-a-dia, temos, às vezes, a incrível capacidade de complicar o que é simples.
Como esse episódio se passou em Buenos Aires, não há como não lembrar de Francisco, um certo argentino que vem conquistando a todos com sua simplicidade...