Quando ‘código apodrece’ se torna uma questão de vida ou morte, especialmente na Internet das Coisas

Views: 383
0 0
Read Time:4 Minute, 41 Second

A podridão de código leva a sistemas corporativos de baixo desempenho. No mundo de hoje carregado de dispositivos, pode ser devastador. Outra questão à espreita: algoritmos de IA imprecisos

As possibilidades abertas para nós pela ascensão da Internet das Coisas (IoT) é uma coisa linda. No entanto, não está sendo dada atenção suficiente ao software que vai para as coisas da IoT. Este pode ser um desafio assustador, uma vez que, ao contrário da infraestrutura centralizada de TI, existem, por uma estimativa,pelo menos 30 bilhões de dispositivos IoT agora no mundo, e a cada segundo, 127 novos dispositivos IoT estão conectados à internet.

Muitos desses dispositivos não são burros. Eles estão cada vez mais se tornando sofisticados e inteligentes por si só, abrigando quantidades significativas de código local. A pegadinha é que significa um monte de software que precisa ser cuidado. O Gartner estima que, neste momento, 10% dos dados gerados pela empresa são criados e processados no limite, e dentro de cinco anos, esse número chegará a 75%.

Para sensores dentro de uma geladeira ou máquina de lavar roupa, problemas de software significam inconveniência. Dentro de automóveis ou veículos, significa problemas. Para o software que executa dispositivos médicos, pode significar vida ou morte.

“Podridão de código” é uma fonte de problemas potenciais para esses dispositivos. Não há nada de novo sobre a podridão de código, é um flagelo que está conosco há algum tempo. Isso acontece quando o ambiente em torno do software muda, quando o software se degrada, ou à medida que a dívida técnica se acumula à medida que o software é carregado com melhorias ou atualizações.

Pode derrubar até mesmo os sistemas corporativos mais bem projetados. No entanto, à medida que o código cada vez mais sofisticado é implantado nas bordas, é preciso prestar mais atenção aos dispositivos IoT e sistemas altamente distribuídos, especialmente aqueles com funções críticas. Jeremy Vaughan, fundador do CEO da TauruSeer, recentemente soou o alarme sobre o código que executa ambientes de borda médica.

Vaughan foi estimulado a agir quando o monitor de glicose contínuo (CGM) funciona em um aplicativo móvel usado por sua filha, que teve Diabetes Tipo-1 a vida toda, falhou. “Os recursos estavam desaparecendo, os alertas críticos não estavam funcionando e as notificações simplesmente pararam”, afirmou. Como resultado, sua filha de nove anos, que contava com os alertas da CGM, teve que confiar em seus próprios instintos.

Os aplicativos, que Vaughan havia baixado em 2016, eram “completamente inúteis” no final de 2018. “Os Vaughans se sentiam sozinhos, mas suspeitavam que não eram. Eles levaram para as avaliações no Google Play e na apple App store e descobriram centenas de pacientes e cuidadores reclamando de problemas semelhantes.”

A podridão de código não é o único problema escondido no software de dispositivos médicos. Um estudo recente da Universidade de Stanford descobriu que os dados de treinamento usados para os algoritmos de IA em dispositivos médicos são baseados apenas em uma pequena amostra de pacientes. A maioria dos algoritmos, 71%, são treinados em conjuntos de dados de pacientes em apenas três áreas geográficas – Califórnia, Massachusetts e Nova York – “e que a maioria dos estados não tem nenhum paciente representado.” Embora a pesquisa de Stanford não expôs resultados ruins da IA treinada nas geografias, mas levantou questões sobre a validade dos algoritmos para pacientes em outras áreas.

“Precisamos entender o impacto desses vieses e se investimentos consideráveis devem ser feitos para removê-los”, diz Russ Altman, diretor associado do Stanford Institute for Human-Centered Artificial Intelligence. “A geografia se correlaciona com um zilhão de coisas relativas à saúde.” Ele se correlaciona com o estilo de vida e o que você come e a dieta a que você está exposto; pode se correlacionar com a exposição climática e outras exposições, dependendo se você vive em uma área com fracking ou altos níveis de EPA de produtos químicos tóxicos – tudo isso está correlacionado com a geografia.”

O estudo de Stanford insta o emprego de conjuntos de dados maiores e mais diversos para o desenvolvimento de algoritmos de IA que entram em dispositivos. No entanto, os pesquisadores alertam que a obtenção de grandes conjuntos de dados é um processo caro. “O público também deve ser cético quando os sistemas médicos de IA são desenvolvidos a partir de conjuntos de dados de treinamento estreitos. E os reguladores devem examinar os métodos de treinamento desses novos sistemas de aprendizagem de máquina”, insistem.

Em termos de viabilidade do software em si, Vaughan cita a dívida técnica acumulada com dentro de dispositivos médicos e software de aplicativos que podem reduzir severamente sua precisão e eficácia. “Depois de dois anos, confiamos cegamente que o aplicativo [de monitoramento de glicose] havia sido reconstruído”, relata. “Infelizmente, as únicas melhorias foram correções rápidas e patchwork. A dívida técnica não foi resolvida. Validamos erros em todos os dispositivos e ainda encontramos comentários compartilhando histórias semelhantes.” Ele pede transparência sobre os componentes dentro desses dispositivos e aplicativos, incluindo seguir as diretrizes da Administração de Alimentos e Medicamentos dos EUA que exigem um “Projeto de Lei de Segurança Cibernética de Materiais (CBOM)” que lista “componentes comerciais, de código aberto e de hardware fora da prateleira que são ou podem se tornar suscetíveis a vulnerabilidades”.

Cada vez mais o desenvolvimento de computação e software está se movendo para o limite. O desafio é aplicar os princípios de desenvolvimento ágil, gerenciamento do ciclo de vida de software e controle de qualidade aprendidos ao longo dos anos no data center para as bordas, e aplicar automação em uma escala maior para manter bilhões de dispositivos atualizados.

FONTE: ZDNET

POSTS RELACIONADOS