Burj Al Arab e a casa do cachorro

Esse é um assunto que está batendo na minha cabeça faz algum tempo e acho que agora consegui dar uma certa forma, encontrando a metáfora correta: Burj Al Arab e a casa do cachorro.




O Burj Al Arab é um dos pináculos da engenharia. Belo, sofisticado, bem planejado, robusto, seguro e pensado para satisfazer aos mais exigentes. Enfim, um pedaço do paraíso (para os que acreditam).

E a casa de cachorro? Bom, é aquela singela construção que lembra uma casa mas que, bem, só serve ao cachorro e não imagino agradar nem a ele.



Mas porque trazer essas duas imagens? Porque quero abordar desenvolvimento de programas e sistemas que muitas vezes oscilam entre o Burj Al Arab e a casa de cachorro. Nos falta (me refiro aos desenvolvedores) uma melhor organização e (agora para pânico de muitos) regulamentação. Por que temos tanto preconceito com a regulamentação da profissão? Alguém já imaginou comprar uma casa (ou mesmo morar numa) que não tenha uma planta baixa? Que não tenha um engenheiro responsável? Alguém aceitaria ser operado por um pedreiro (infelizmente sim com as inúmeras cirurgias espirituais, mas estou digredindo)? A resposta, para a maioria das pessoas, seria não para ambas as perguntas. Todos querem que alguém assuma as responsabilidades e que os profissionais tenham sido aprovados por um órgão regulamentador. Então por que se aceita que alguém não cientista da computação faça o sistema web da sua empresa?

A razão é simples, o cliente quer um Burj Al Arab mas para isso pagar como se fosse uma casa de cachorro.

Outro ponto em que esta metáfora se aplica é quanto ao processo de desenvolvimento. É razoável que se espere o concreto secar para se iniciar os trabalhos de interiores. Ninguém, em sã consciência, aceitaria que se levantassem paredes sem que as fundações estejam prontas e devidamente verificadas. Não se coloca o telhado antes das paredes. Não se assume que: "bom, se não ficar de pé tentamos mais uma vez" seja uma metodologia aceitável. Posso mandar o meu "faz-tudo" de plantão montar uma casa para o meu cachorro e se não der certo, bom, faz-se outra. Se a entrada ficar pequena para o cachorro? Desgaste-se a entrada até ele passar. Se na primeira chuva a casinha se enterrar na lama do quintal? Azar, amanhã colocamos umas pedras para ver se resolve.

Acho que ficou claro o paralelo. Hoje vemos sistemas sendo construídos como se fossem casa de cachorro: sem planejamento, sem uma visão de vida útil, sem responsabilidade. O que é nosso é de ninguém. Qualquer um que sabe um pouco de estrutura de dados se julga desenvolvedor de programas. O mercado está tão saturado de "faz-tudo" que ninguém está prestando atenção nos verdadeiros engenheiros. Mas o que observo é que todos esperam um Burj Al Arab. Ainda não se entendeu que isso só é possível quando o profissional é capacitado e experiente e que custa caro, MUITO caro. Qualquer um faz uma casinha de cachorro. Basta ver as atrocidades cometidas em JavaScript, PHP, Java EE, etc.

Para mim é uma aberração escutar que site X e Y foram vitimas de SQL Injection. A reação que tenho é a mesma que tive quando soube do caso do Palace I e II no Rio de Janeiro. Como é que pode um sistema sofre com um ataque tão ridículo? É o mesmo que um prédio cair por erro de cálculo estrutural (o B-A-BA do engenheiro civil). É como um médico amputar a perna errada de um paciente.

Isso deveria ser visto como uma aberração e o profissional ser afastado pelo resto de sua vida de suas funções.

Não acho natural aceitar que se desenvolva sistemas como se fossem casas de cachorro. O que parece ser a prática comum, principalmente com prazos no mínimo otimistas que gerentes de projeto impõem. Este normalmente são dotados de um total desprendimento ou mesmo noção da realidade do que é desenvolvimento de software.

A realidade está batendo na porta: 1.000.000 de "faz-tudo" não irão construir um Burj Al Arab e os melhores engenheiros do mundo tampouco o farão em 2 anos. No final das contas não existe mágica: o teu sistema será tão bom quanto os profissionais que se tem a disposição e que condições se aplica ao desenvolvimento.

Abraços,

Gustavo