2007-06-15

A perversa indústria de software

Não, não é (só) sobre a Microsoft. É que eu assisti mais um vídeo sobre qualidade, do Douglas Crockford, onde ele lembra que estamos a 40 anos na famosa "Crise do Software". Mas ao contrário dele, e de outros, eu não acredito que o problema seja a natureza do software, complexidade, gerenciamento, ferramentas ou linguagens. A minha teoria é muito mais simples - quem pode resolver o problema, não quer.

Se fazer software subitamente se tornasse algo rapido, simples e eficiente, fatalmente o nível de preços cairia, seres humanos poderiam entender o que acontece na misteriosa cripta de TI e a necessidade de reinventar a roda todo ano seria, no mínimo, questionada. Certamente, isso não é algo que a muitas empresas de software gostariam.

Pense no Java (ou C#, tanto faz). Tecnicamente, uma das piores linguagens de programação que já foi criada. Mas depois de poucas semanas de treino, até a porta da sala consegue programar. Isso gera uma "comunidade" gigante, gerando toneladas de código e $$, eventualmente ambos de qualidade. Mais ou menos como a comunidade de usuarios de teclados QWERTY, muito popular, mas originalmente projetado para atrasar a digitação. Como nenhuma companhia quer ficar presa à um pequeno grupo de nerds que falam apenas Klingon e Smalltalk, eles acabam sendo muito bem pagos para compensar o trabalho mediocre, ou mudam de trabalho mais que de cuecas, ou fundam o Google.

Resumindo, a "crise" gera toneladas de $$, de programadores individuais a grandes empresas. Por isso ela existe há 40 anos e eu acredito que vai durar mais 40.

3 comentários:

Khaos disse...

A idéia de que a crise de software é gerada, e mantida, pelo fato de gerar "$$" para as empresas de software é extremamente válida e, por mim, aceita. Mas creio que não seja apenas isso.
Estamos falando de um problema já identificado, e não solucionado, que abrange uma série de fatores e entre eles a necessidade de se abrir as pernas para que qualquer indivíduo seja capaz de escrever uma linha de código, seja de boa ou má qualidade (falta de mão de obra qualificada).
Falta de competência administrativa em geral. Má definição de requisitos, falta de identificação pontos críticos, e práticas obsoletas as novas necessidades. A verdade é que gerenciamos projetos e não pessoas, gerenciamos prazos e não riscos.
Entendi o seu ponto de vista que visa de onerar as pessoas que tem o controle do objetivo, e tornando assim incapaz a aplicação de soluções já conhecidas as convertendo em mais horas de desenvolvimento. Acredito e concordo, mas mesmo assim ainda acredito que só o gerenciamento de pessoas, egos, talentos, know how e etc, ainda mais importante e necessário. Um grande causador, ou pelo menos um ponto a favor da crise de software.

Tenho muitas teses para a crise do software e só uma conclusão que por sinal é igual a sua. Ainda vamos arrastar essa crise por mais algumas décadas.

Lucas disse...

Acho que existe um grande número de pessoas envolvidas em manter a coisa complexa e reinventar a roda todo ano/mes/semana.
Não sei se as grandes empresas, que certamente lucram com isso, o fazem intencionalmente. Particularmente não sou do tipo que acredita em conspirações. Uma coisa eu estou certo. Nós desenvolvedores fomentamos esse processo diariamente. E porque fazemos isso? Acredito a principal razão seja o nosso próprio ego:

1 - Existe uma fantasia que trabalhar com a ultima tecnologia disponível é legal. Para algumas pessoas traz status, para outras uma falsa impressão de estar aprendendo e "melhorando profissionalmente". Basicamente loucuras que somente entenderemos a verdadeira razão pela qual fazemos quando tivermos uns 80 anos e estivermos reclamando da vida "A, porque larguei o php, poderia ter feito 2 duzias de sistemas a mais na minha vida".

2 - Existe uma dificuldade de admitirmos que somos os novos pedreiros. Eu uso o termo "pedreiro da modernidade" ja tem um tempo. Vivo(emos) em uma ilusão de que um dia fazer software será fácil. Particularmente acho fazer software muito fácil, porém exige muito esforço. Um pedreiro gasta a maior parte do seu tempo fazendo um trabalho repetitivo passando cimento e assentando tijolos. E assim é o desenvolvimento de software é repetitivo, requer disciplina e demora pra caralho. Todos os dias acordo procurando uma nova tecnologia que me permita pensar mais e "assentar menos tijolos" e essa tecnologia não existe. Hoje acredito que não existirá. Fazer software é uma tarefa que requer muito esforço e esforço repetitivo. A partir do dia que admitimos isso tanto faz Java ou Centura, JSF ou Struts, JPA ou EJB2.1.
É dificil para o meu ego admitir que estudei tanto para concluir que sou um pedreiro da modernidade, nao foi isso que me venderam quando entrei na faculdade (hehe), por isso todos os dias acordo com esperança que aquela tecnologia que foi lançada hoje tornará minha tarefa mais nobre. E todos os dias durmo com a frustração (e muito puto) porque que não foi hoje que a tecnologia chegou.
E com isso eu ajudo as grandes empresas a reinventarem a roda todo dia, ofereço a eles a minha esperança e as minhas horas e o dinheiro de quem paga meu salario, e eles me compensam, tornando a coisa mais complexa e contribuindo para que meu salário não caia. Isso tudo é bem frustrante, mas depois que voce desencana dessa merda e vai criar porcos percebe que a troca até vale a pena porque o dinheiro é bom.

Unknown disse...

Muito bom seu artigo sr. Faerman.

Mas tenho que concordar com o Lucas. Essa mesma industria milhonária do SW é uma ramificação perversa da igualmente milhornária indústria do HW.

Repare pra você ver, parecem ciclos. Em certas épocas paracem que os fabricantes de HW querem fazer um equipamento que rode qualquer SW. E por outro lado, os Programadores fazem algo que não roda em nenhuma máquina. Dessa maneira os KiloBytes viraram MegaBytes, depois GigaBytes e agora já estou cotando o preço do meu novo HD de 1 TeraByte. E assim vamos...

Como o Lucas disse, é uma competição de egos. As indústrias, tanto do HW como do SW, querem ser as primeiras a desenvolver algo "melhor".

E como tem quem compre as novidades, tão breve sairemos dos TeraBytes para os PetaBytes. E nossos filhos guardarão não sei o quê nos seus discos de ExaBytes de capacidade.

Abração pra você!
Ah, depois dá uma lidinha no meu blog.
www.m-imolene.blog.uol.com.br