sexta-feira, 10 de setembro de 2010

O Software Imperfeito

As relações humanas nesse início de século estão cada vez mais complexas, requerendo codigos cada vez mais complexos e detalhados, tanto pela sofisticação crescente das sociedades como pelo aumento da diversidade das relações em um mundo cada vez mais globalizado. São constituições, leis, decretos, contratos, auto-regulamentações e outros quetais que regem nossas vidas e a maioria deles nem nos damos conta, por rigorosa impossibilidade de conhecê-los todos.

Da mesma forma, no mundo digital conectado e com toda essa variedade de dispositivos, as regras do jogo são ditadas pelo software, ou programas escritos por humanos para que as engenhocas funcionem adequadamente.

Adequadamente? São cada vez maiores as queixas contra o software, que trava, dá pau, vaza dados para terceiros, é inseguro, não funciona direito na nova máquina, é instável, enfim, é o culpado de todas as mazelas dos bits e bytes.

Nos anos 1960, quando os poucos computadores custavam milhões de dólares cada e suas funcionalidades eram extremamente limitadas, o custo do software era uma fração mínima do total do orçamento de informática e sua complexidade era limitada a aplicativos relativamente simples.

Hoje em dia, um simples smartphone tem um poder computacional maior do que a soma de todos os computadores do projeto Apollo da NASA, responsável pela chegada do homem à lua, naquele longínquo 20 de julho de 1969.  Com quase 20% de todos os seres humanos conectados à internet com uma enorme variedade de dispositivos, cada um com sua peculiaridade de tamanho de tela, capacidade de memória, sistema operacional, linguagem natural, linguagem de programação, fora os bilhões de aplicativos que rolam pela rede fizeram do mundo digital algo bem mais intrincado que o mundo das leis analógicas, aquelas que, no começo dessa postagem eu dizia que eram extremamente complexas.

E existe pelo menos uma forte razão para corroborar o que aqui afirmo: no mundo digital, as regras precisam ser obedecidas cada vez mais em tempo real, de execução, sem possibilidade de recurso, ao contrário do mundo das regras do papel.

Daí o peso cada vez maior e os holofotes cada vez mais centrados no software, pois ele governa nossas vidas de maneira cada vez mais invasiva, sem chances de retorno.

Basta ver, por exemplo, a quantidade de recalls feitos pelas montadoras para que os carros sejam levados a oficinas não só para trocar cabos defeituosos que podem causar defeitos, mas também para atualizar programas de gerenciamento do veículo que igualmente podem causar panes fatais. É novamente o software cada vez mais complexo e sempre imperfeito que requer atualizações e correções.

E aí, quando teremos um software perfeito? Provavelmente nunca, salvo para aplicações irrelevantes. Lembro aqui de um colega meu de engenharia que produziu uma engenhoca para seu trabalho de graduação que se chamava "Nãofazímetro de Nada". Era uma caixa que, quando ligada a uma tomada elétrica, abria a tampa superior e de lá saia uma mãozinha mecânica que puxava o fio da tomada, e, ato contínuo, voltava ao conforto da caixa, que se fechava.

Não servia para nada, mas era um sofisticado servomecanismo programado, que ganhou prêmio por demonstrar o conhecimento dos processos de realimentação e da montagem de um dispositivo relativamente sofisticado que funcionava sem falhas. A polêmica ficou por conta de sua utilidade, que o autor justificou pelo próprio nome que deu a sua criação, o "Nãofazímetro de Nada"...

No mundo digital e conectado de bilhões de aplicações, todavia, elas precisam ser úteis, e, por conta disso, ficam cada vez mais complexas.

Torná-las a prova de falhas é tarefa que cada vez mais ocupam os profissionais e empresas do setor. Mas é preciso, igualmente, que os clientes que encomendam esses programas forneçam as especificações exatas, missão cada vez mais difícil.

À medida em que mais e mais dispositivos com novos aplicativos forem conectados por mais e mais pessoas, essa complexidade aumenta, e os problemas também.

Resta cuidar melhor das especificações e da construção do software, mas isso por vezes implica em custos e prazos que não estão disponíveis. Então, para resolver os conflitos, existem as leis do papel e os advogados, que recentemente descobriram o filão do direito digital, cada vez mais suculento. 

Nenhum comentário:

Postar um comentário