<-- home

Primeiro faça depois otimize

Um mantra que procuro me lembrar constantemente é de resolver o problema primeiro, da forma mais simples possível, e só depois otimizá-lo. Isso se aplica claramente a computação, onde existem muitas boas práticas de engenharia que devem ser levadas em consideração ao chamar algo de pronto.

A dificuldade é que os problemas que resolvemos nunca são triviais. E se formos adicionar a carga cognitiva de fazer do jeito certo logo na primeira versão nunca vamos fazer, vai ficar difícil demais ou tomar tempo demais.

Outro ponto positivo dessa filosofia é que o quanto mais você se dedica a algo (mesmo que sendo as partes mais fáceis desse algo) mais você cria dissonância cognitiva ao parar de fazê-lo. Fica mais difícil de desistir.

Mark Zuckenberg certa vez disse: se você fazer as coisas fáceis primeiro, você já fez um baita progresso.

Disso também derivo minha opinião que é muito melhor resolver problemas com linguagens mais fáceis (como PHP, Python, Ruby, Lisp) e só depois, quando você estiver rico e cheio de usuários, pensar em otimizar para linguagens mais “parrudas”.

É fácil subestimar esse pensamento. Mas quanto projetos começamos e paramos no meio?

Existem vários usos para essa estratégia na vida real. Por exemplo, enquanto escrevendo esse post eu poderia buscar a perfeição e nunca publicá-lo. Mas a única forma que sempre funcionou é postar, mesmo com erros. E depois fazer algumas melhorias já no ar.

Então sempre que estiver pensando em fazer algo, por mais difícil que seja, comece. Não existe outro momento que não o agora. E não tenha medo de errar. Só existe um caminho para o sucesso: dobrar nossa taxa de erros.