23 de janeiro de 2018

Como um software mal projetado fez milhões de pessoas temerem a morte

Programadores frequentemente subestimam a importância de uma boa interface de usuário, a famosa UI, que pode fazer milagres quando bem projetada por um designer experiente. O contrário também é verdadeiro: quando malfeita, a interface pode colocar em risco a funcionalidade, e o maior exemplo foi dado no Havaí durante o final de semana.

Se você não ficou sabendo o que aconteceu, todos os celulares na ilha receberam um alerta de que um míssil balístico estava a caminho do local, com impacto previsto para instantes, orientando a população a procurar abrigo. A mensagem foi transmitida também por TV e por rádio, finalizada com um aviso de que não se tratava de um teste. A população assustada só foi descobrir que se tratava de um alarme falso 38 minutos depois com uma nova mensagem.

Agora, no entanto, o problema ficou claro. Primeiro, atribuiu-se a falha a um erro humano, com o operador clicando no botão errado. No entanto, uma análise um pouco mais cuidadosa mostrou que o software utilizado para disparar essas notificações era terrivelmente desenhado, induzindo o responsável ao erro.

O escritório do governador do Havaí divulgou uma imagem que mostra o quão horrível era a interface de usuário, com links azuis sobre uma tela branca que lembram a web de 1995, quando não havia quaisquer outros elementos visuais para ajudar o usuário a navegar adequadamente por um sistema.

O operador, então, acabou clicando no link “PACOM (CDW) – STATE ONLY” quando deveria ter clicado no link “DRILL – PACOM (CDW) STATE ONLY”, usado para testes e que não causaria tanto susto à população. Apenas uma palavra separa as duas opções.

Desde o incidente, foi introduzida a primeira linha no software, com o título “BMD False Alarm”, que permite o disparo rápido de notificação de alarme falso. Isso não soluciona o problema de péssimo design, mas ao menos vai evitar o problema que fez com que a segunda mensagem, publicada para acalmar a população, demorasse 38 minutos para ser enviada.

Existem algumas soluções bastante simples que poderiam ser implementadas para evitar induzir o operador ao erro sem precisar redesenhar o software do zero. A cor do link de disparo da notificação real poderia ser diferente das demais, como vermelho por exemplo. Além disso, uma janela de confirmação que deixasse muito claro que se trata de uma mensagem real e não de uma mensagem de teste também poderia evitar o erro.

Então fica a lição. Se você estiver desenvolvendo um software, pare um pouco e pense em design e como levar o usuário a usar o seu sistema corretamente e não o induzir ao erro. Especialmente se seu programa lidar com uma função vital como alertar uma ilha inteira de que a morte se aproxima.