Entediar-se não é uma opção

Programar um novo sistema é como projetar seu próprio mundo. É preciso descrever como as coisas vão interagir e como as mudanças vão se propagar no ambiente. Os programadores podem começar com nada mais que uma idéia, materializá-la em código e produzir algo vivo. Como bônus extra, suas criações podem ainda ajudar a resolver algum problema do mundo real. Ao projetar seus sistemas eles têm a oportunidade de experimentar a alegria da criação, a surpresa da descoberta, o prazer da invenção e tudo que houver no meio.

Ter seu próprio mundo de faz-de-conta e ainda usá-lo para resolver problemas do mundo real parece tão divertido que deve ser praticamente impossível de se tornar um trabalho chato.

Mas a verdade é que muitas vezes se torna. Afinal de contas a vida não é um conto de fadas. Mais cedo ou mais tarde, vem aquela vontade de repetir estruturas de código familiares, aplicar soluções não muito apropriadas e — pasmem! — copiar e colar código. O pior problema das soluções sujas é a capacidade de atrair mais janelas quebradas. Para se afundar na lama do código ruim, basta cometer a primeira transgressão. As demais virão naturalmente simplesmente porque o código já está sujo e as pessoas vão começar a pensar que uma gambiarra a mais ou a menos não vai fazer mal a ninguém.

A boa notícia é que existe um detector natural para quando se está fazendo besteira. Algo como um canário em uma mina de carvão. Este algo é o tédio. Escrever código repetido é chato. Tentar adaptar uma solução onde ela não se encaixa muito bem é chato. Copiar código de um lugar para outro é chato. Tédio é um subproduto natural do trabalho impensado, então basta eliminar suas causas para evitar boa parte dos danos ao código.

Programar pode ser um dos exercícios intelectuais mais desafiadores. Quando o desafio e a diversão são substituídos pelo tédio, alguma coisa está errada. A solução para boa parte dos casos é procurar uma forma de eliminar a repetição e — adivinhe só — computadores foram feitos justamente para isso. Se trabalhamos para evitar que os outros façam trabalho repetido, por que iríamos nós mesmos nos repetir? Por que se entediar quando a máquina pode executar a mesma tarefa indefinidamente sem cansar nem reclamar?

Eliminar repetição não é fácil e justamente por isso é divertido. Da próxima vez que estiver programando, imagine que você não pode repetir a mesma idéia duas vezes. Veja repetição onde ninguém está prestando atenção. Observe o que é chato de ser feito. Procure resolver estes problemas sem criar outros. A sua solução pode vir em vários sabores: talvez haja uma nova abstração pronta para ser codificada, uma biblioteca querendo nascer ou uma nova linguagem escondida em algum lugar. Tente descobrir o que se aplica ao seu caso. Enquanto estiver fazendo isso, tenha em mente que você não deve se entediar em nenhum momento.

Mantenha o ânimo em alta para manter a sujeira em baixa.

4 Responses to “Entediar-se não é uma opção”


  1. 1 Marcos Silva Pereira 01/fev/2007 às 14\0247

    Uma boa maneira de evitar o tédio enquanto se programa é: não programe tanto. :-)

    Não é por acaso que XP prega as 40 horas semanais com tempo para descansar, estudar e exercitar a criatividade com outras coisas diferentes. Fora isso, nós programamos – em teoria – para automatizar/facilitar processos dos usuários, então, fazer o mesmo no nosso ambiente de trabalho e evitar repetições chatas, como o processo de build, também me parece uma boa maneira de fugir do tédio que é se repetir.

    Bom post, mestre.

  2. 2 Naiana 02/fev/2007 às 23\1109

    Certo. Mas o problema é:
    E quando não se tem nada para fazer? E também não tem como inventar? As pessoas a sua volta nem ligam?
    Um verdadeiro desanimo e tédio.
    O dia todo sem nada para fazer, criar, ou inventar. Não dá pra sair, nem se divertir!
    Tem remédio?

  3. 3 thiagoarrais 02/fev/2007 às 23\1125

    Coisas para inventar nunca vão faltar. A humanidade
    parece ter uma sede insaciável por novidade. Talvez
    baste apenas pensar mais um pouco, ler mais e deixar
    a criatividade agir. Uma coisa que costuma funcionar
    comigo é parar de pensar diretamente no problema em
    questão. Tomar um ar ou ler sobre outro assunto
    podem ajudar.

    Como disse Marcos aqui no comentário, pode ser que o
    problema seja simplesmente programação demais.

  4. 4 Andre Furtado 16/mar/2007 às 07\0720

    Belo post! Justifica, inclusive, o propósito das software factories.

    Comento, entretanto, um cenário em que o aumento das janelas quebradas PRECISA ser ignorado, por causa de restrições de tempo: “programação para competição”, aquela em que você quer chegar o mais rápido ao protótipo final (não me arrisco a dizer “produto”), podendo arcar com suas gambiarras no curto prazo e, depois, nunca mais mexer naquilo. Será que existem mais cenários além desse?

    []s
    — AFurtado


Comments are currently closed.




%d blogueiros gostam disto: