Acredito que o termo “Reinventar a roda” é um dos termos mais utilizados no mundo para tomar decisões relacionadas ao desenvolvimento de produtos de software. É justamente aquele tipo de argumento que sabemos que vamos ouvir e que quase sempre faz uma discussão de planejamento parecer inútil pelo seu tom irônico.
Evitando reinventar-a-roda vou apenas citar a definição encontrada em WIKIPEDIA (2009):
“A inspiração para esta metáfora idiomática reside no facto de a roda ser o arquétipo da ingenuidade humana, tanto em virtude do poder e flexibilidade que permite aos indivíduos que a usam, como pela influência que teve ao longo de toda a História e que continua a ter em quase toda (se não mesmo toda) a tecnologia moderna. Não se considerando ter falhas operacionais, uma tentativa de a reinventar não faria qualquer sentido e não traria qualquer valor acrescentado ao objecto, antes acarretando uma perda de tempo ao desviar recursos de investigação de outros tópicos possivelmente mais merecedores.”
Uma curiosidade é que a “roda” no sentido de “circunferência” é totalmente perfeita, tão perfeita que nem a matemática consegue representá-la com a perfeição que deveria ter. Para termos uma circunferência perfeita, precisaríamos saber qual o valor exato de π o que é impossível com o conhecimento que temos hoje.
Em minha humilde opinião, este termo é falho pois implica que algo funciona perfeitamente. No entanto, nenhum produto de software é perfeito e sempre há espaço para melhoria contínua. Este termo apenas faz sentido quando a “roda” é de fato perfeita. E perfeita implica que ela não precisa nem sequer ser trabalhada pois serve exatamente a seu propósito.
No mundo do software, é comum encontrar soluções (produtos, ferramentas, linguagens, etc.) que se tornam tão poderosas e difundidas que se tornam “rodas”. A falha é acreditar que pelo simples fato de uma solução funcionar, ser utilizada, ou ser vista empiricamente como a “melhor” solução, não faz dela a solução perfeita.
Um outro grande erro é aquele em que pessoas falham quando reinventam a roda e desconsideram o aprendizado que tiveram. Ao voltar atrás e adotarem algo pronto já estão mais preparados do que estariam se tivessem adotado algo pronto logo na primeira vez. Estas mesmas pessoas também não teriam como saber se falhariam ou não caso adotassem algo pronto na primeira tentativa.

Infelizmente é impossível acabar com este termo histórico pois ele traduz subjetivamente pensamentos e opiniões que de uma forma ou de outra tem a utilidade de fazer uma discussão ser acalorada e aprofundada quando há pessoas com boas intenções presentes. O erro que nunca pode ser cometido é o de aceitar este termo como se fosse um dogma e ignorar todos os demais argumentos. Se assim o fazemos, estaremos desprezando a possibilidade de inovação. Se fosse um dogma, até hoje nós teríamos apenas um único sistema operacional (MCP?), um único modelo de computador (ENIAC?), um único tipo de monitor (CRT?), uma única linguagem de programação (APL?), um único editor de texto (ed?), um único [coloque aqui o tipo de software que mais utiliza].

Portanto, reinvente a roda. Reinventar a roda é inovar e inovar é fazer diferente! Se falhar não desista, quando disserem que você reinventou uma roda quadrada! Continue inovando! Se falhar quando optou por não reinventar a roda, provavelmente o farão inovar e isto vai levar mais tempo do que se tivesse inovado logo na primeira tentativa.