6 min de leitura

Precisamos falar dos códigos mal escritos

Existem, são muitos e, como dependemos cada vez mais deles, suas falhas geram danos terríveis. Se a própria indústria não se autorregula, os governos deveriam regulamentar a profissão de desenvolvedor

Chris DeBrusk
29 de julho de 2024
Precisamos falar dos códigos mal escritos
Este conteúdo pertence à editoria Tecnologia, IA e dados Ver mais conteúdos
Link copiado para a área de transferência!

Arranha-céus invisíveis. Os softwares e os sistemas tecnológicos dos quais dependemos diariamente são como arranha-céus invisíveis ao nosso redor. 

É preciso um exército de profissionais treinados, licenciados e credenciados para construir um arranha-céu na maioria das cidades ao redor do mundo. Não é? 

Então, por que as plataformas de software e as ferramentas de machine learning que se tornaram componentes cruciais dos ecossistemas financeiros, militares, médicos e de comunicação do mundo são feitas por profissionais sem conhecimento comprovado? Não sabemos quem os projetou, como foram construídos, ou se  escondem defeitos que poderiam levar a grandes inconvenientes, caos financeiro, ou falhas catastróficas.

Falhas de design são introduzidas em sistemas de software em todo o mundo todos os dias, e os erros mais graves podem ter efeitos generalizados e dispendiosos. Mesmo as indústrias que exigem níveis mais elevados de regulamentação e certificação podem ter de enfrentar consequências catastróficas de falhas de design de software. 

Em outubro de 2018, por exemplo, o Government Accountability Office dos EUA advertiu que muitos sistemas de armas sofisticados são vulneráveis ao ciberataque, depois que analistas desempenhando o papel de adversários hackearam sistemas de controle de inúmeras armas. Nesse mesmo mês, a Food and Drug Administration emitiu um alerta sobre dois dispositivos médicos devido a vulnerabilidades de software que poderiam permitir que um hacker sequestrasse o dispositivo e mudasse sua função, potencialmente com consequências letais para o usuário do dispositivo.

Tais consequências estiveram nos holofotes nos últimos meses, quando a Boeing enfrentou forte escrutínio sobre se as falhas do projeto de software eram um fator em duas falhas fatais consecutivas de seus jatos 737 MAX — e se esses erros eram evitáveis.

> Para ajudar a evitar catástrofes, as empresas que fornecem produtos e serviços fundamentais construídos com base em hardware e software em rápida evolução precisam pensar em como garantir resiliência digital

Para ajudar a evitar outras catástrofes, as empresas que fornecem produtos e serviços fundamentais construídos com base em hardware e software em rápida evolução precisam pensar em como podem garantir que seus negócios tenham um nível de resiliência digital que justifique a confiança que a sociedade depositou nelas. Isso exigirá — por parte de arquitetos técnicos, desenvolvedores de software e designers de hardware — a criação de um conjunto de requisitos comumente aceitos que os profissionais de software, hardware e rede devem satisfazer para praticar seus ofícios. Se não o fizerem, o governo pode.

Pense na indústria de construção, que teve padrões formais durante décadas. Um arquiteto licenciado deve criar o projeto para um edifício, e um exército de engenheiros profissionais deve aprovar a estrutura, bem como os sistemas elétricos e mecânicos, para garantir que o projeto atenda ou exceda todos os códigos de construção e normas de segurança. Todos esses profissionais têm anos de escolaridade e experiência de trabalho relevante e passaram por rigorosos exames de certificação.

Edifícios altos raramente colapsam, e quando eles caem — ou até mesmo demonstram fraquezas estruturais — recursos extensos são implantados para descobrir quais erros foram feitos para que os procedimentos possam ser modificados. Em alguns casos, os profissionais que cometeram erros perdem suas licenças.

Quando se trata de design e desenvolvimento de software e hardware, os requisitos são muito menos formalizados. Enquanto muitas das bilhões de linhas de código de software que executam grandes partes da infraestrutura da sociedade são escritas por engenheiros altamente qualificados e cientistas da informação, não há nenhuma exigência para garantir que esse seja o caso. Há padrões setoriais para alguns elementos de desenvolvimento de infraestrutura técnica, mas por não haver nenhum mecanismo de aplicação, as normas raramente são seguidas.

Exceto em casos raros, como as plataformas utilizadas na indústria aérea e o programa espacial, nenhum engenheiro profissional ou arquiteto assina os planos para programas de computador críticos e plataformas de hardware, e nenhum inspetor do governo os certifica para uso. Nem todos os aplicativos de software ou projeto de codificação carregam o mesmo nível de risco potencial, portanto, com esse foco na qualidade e resiliência, é provável que uma abordagem em camadas seja necessária.

Para mitigar os riscos maciços da falha crítica do sistema, o setor privado deve unir-se para profissionalizar ainda mais a concepção e implementação do software. Para começar, os codificadores que trabalham em infraestruturas críticas devem ter uma estrutura de acreditação profissional que emite licenças. Uma abordagem pode ser algo como a autoridade reguladora da indústria financeira, uma organização não governamental que testa, certifica e monitora aqueles que trabalham na indústria de corretagem dos EUA para garantir que eles tenham as habilidades para realizar seus trabalhos.

Obviamente, licenciamento e registro não resolveriam todos os problemas, como qualquer um que já experimentou um mau conselheiro financeiro, arquiteto, ou médico pode atestar. Mas é um passo na direção certa. Um resultado positivo potencial de tal aproximação seria o nivelamento mais adicional do campo de jogo de uma perspectiva da diversidade. Afinal, seria difícil argumentar que um programador ou designer individual não era tão qualificado quanto outro se ambos tivessem o mesmo nível de certificação setorial.

Se a própria indústria não se autorregular, os governos deveriam chamar para si a responsabilidade. Os reguladores financeiros nos EUA já estão se aventurando por esse caminho em esforços como reuniões de várias agências para propor o _Enhanced Cyber Risk Management Standards,_ relatório que é voltado à resiliência cibernética, e o _California’s Consumer Privacy Act_, focado em privacidade de dados aprimorada. Os problemas em ambas as áreas resultam frequentemente do código mal escrito ou do hardware mal projetado.

O futuro será claramente executado em softwares cada vez mais complexos. No entanto, é apenas uma questão de tempo antes que outro erro em um pedaço crítico de software ou hardware resulte em uma violação de dados sensíveis, instabilidade financeira, ou mais perda de vidas. É hora de reconhecer todos os arranha-céus invisíveis que existem ao nosso redor e tomar as medidas para impedi-los de cair.

Chris DeBrusk
Chris DeBrusk é sócio na prática de estratégia tecnológica da consultoria Oliver Wyman, sediado em Nova York.

Deixe um comentário

Você atualizou a sua lista de conteúdos favoritos. Ver conteúdos
aqui