Eu Vivia Reconstruindo Coisas Que Já Existiam

Eu perdi uma quantidade espantosa de tempo neste projeto construindo coisas que já existiam. Reimplementações cuidadosas, polidas e feitas com carinho de ferramentas e infraestrutura que o mundo já tinha — funcionando, testadas e disponíveis de graça. Cada uma parecia completamente justificada no momento em que eu a começava. Somadas, elas constituem um dos maiores e mais evitáveis desperdícios de todo o esforço.

Isto é algo desconfortável de admitir, porque cada caso vinha acompanhado de uma razão que soava, na hora, como sólido julgamento de engenharia. Levei um bom tempo para perceber que as razões eram quase sempre racionalizações de algo que eu não queria encarar de frente.

As razões sempre soam bem

O argumento para construir você mesmo nunca é difícil de formular. A minha versão vai atender às minhas necessidades específicas melhor do que uma ferramenta de propósito geral. Vou entendê-la por completo, até a última linha, em vez de confiar numa caixa-preta. A opção existente tem falhas e incômodos que eu posso evitar. Eu não quero assumir a dependência, a rotatividade de versões, as decisões-tomadas-por-outra-pessoa que vêm junto.

Cada um desses argumentos é, ocasionalmente, genuinamente verdadeiro. É exatamente isso que os torna tão perigosos. Porque, na maior parte das vezes, eles não são a razão real de jeito nenhum — são uma cobertura de aparência respeitável para um motivo que nada tem a ver com o que é melhor para o projeto.

Construir é mais divertido do que integrar

Eis a verdade que está por baixo, a que eu não queria dizer em voz alta. Construir algo novo é criativo e satisfatório. É a parte divertida, a parte que parece engenharia de verdade, a parte em que você toma decisões e vê algo tomar forma a partir do nada. Integrar a ferramenta de outra pessoa, por outro lado, é trabalhoso, frustrante e levemente humilhante — ler documentação desconhecida, contornar escolhas de projeto que você não teria feito, depurar uma interação que você não compreende plenamente.

Então eu recorria ao “vou simplesmente construir eu mesmo” não porque fosse a decisão correta, mas porque era a mais agradável. E aí, crucialmente, eu vestia essa preferência com a linguagem do julgamento de engenharia, apresentando uma decisão movida pelo que eu queria fazer como se fosse movida pelo que o projeto precisava. As racionalizações eram sinceras. Também eram, em grande parte, um disfarce.

O custo era o problema que de fato era meu

O preço real nem era as semanas que eu despejava em cada reinvenção, por pior que isso fosse. Era aquilo de que essas semanas eram roubadas. Cada trecho que passei reconstruindo um problema já resolvido era um trecho que eu não passei no único problema que estava genuinamente sem solução e era genuinamente meu — a coisa que nenhuma ferramenta existente conseguia fazer por mim, a pergunta difícil e específica que era a razão inteira pela qual o projeto existia em primeiro lugar.

Aquilo era a coisa em que só eu iria trabalhar. O mundo já tinha resolvido a infraestrutura genérica; ninguém além de mim ia resolver o meu problema de verdade. E lá estava eu, gastando o meu recurso mais escasso e mais valioso — meu suprimento limitado de atenção focada — precisamente nas partes que menos precisavam dele, enquanto a parte que precisava de tudo ele esperava. Eu tinha invertido exatamente.

A reinvenção é um imposto que você paga para sempre

O que eu também subestimei é que construir a sua própria versão não é um custo único. É um passivo permanente. A ferramenta caseira agora é sua para manter, depurar, estender e documentar, para sempre, sozinho. Não há comunidade encontrando e corrigindo seus bugs. Não há documentação além da documentação que você escreve. Não há a quem perguntar quando ela quebra de um jeito que você não entende, porque o único especialista do mundo é você, e você já esqueceu como ela funciona.

A ferramenta existente que eu havia desprezado era mantida por muitas pessoas, endurecida por incontáveis outros usuários que esbarraram em seus limites muito antes de eu o fazer. A minha substituta era mantida por exatamente uma pessoa cansada que tinha muitas outras coisas a fazer. Essa assimetria não aparece no dia em que você a constrói. Ela aparece todo dia depois, silenciosamente, como um imposto sobre todo o resto, e ela se acumula.

Quando construir você mesmo de fato é o certo

Para ser justo, eu não quero corrigir em excesso e cair no “nunca construa nada”. Às vezes construir você mesmo é genuinamente a decisão certa. Quando a coisa em questão é o seu problema central, a verdadeira parte difícil, então é claro que você a constrói — esse é o trabalho. Quando não existe nenhuma opção adequada. Quando as opções existentes estão real e especificamente erradas por uma razão que você consegue articular concretamente e defender.

Esse último ponto virou o meu teste, e é um teste útil. Antes de construir uma substituta para algo que já existe, eu agora me obrigo a declarar, especificamente e em voz alta, exatamente por que cada opção existente falha para a minha necessidade real. Não “eu preferiria a minha”. Não “a deles é irritante”. Uma razão concreta e defensável. Se eu não consigo produzir uma — e bem mais frequentemente do que eu gostaria, eu não consigo — então eu não estou tomando uma decisão de engenharia. Estou racionalizando a escolha mais divertida, e eu deveria ir lá ficar entediado e usar a coisa que já funciona.

Gaste sua originalidade onde ela é exigida

O reenquadramento que mais ajudou foi pensar no esforço original como um orçamento estritamente limitado. Você tem apenas uma certa capacidade para trabalho profundo, inédito, do zero, e cada unidade dela que você gasta num problema que o mundo já resolveu é uma unidade roubada diretamente do problema que só você pode resolver. A originalidade é preciosa precisamente porque é escassa, e gastá-la em problemas já resolvidos é o tipo mais caro de desperdício, por causa daquilo que ela desloca.

Então a disciplina, contraintuitivamente, é ser o mais entediante e convencional que você conseguir em quase todo lugar — pegar emprestado, reutilizar, aceitar a ferramenta imperfeita-mas-funcional, engolir o incômodo do projeto de outra pessoa — justamente para que você possa se dar ao luxo de ser genuinamente original no único lugar onde a originalidade é de fato o trabalho. Seja implacavelmente sem-originalidade quanto ao veículo, para que sobre algo para o destino.

A lição mais profunda: o objetivo é o destino, não o veículo

Tudo se resumia a uma confusão que eu não havia notado estar cometendo: eu silenciosamente havia equiparado construir coisas a progredir. Não são a mesma coisa. As ferramentas são o veículo. Elas nunca foram o destino. Ninguém jamais ia me recompensar por uma versão bonita e feita à mão de algo que já existia em uma dúzia de formas — e certamente o mercado, o juiz de verdade, não se importava nem um pouco com quão elegante era o encanamento que eu reimplementei.

A única coisa que sempre contou foi a distância percorrida rumo ao objetivo real. E a reinvenção, vim a entender, é uma das maneiras mais cênicas e satisfatórias que existem de ficar perfeitamente parado — de se sentir produtivo, de produzir artefatos reais, de trabalhar duro e de chegar a lugar exatamente nenhum. O trabalho que eu evitava ao construir era o único trabalho que de fato era meu para fazer.

— Sem sinais, sem retornos, isto não é consultoria de investimento.