Você pode ser ruim de mil maneiras

Corre um boato novo dizendo que Rails é o novo ASP, mas isso não é exclusividade de Rails (nem de ASP): qualquer coisa pode ser o novo ASP, basta apresentá-la às pessoas erradas. Programadores ruins serão ruins usando qualquer tecnologia. Tecnologicamente falando, não há nada que se possa fazer para torná-los menos ruins. Não há como projetar uma tecnologia que os impeça de ser ruins. Não é com novas linguagens, bibliotecas ou frameworks que eles vão melhorar. Algo que talvez ajude são idéias novas, mas eles precisam estar abertos a elas. No fim das contas a transformação depende somente deles mesmos. Parece auto-ajuda mas é bem verdade.

Há basicamente duas maneiras de novas tecnologias influenciarem programadores ruins a escreverem software menos ruim. A primeira é tornar as boas práticas extremamente fáceis de modo que simplesmente pareçam o jeito natural de fazer as coisas. A segunda é tomar o caminho contrário e tornar práticas ruins mais difíceis ou feias de se fazer. Pode-se usar algo como vinagre sintático para fazer isso. O problema de tornar práticas não recomendadas mais feias é que os programadores ruins vão escrever o código feio e ignorar completamente a feiúra. Os olhos deles são incapazes de enxergar feiúra em um trecho de código. Se você quiser realmente seguir por este caminho, precisa dar um jeito de proibir por completo as asneiras mais gritantes.

Mas só é possível enxergar as mais gritantes.

Mesmo que você consiga evitar os piores erros, surgirão novas idéias igualmente burras. Você pode tentar bloquear essas também e continuar tentando proteger as pessoas delas mesmas até um certo ponto. Mas infelizmente não é possível proibir um idiota de estragar tudo. Os idiotas precisam estragar tudo. É a natureza deles. É isso que os define. É por isso que eles são chamados de idiotas. Não importa quantas bolas de chumbo você amarre aos pés deles, os verdadeiros idiotas vão arrumar um jeito de fazer besteira. Se sua tecnologia resolver seguir por este caminho, vai precisar proibir tanta coisa e ficar tão limitada que só os tapados serão atraídos. Aqueles que sabem o que estão fazendo simplesmente não aceitam trabalhar acorrentados.

Já que o caminho da proibição não é tão promissor, é melhor explorar a alternativa: tornar o “certo” idioticamente fácil. Desse modo, os bons profissionais serão atraídos pela elegância das soluções e vão começar a falar sobre a sua tecnologia. Com o burburinho todo mundo vai querer dar uma olhada nesse novo negócio de que os caras da moda andam falando tanto. As idéias ruins serão contidas por algum tempo, mas há um efeito indesejável que você não vai conseguir evitar.

Este efeito está intimamente ligado à maldição da popularidade. Mais popularidade significa mais gente e mais gente significa mais gente tapada. Sua tecnologia preferida simplesmente não pode conseguir se tornar popular e só atrair gênios da computação, eles não são muitos. Para ser popular ela vai precisar dos idiotas. E os idiotas têm um talento natural para estragar as coisas, lembra? Se você quiser ter uma tecnologia amplamente difundida, vai precisar aceitar que ela se torne o novo ASP. Não tem jeito.

6 Responses to “Você pode ser ruim de mil maneiras”


  1. 1 Daniel F. Martins

    Muito bom o post, concordo totalmente.

    []s

  2. 2 André Faria Gomes

    Exatamente! Não adianta ter uma serra elétrica e usar como se fosse um machado. É preciso usar a ferramenta da forma certa. Esse é o grande diferencial. Na maioria das vezes que um projeto falha, a tecnologia não é a razão.

  3. 3 Roger Leite

    Sensacional!
    Discutindo este novo boato com um amigo meu, chegamos a mesma conclusão ! Só que você fez o post primeiro ! :D

    É muito triste ! Porém, puxando a sardinha um pouco pra Rails, até gambiarra e coisa porca feita em Rails deve ser 5 estrelas comparado com ASP … hehehe … pelo menos você sabe que vai ter um controller ali, um model lá …

    Sucesso!

  4. 4 Marcos Silva Pereira

    Um idiota com uma ferramenta continua sendo apenas um idiota, só que mais perigoso. Não dá para criar ferramentas à prova de idiotas, eles são muito esforçados, fora o fato de se dedicarem à idiotice bem mais tempo do que nos dedicamos a fazer as coisas direito.

    Lembrei também de Peopleware: a maioria dos projetos de software falha não por causa de tecnologia, mas por causa das pessoas. Quer fazer software bem feito? Contrate pessoas inteligentes, espertas e dê a elas o suporte adequado. É bem mais barato do que ter que gastar com idiotas antes e com pessoas espertas depois.

    abraço…

  5. 5 Marcos Silva Pereira

    Roger,

    Não duvide na capacidade dos idiotas de colocarem as coisas nos lugares errados. Model gerando HTML? Views com toneladas de código? Controllers com um emaranhado de gambiarras? Pode ter certeza, os idiotas vão conseguir!

    Abraço…

  6. 6 Rafael Ponte

    Na maioria das vezes um code-monkey sempre será um code-monkey. O pior é que a cultura da maioria das empresas do Brasil sempre tendem a contratar vários “profissionais” [sic] deste tipo achando que estão lucrando algo, mas no final estão jogando o dinheiro e tempo do cliente fora.

    Mais um excelente post, parabéns.

Leave a Reply