Reinventing the wheel
||This article includes a list of references, but its sources remain unclear because it has insufficient inline citations. (April 2009) (Learn how and when to remove this template message)|
To reinvent the wheel (reinvent the wheel) is to duplicate a basic method that has already previously been created or optimized by others.
The inspiration for this idiomatic metaphor lies in the fact that the wheel is the archetype of human ingenuity, both by virtue of the added power and flexibility it affords its users, and also in the ancient origins which allow it to underlie much, if not all, of modern technology. As it has already been invented, and is not considered to have any operational flaws, an attempt to reinvent it would be pointless and add no value to the object, and would be a waste of time, diverting the investigator's resources from possibly more worthy goals.
The phrase is sometimes used without derision, when a person's activities might be perceived as merely reinventing the wheel, when they actually possess additional value. For example, "reinventing the wheel" is an important tool in the instruction of complex ideas. Rather than providing students simply with a list of known facts and techniques and expecting them to incorporate these ideas perfectly and rapidly, the instructor instead will build up the material anew, leaving the student to work out those key steps which embody the reasoning characteristic of the field.
"Reinventing the wheel" may be an ironic cliche – it is not clear when the wheel itself was actually invented. The modern "invention" of the wheel might actually be a "re-invention" of an age-old invention. Additionally, many different wheels featuring enhancements on existing wheels (such as the many types of available tires) are regularly developed and marketed. The metaphor emphasizes understanding existing solutions, but not necessarily settling for them.
In software development
Additionally, those new to a language (and especially those new to programming) will often attempt to manually write many functions for which a more robust and optimized equivalent already exists in the standard library or other easily available libraries. While this can be useful as a learning exercise, when done unknowingly the result is often less readable, less reliable and less optimized software which takes longer to write, test, maintain, and debug.
Reinventing the square wheel is the practice of unnecessarily engineering artifacts that provide functionality already provided by existing standard artifacts (reinventing the wheel) and ending up with a worse result than the standard (a square wheel). This is an anti-pattern which occurs when the engineer is unaware or contemptuous of the standard solution or does not understand the problem or the standard solution sufficiently to avoid problems overcome by the standard. It is mostly an affliction of inexperienced engineers, or the second-system effect.
Many problems contain subtleties which were resolved long ago in mainstream engineering (such as the importance of a wheel's rim being smooth). Anyone starting from scratch, ignoring the prior art, will naturally face these problems afresh, and to produce a satisfactory result they will have to spend time developing solutions for them (most likely the same solutions that are already well known). However, when reinventing the wheel is undertaken as a subtask of a bigger engineering project, rather than as a project in its own right hoping to produce a better wheel, the engineer often does not anticipate spending much time on it. The result is that an underdeveloped, poorly performing version of the wheel is used, when using a standard wheel would have been quicker and easier, and would have given better results.
Preinventing the wheel involves delaying a task if it is expected to be undertaken later. An example would be, "We don't want to preinvent the wheel" when discussing a solution to a problem when it is known that the solution is being developed elsewhere. It is not necessarily pejorative.
Redefining the wheel is the practice of coming up with new and often abstruse ways of describing things when the existing way of describing them was perfectly adequate.
|Look up reinventing the wheel in Wiktionary, the free dictionary.|
- Best practice
- Not invented here
- Design around: an alternative invention that is created in order to avoid patent infringement
- Patent thicket
- Standing on the shoulders of giants, an expression referring to the re-use of existing ideas
- Stovepipe system
- Tragedy of the anticommons
- Brandt, P (2003), Change Leadership Project unpublished