既に存在しているものを再び一から作ること。reinventing the wheelの日本語訳。IT業界の中でも主にSE・プログラマの間で良く用いられる。
プログラミング言語には標準で提供されている機能(関数など)があるが、それらを再作成してしまうことを指す。しかし、標準で提供されているものは注意深く検討した上で作成されており、バグは少なく、処理も速いため、余程のことがない限り作成のために使った時間と金をロスするだけである。
商用システム上で車輪の再発明を行ってしまった場合は作成した後も、試験・運用などの開発フェーズでも面倒を見る局面がありコストは更に嵩む。また担当SEやプログラマが入れ変わった場合に、再発明された機能のコードまで含めて勉強させなければならないため、無駄になるコストは意外とバカにならない。
ただ、あえて再発明をする必要がある時もある。例えば現状のプログラムがなんとか動いているのだがコードがスパゲッティになってしまい、それ以上の拡張性を期待できなくなった時などである。しかし、多くの場合は設計がまずいことが多いため、リファクタリングを行ったほうが適切である。
jcode.pl→Jcode.pm→Encode.pm