“no momento em que você instala um programa, o ambiente muda”. a frase, de meir lehman, que trabalhou por anos na IBM e depois foi professor do imperial college [neste texto] anuncia que software que funciona no mundo real [ou seja, que é produzido por um time, para resolver problemas de instituições e usuários reais… e “roda” em ambientes reais] nunca será especificado de forma definitiva, porque 1] é impossível entender, ou prever, toda a complexidade do ambiente em que o software será usado e 2] porque, quando o software entrar no ambiente de uso… o ambiente será modificado pelo software. parada dura. lehman seguiu sua frase famosa com outras duas: “evolução é uma propriedade essencial de software no mundo real” porque, claro, “à medida que as necessidades mudam, o critério de satisfação tem que mudar”. as leis de lehman sobre evolução de software guiaram o desenvolvimento de sistemas em negócios de classe mundial durante quase 30 anos, pois enunciadas em 1974, quando nem se fazia ideia do que viria a ser a internet [apesar dela já existir desde 1969].
as leis de lehman falam de 1] mudança contínua e diminuição da satisfação dos clientes com um sistema que já foi muito bom, mas num passado distante; 2] de aumento constante de complexidade do software, a menos que haja estratégia e investimento para, deliberadamente, reduzi-la; … 6] de crescimento constante do tamanho do software, para atender demandas de usuários por mais funcionalidade e 7] a queda continuada de qualidade percebida, a menos que a manutenção do desenho do sistema seja permanente e conforme as mudanças em suas restrições operacionais.
em suma, lehman diz que software quase nunca é apropriado para fazer o que dele é demandado e, ainda por cima, fica velho. e rápido. e a história não para por aí. o software tratados pelas leis de lehman, os sistemas corporativos, são um problema clássico de engenharia de software: demandam altos investimentos, muito tempo e têm alto risco de dar errado. e há dados globais sobre o tal “dar errado”, resultante de estudos realizados do standish group desde 1994, um resumo gráfico dos quais se pode ver abaixo [deste link, com mais detalhes lá].
leia a imagem assim: nos últimos 15 anos, menos de 1/3 dos projetos de software empresariais são considerados sucessos indiscutíveis. e outros 1/5, em média, nos últimos 10 anos, fracassaram redondamente. o resto, perto da metade em toda a história da análise, teve resultado discutível. esta análise não é unânime, há quem duvide de sua validade para todos os tipos de projetos [veja este e este links, por exemplo] e há quem afirme que a taxa de sucesso está acima de 50% [com amostra restrita, no entanto]. imagine que seja este o caso, o que quase dobraria a taxa de sucesso de projetos de software empresariais na última década e meia. isso quer dizer que metade dos projetos de software… fracassa, total ou parcialmente.
e alguns dos fracassos são retumbantes, como foi o caso da modernização de um sistema de logística da força aérea americana, claramente um “sistema de lehman”: a USAF contratou duas das maiores companhias globais de software para adaptar seu sistema de ERP [ou planejamento de recursos organizacionais] às normas de auditoria do congresso dos EUA que vigoram a partir de 2017. o projeto começou em 2006, com um contrato de US$628 milhões. e partia do princípio big bang, ou de refazer a operação de logística da força aérea, envolvendo 250.000 pessoas, a partir do zero. pense no problema. seis anos e US$1.3 bilhões de gastos depois, o projeto foi cancelado no fim de 2012, quando se descobriu que seriam necessários mais US$1 bilhão [no mínimo] e outros oito anos de trabalho, para que se tivesse apenas um quarto das funcionalidades desenhadas em 2006. as referências para a malfadada aventura estão neste, neste e neste links.
fracassos deste porte eram ainda mais comuns nas décadas de 80 e 90 d0 século passado. mas os processos de desenvolvimento de software evoluíram, a partir de um modelo de capacidade e maturidade criado na metade da década de 80 sob a liderança de watts humphrey, seguido pelo movimento ágil, que advoga o desenvolvimento iterativo e incremental de software e, entre outros princípios, o planejamento adaptativo. a gente já viu isso antes, nas frases e leis de lehman; e watts humphrey dizia que o sucesso de um projeto de software é definido lá no seu começo, com um plano preciso. como ele sabia da impossibilidade de ter um, dizia que se não for possível um plano detalhado, que se planeje frequentemente. foi isso, parece, que a USAF e seus contratados não fizeram… e deu no que deu.
dos primeiros programas até a internet, software era feito para computadores. e o primeiro software em um negócio entrou no ar há 62 anos [para calcular o valor de padarias… LEO, na j. lyons & co.] e ficava lá atrás do balcão, num centro de processamento de dados. aliás, o balcão pode ser usado como um referencial para contar a história [e o futuro] dos computadores [e da informática] nos negócios.
pra gente escrever, agora, uma muito pequena história [e futuro] da informática, considere três referenciais nas transações entre as pessoas, empresas e coisas: nas empresas, o balcão; e as pessoas e coisas são seus próprios referenciais.
olhando para empresas [ou instituições, de forma mais geral] a informática que é usada na interação com os clientes pode estar do lado de lá do balcão, o que se dá quando quem nos atende não faz uso de informática [diretamente]. ela pode tomar notas e depois, quem sabe, usar alguma informática para capturar e processar tais dados. assim era LEO, em 1961, e foi o estado da arte até a informática chegar no balcão, como os “caixas” de banco e supermercados. antes, o atendente nem tinha acesso a computação: os usuários tinham duas pessoas intermediando a transação; no balcão, falamos com quem usa o computador –na verdade, o software, e muita coisa com a qual a gente veio a se preocupar depois não fazia nem sentido lá. quer ver? o sigilo de suas contas: o caixa ficava, o tempo todo, olhando pra elas. hoje, fazendo quase tudo na rede, alguém tem que “invadir” sua conta pra ter acesso a seus dados [e fazer mais, talvez]. isso porque a informática veio para o lado de cá do balcão. o PC do gerente e secretária são parte desta "geração" da informática, bem como o ATM [caixa eletrônico] e PC nas casas, conectado à internet: ele é a frente, o “seu” terminal de um grande sistema de informação em rede [a internet], que habilita o uso, na minha casa ou escritório [e no caixa eletrônico do posto], de funções externas a ele, na rede.
note que se os computadores –e seu software- são como LEO, não é preciso educar muita gente para seu uso. programadores, técnicos e operadores são poucos, em qualquer negócio, comparado com a população da empresa. e os usuários, claro, não chegam nem perto. com as máquinas no balcão, muita coisa muda: os sistemas devem ter uma usabilidade bem melhor do que costumavam ter atrás do balcão, caso contrário o nível de sofisticação dos atendentes tornaria o negócio inviável. a transição para o balcão revolucionou o desenho de interfaces e usabilidade, para preparar o que estava por vir, a ida para depois do balcão. a chegada da internet e a queda dos preços de hardware quase que universalizaram o acesso ao software, da mesa do diretor ao menino na lanhouse. e aí, como sabemos, o mundo mudou de vez, e era só o começo. pra turma do software, era o fim dos sistemas internos e quase todo software passou a ser, potencialmente, pra todo mundo. e teve que se tornar mais simples, efetivo, fácil de usar… o que é, na verdade, o ponto de partida para a revolução –e transformação em rede- de que vamos falar. mas espere um pouco mais até o cenário ficar mais ou menos arrumado.
se a gente deixa balcões para lá e pessoas são o referencial, há duas alternativas: a informática com você, na forma de laptop e celular ou smartphone, ou informática em você, o caso de um implante coclear ou cerebral [para cuidar de efeitos do mal de parkinson, por exemplo]. com você explica coisas sofisticadas como body area networks [BAN], redes no seu corpo, ou seu corpo como a rede ou parte dela, que podem fazer com que o smartphone interaja com tênis, camisa e boné. é provável que sensores em você também estejam nestas redes, possibilitando diagnósticos mais simples e efetivos e criando alternativas de ação externa sobre instrumentos instalados em você. ou em mim, não pense que não vou ter umas coisas destas no meu corpo. perto disso, BYOD [ideia e políticas associadas a você usar seu próprio dispositivo no trabalho] é quase um passado distante.
se coisas são o referencial, há informática pras coisas [sistemas de informação que representam itens de um estoque, por exemplo], e nas coisas, para o que o código de barras na lata de ervilha é o exemplo trivial. mas pense em chips nos produtos e suas embalagens, e comunicação usando tecnologias como NFC, MQTT e 6LoWPAN, para muito curta e qualquer distância. agora… imagine "conversar" com o selo na casca da banana e descobrir [pois ele media seu acesso à informação sobre aquela banana específica] de onde a fruta vem, desde quando está a caminho e por onde e com quem andou até chegar à sua mesa. breve, numa casca de banana [e sistemas de informação] perto de você.
por fim, as coisas, propriamente ditas, podem ser informática, entendidas como uma combinação de capacidades computacionais, comunicação e controle. robôs são o exemplo clássico e vale lembrar a roboCup, copa de futebol de robôs que existe desde 1997 e cujo objetivo inicial era criar, até 2050, um time de robôs humanóides capazes de disputar uma partida, em igualdade de condições, com a seleção humana campeã do mundo de então. quem viver, verá.
pelas regras, os times de robôs mais sofisticados da roboCup são autônomos, ou seja, não podem ter contato com o mundo exterior: capturam informação, fazem o processamento e agem sobre ela, cada um por si, em rede com os outros, mas sem acesso à internet ou computação externa a cada “jogador”. carros sem motorista [o driverless car de google…] também são robôs e, além de capturar informação do ambiente, se comunicam com GPS, poderiam se comunicar uns com os outros [V2V] e com os serviços de google, tornando cada deslocamento, bem… uma viagem. pense nas possibilidades.
resumo? as gerações da informática são [e estão aqui, ao mesmo tempo]: antes, no e depois do balcão; com e em você e pras, nas e as coisas.
onde estamos, agora? no e depois do balcão estão aqui, sustentados por antes, que agora, ao invés do “centro de processamento de dados”, ou CPD de cada negócio, está na nuvem, redes orquestradas de computação e comunicação que fazem parte da internet. informática conosco está na ordem do dia, em larga escala, de laptops a smartphones, passando por câmeras digitais. em cada um? isso está começando a aparecer [google glass, por exemplo], mas vai levar tempo até que você possa ir a um camelô e comprar um olho biônico, como em blade runner. sistemas de informação pras coisas estão aí desde LEO e se tornando universais; a informática nas coisas tem muito a avançar, evoluindo a partir de barras, RFID e SIMs [estes, como se sabe, são portas de entrada para redes e serviços]. e, finalmente, as coisas se tornando informática, elas mesmas, é um horizonte de longo prazo. ou não: viu roomba, aspirador de pó robótico, pra casas? ou o anúncio da foxconn sobre a instalação de um milhão de robôs nas suas fábricas? aí tem. quer ver? espere…
neste contexto, de sociedade e economia imersas em TICs, o que é uma empresa? conceitualmente, empresas são abstrações. na prática, empresas são conjuntos de métodos e processos [e as infraestruturas, serviços e aplicações de suporte] que entregam produtos e/ou serviços a comunidades de usuários.
e a empresa contemporânea é “escrita” em software: se você está em um negócio, está no negócio de software, era um adágio da comunidade de software nos anos 90. seu negócio tinha que ser bom em escrever software, já que os processos ainda não habilitados por software tinham que passar a tal estágio ou serem descartados. e quanto maior e mais distribuída a empresa, mais clara, urgente e imediata a necessidade de codificar, de informatizar todos os seus processos. senão, como medir e cobrar dezenas de milhões de contas de luz… na mão? como gerir estoques de dezenas de milhares de itens diferentes… à mão? como organizar a produção de sistemas que têm milhões de partes e peças diferentes, como o airbus A380? no dia a dia, como acertar as contas da padaria com o fisco, sem software? pela via da escrita fiscal, à mão, caneta tinteiro e papel borrão?… não, tinha que ser software. e redes.
aqui começa nossa pequena saga: por mais 3 textos, vamos olhar para negócios em rede, que estão em mercados em rede, um mundo de pessoas e coisas conectadas e o software –e suas plataformas- por trás disso tudo. a rede [de performances] que habilita negócios, hoje, também mudou a performance e a economia de software, que deixou de ser feito para computadores, como nos tempos de LEO e até pouco tempo, e passou a ser desenhado em rede. a rede é, agora, o computador. é disso que vamos falar nos próximos textos. boa leitura e até lá.