Reinventar la rueda es intentar duplicar, probablemente con resultados inferiores, un método básico que ya ha sido creado u optimizado previamente por otros.
La inspiración para esta metáfora idiomática es que la rueda es un antiguo arquetipo del ingenio humano (tan profundo que sigue siendo la base de gran parte de la tecnología moderna ). Como ya ha sido inventada y no se considera que tenga defectos inherentes, un intento de reinventarla no le agregaría ningún valor y sería una pérdida de tiempo, desviando los recursos del investigador de objetivos posiblemente más valiosos.
La frase se utiliza a veces sin burla cuando las actividades de una persona pueden ser percibidas como una mera reinvención de la rueda cuando en realidad poseen un valor adicional. Por ejemplo, "reinventar la rueda" es una herramienta importante en la enseñanza de ideas complejas. En lugar de proporcionar a los estudiantes simplemente una lista de hechos y técnicas conocidos y esperar que incorporen estas ideas a la perfección y con rapidez, el instructor construirá el material de nuevo, dejando que el estudiante resuelva los pasos clave que encarnan el razonamiento característico de la disciplina.
Puede que "reinventar la rueda" sea un cliché irónico: no está claro cuándo se inventó la rueda en sí. La "invención" moderna de la rueda podría ser en realidad una "reinvención" de una invención muy antigua. Además, se desarrollan y comercializan periódicamente muchas ruedas diferentes que incorporan mejoras respecto de las ruedas existentes (como los numerosos tipos de neumáticos disponibles). La metáfora pone de relieve la importancia de comprender las soluciones existentes, pero no necesariamente de conformarse con ellas.
En el desarrollo de software , reinventar la rueda suele ser necesario para evitar incompatibilidades en las licencias de software o limitaciones técnicas y de políticas presentes en partes o módulos proporcionados por terceros. [ cita requerida ] Un ejemplo sería implementar un quicksort para un script escrito en JavaScript y destinado a ser incrustado en una página web. El algoritmo quicksort es bien conocido y está disponible en bibliotecas para desarrolladores de software que escriben aplicaciones de propósito general en C++ o Java , pero algunas implementaciones de JavaScript no proporcionan este algoritmo específico. Por lo tanto, si un desarrollador quiere utilizar quicksort de forma fiable en su página web, debe "reinventar la rueda" reimplementando el algoritmo. Podría copiarlo de otra página web, pero entonces podría encontrarse con problemas de derechos de autor y licencias de software. Reinventar la rueda en este caso proporciona la funcionalidad faltante y también evita problemas de derechos de autor.
Además, aquellos que son nuevos en un lenguaje (y especialmente aquellos nuevos en programación) a menudo intentarán escribir manualmente muchas funciones para las cuales ya existe un equivalente más robusto y optimizado en la biblioteca estándar u otras bibliotecas fácilmente disponibles. [ cita requerida ] Si bien esto puede ser útil como ejercicio de aprendizaje, cuando se hace sin saberlo, el resultado es a menudo un software menos legible , menos confiable, menos probado y menos optimizado que lleva más tiempo escribir, probar, mantener y depurar .
Reinventar la rueda cuadrada es la práctica de diseñar innecesariamente artefactos que proporcionan una funcionalidad que ya ofrecen los artefactos estándar existentes (reinventar la rueda) y terminar con un resultado peor que el estándar (una rueda cuadrada ). Se trata de un antipatrón que se produce cuando el ingeniero desconoce o desprecia la solución estándar o no entiende el problema o la solución estándar lo suficiente como para evitar problemas superados por el estándar. Se trata principalmente de una aflicción de ingenieros inexpertos, o del efecto del segundo sistema .
Muchos problemas contienen sutilezas que se resolvieron hace mucho tiempo en la ingeniería convencional (como la importancia de que la llanta de una rueda sea lisa). Cualquiera que empiece desde cero, ignorando la técnica anterior , se enfrentará naturalmente a estos problemas de nuevo y, para producir un resultado satisfactorio, tendrá que dedicar tiempo a desarrollar soluciones para ellos (muy probablemente las mismas soluciones que ya son bien conocidas). Sin embargo, cuando reinventar la rueda se lleva a cabo como una subtarea de un proyecto de ingeniería más grande, en lugar de como un proyecto en sí mismo con la esperanza de producir una rueda mejor, el ingeniero a menudo no prevé dedicarle mucho tiempo. El resultado es que se utiliza una versión subdesarrollada y de bajo rendimiento de la rueda, cuando usar una rueda estándar habría sido más rápido y fácil, y habría dado mejores resultados.
Preinventar la rueda implica retrasar una tarea si se prevé que se realizará más tarde. Un ejemplo sería: “No queremos preinventar la rueda” cuando se habla de una solución a un problema cuando se sabe que la solución se está desarrollando en otro lugar. No es necesariamente peyorativo. [1]
Redefinir la rueda es la práctica de idear formas nuevas y a menudo abstrusas de describir las cosas cuando la forma existente de describirlas era perfectamente adecuada.