terça-feira, 5 de agosto de 2008

Filosofadas: A teoria e a prática

Você já pensou com um sistema (ou programa/jogo/site) é construído? Como, não mais que de repente, um site novo do seu banco, do seu time ou do seu provedor aparecem, misteriosamente?

Algumas pessoas nem se preocupam, apareceu com mágica e funciona, na maior parte das vezes. Informágica, na verdade. Mas será que não poderia tem um "botãozinho" a mais, especialmente um que adivinhe o que o usuário está pensando?

Por trás da "coxias" virtuais tem uma troupe de pessoas responsáveis por este palco. Estes seres estranhos (programadores, analistas e outros titulos incompreensíveis como CIO e geek), são, por esterótipo, todos de sexo indefinido tendendo ao masculino, óculos fundo de garrafa, e com espinhas. Também não conseguem formular uma única frase que seja inteligível por pessoas normais e parecem capaz de decodificar o barulho de um modem discando "de ouvido" para saber se tem algo de errado.

Muito menos entender a necessidade urgente do "botãozinho" mágico, que escreva todo um texto de uma página, completo com citações a um click de mouse, volte atrás no tempo ou se lembre onde está o documento que você pensou ter feito semana passada, mas não tem muita certeza.

Mesmo que este seres esterotipados e que "pensam" direto em computês existissem (tá bom, tem algumas figuras que chegam perto), e eu um número quase infinito, ainda assim seriam inutéis. Se deixados por conta própria, vão criar programas apenas para si mesmos, em geral inventando novas, criativas e complicadas maneiras de fazer o que já existe hoje.

Portanto, enquanto as ciências para-psicológicas da telepatia e da clariaudiência não forem desenvolvidas e uso comum, alguém tem informar, e de maneira precisa, o que tem de ser feito.

E bota precisão nisto. Cada decisão sobre, por exemplo, quem pode ver seus emails, o que é spam, quem pode ver ser saldo no banco, como eu troco a senha, tem que ser reduzido a uma simples escolha: sim ou não, sem talvez ou depende. Não por causa da povo programador, mas porque um computador pensa assim, é o tal de binário. Com o tempo, de tanto conviver com computadores, alguns só conseguem pensar assim, sim e não, sem jogo de cintura, mas aí é outra estória.

E aqui chego ao ponto que eu queria a, parafraseando um conhecido livro, a arte precisa e a ciência sutil de coletar os dados de COMO, SES, QUANDO, QUEM e PORQUES que um programa precisar para funcionar. Só que na maioria das vezes, parecem pessoas que falam linguas diferentes (na verdade, falam sim).

Segundo as "cabeças pensantes" universitárias e outros burocratas em geral, existem vários métodos testados e aprovados de recolher e documentar informação antes de começar a desenvolver um sistema. Cada nova estação um deles está na moda, e todos eles tem uma sopa de letrinhas, diagramas e pilhas de papel capaz de enterrar o mais determinado dos mortais. E, é lógico, se a ditadura da moda determinar, durante o processo, que um novo método mais eficiente deve ser usado, a maior parte dos papéis tem de ser refeita. Vassoura nova sempre varre melhor, nem que tenha de varrer o mesmo local duas vezes...

Não vou entrar em detalhes sobre como estes métodos funcionam, como tentam acomodar a natureza humana e as chances de falha, mas a idéia geral (e exaustivamente chata) é bater cada pequena informação ou decisão até que possa ser reduzida, em termos informáticos, a algo absoluto: sim ou não (posso emprestar dinheiro a este individuo?) , nunca ou sempre, todos/um/nenhum (pessoas que podem vem meus documentos).

Metodo concluído, uma calhamaço de papel produzido que pouca gente entende. De preferência com a assinatura do usuário embaixo, garantindo que os programadores entenderam o que ele quer e que ele entendeu o que os programadores entenderam que ele quer. (sonha!)

Novamente um novo pré-suposto, o processo de, hum, tradução do calhamaço de papéis em algo que o computador entenda (sujeito a mais alguns modismos e dogmas info-religiosos) aconteceu de maneira tranquila e perfeita. Os recursos, tempo, dinheiro, mão de obra e equipamentos, ideais. Nenhuma Medida Provisória, nem Planos com nome de presidentes ou ministros e nem aviões caindo no meio de cidades. Uma caso quase utópico, digno tanto de um trabalho de pós-graduação quanto registro no Guinness Book.

Aí que a teoria e a prática colidem, de maneira catastrófica. Todo os esforços de reduzir a realidade a algo numérico, absoluto de repente se revelam incompletos, e portanto, inúteis. Surgem as excessões, os casos onde as regras "universais", como, por exemplo, "todo o cliente tem cpf e nome da mãe no cadastro", começam a ser tornar algo "um pouco menos que universais".

E começa a luta inglória de tentar salvar o barco afundando, nem que tenha de se usar algumas palavras abomináveis (para os iniciados e do lado claro da força) como "bacalhaus", "gambiarras" e "flags". Tarefa tão complicada e arriscada quanto tentar trocar um pneu de um carro sem parar o veículo.

Filosofando um pouco sobre esta repetida situação, vejo que a mania dos computadores de tentar resumir tudo a 0 e 1 é o maior culpado da situação. E para simplificar a vida do povo binário:



Axiomas para o desenvolvimento de Sistemas
  1. Onde estiver escrito o numeral 1 (um), leiam-se vários.
  2. Onde estiver escrito nunca, leia-se algumas vezes
  3. Onde estiver escrito sempre,leia-se na maior parte das vezes

Corolário: mesmo que o usuario garanta, com absoluta certeza, que algo não vai, não pode, não deve acontecer, quando o sistema esta pronto, ou quase pronto, sempre aparece a excessão importantíssima (sem a qual o sistema NUNCA poderá funcionar) onde PRECISA acontecer, e que ninguem lembrou antes.



Ps: Não se preocupe se você achou o texto paradoxal. Ele, assim como toda a situação, É paradoxal.

Nenhum comentário: