Clique aqui para voltar à página inicial  http://www.novomilenio.inf.br/ano99/9902abu1.htm
Publicado originalmente pelo editor de Novo Milênio no caderno Informática do jornal A Tribuna de Santos, em 2/2/1999.
Última modificação em (mês/dia/ano/horário): 01/07/00 14:06:37
BUG DO MILÊNIO
Entenda o problema... e fique arrepiado! 

Carlos Pimentel Mendes
Editor

Se o leitor não entendeu o que é o Bug do Milênio, está em boa companhia. A maioria dos dirigentes de empresas e mesmo seus administradores de redes e gerentes de informática também desconhece o que está ocorrendo, e isso em todo o mundo. 

Na essência, entretanto, ele é simples de entender: devido a problemas de custo de fabricação de componentes e à necessidade de economizar o uso de memória e o espaço em discos rígidos, então extremamente caros e limitados, os primeiros computadores, duas a três décadas atrás, utilizaram dois dígitos para representar o ano. Assim, [1999] é representado como [99] apenas. Porém, uma data como [2000] é registrada nesse sistema como [00]. Acontece que, ao efetuar operações com datas, [00] é inferior a [99], e portanto os sistemas tendem a interpretar 2000 como 1900 (ou a data mais antiga que estejam preparados para informar). Falhas como essa são chamadas de bugs, devido a uma história sobre falhas causadas por insetos durante os primeiros testes com os computadores, meio século atrás.

Agora, imagine que um débito, que deveria ser pago no dia 31 de dezembro de 1999, seja atrasado por apenas um dia. O computador que não estiver preparado vai calcular juros sobre um século de suposto atraso no pagamento, em vez de considerar apenas um dia. E se você programar seu videocassete para gravar um programa nos primeiros dias de janeiro próximo, não conte totalmente que essa gravação aconteça: ele também usa processadores como os computadores, e pode falhar da mesma forma. 

O pavio aceso – O que parece simples vai se complicando, na medida em que muitos sistemas informatizados usam o relógio interno do sistema para efetuar automaticamente determinadas operações programadas. Por exemplo, acionar as máquinas de uma fábrica para a confecção de um produto encomendado para determinada data. Se o computador dessa fábrica receber a data errada de outro computador, ou ele mesmo tiver essa falha, a ordem para a produção poderá ser dada muito antes do previsto, causando um grande prejuízo com excesso de produção sem comprador, ou nem ser dada, deixando de ser atendida a encomenda. Um gerente atento, numa pequena empresa, talvez perceba algo errado, mas numa grande corporação isso será bem mais difícil de ocorrer.

É por isso que podem por exemplo faltar combustíveis nos postos, ou alimentos nos supermercados: por trás da bomba de gasolina ou da prateleira existem complexos sistemas de intercâmbio eletrônico de informações entre produtores, atacadistas e varejistas/consumidores. Se o supermercado não recebe as mercadorias na data prevista, fica com as prateleiras vazias, e só vai descobrir isso quando a mercadoria não chegar. Mesmo que o fornecedor seja avisado imediatamente, ainda assim vai ser necessário um tempo para encaixar o novo pedido no sistema. Até porque, provavelmente, esse fornecedor vai estar enfrentando dezenas, centenas ou milhares de clientes enfurecidos com a não entrega dos produtos prometidos. Todos, no mínimo, ameaçando processar a empresa por quebra de contrato etc.

E a complexidade vai aumentando: existem sistemas que cancelam automaticamente encomendas de clientes inadimplentes. Mesmo que o cliente seja pontual nos pagamentos, e que o fornecedor esteja compatível com o uso da data com quadro dígitos, se o banco enviar ao fornecedor uma informação errada devido ao problema das datas, pode parecer que a fatura anterior não foi paga e portanto o crédito do cliente será cortado, a encomenda não será processada. Pior: o cadastro da empresa supostamente devedora poderá ficar negativado em sistemas de proteção ao crédito, de forma que tal empresa poderá ter encomendas sucessivamente canceladas, de outros fornecedores que consultaram tal cadastro negativo. 

Mais: mesmo que tudo esteja certo com a encomenda, pode faltar transporte, se uma empresa de navegação programar erroneamente seus navios em função da existência do bug em seus computadores. Ou um aeroporto pode ficar subitamente congestionado de vôos, porque seus computadores de programação de pousos e decolagens possuem uma falha pela qual o avião a jato, que já sobrevoa a pista e pede autorização de pouso, em tese deveria ter pousado há cem anos, antes mesmo de Santos Dumont fazer suas primeiras experiências aéreas em Paris. Veja como a bola de neve vai crescendo...

Até que alguém de bom senso perceba que ocorreu uma falha num terceiro interveniente no negócio (o banco, por exemplo) e se empenhe pessoalmente para resolver a questão, grandes prejuízos já terão ocorrido - o cliente mal servido procura o fornecedor concorrente e ainda processa a companhia que não entregou a encomenda. A soma destes dois fatores pode significar a falência de empresas que, de outra forma, teriam uma situação confortável no mercado.

Veja mais:
Sem bug!
Dez anos para acabar com o bug
Verificação é feita em sete níveis
Maioria da organizações sequer sabe que o problema existe
Governos crêem que não alertar sobre o caos ajuda a evitá-lo
Falha foi prevista com muita antecedência