こんにちは、プログラマーのだいき(@dotpro_pm)です。
あなたは「車輪の再発明」という言葉を聞いたことがありますか。おそらく、今まで生きてきて、「車輪の再発明」という言葉を聞いたことがない人が多いのではないでしょうか。実際、僕はプログラミングをし始めるまで聞いたことがありませんでした。
しかし、プログラミングの世界やあるビジネスの世界では、日常的に「車輪の再発明」という言葉を聞きます。そして、「車輪の再発明」をしないように何度も何度も言われます。そこで今回は、「車輪の再発明」とは何か、「車輪の再発明」はなぜ嫌われるのか、「車輪の再発明」のデメリットやメリットについて書いていこうと思います。
この記事を読むと以下のことを知ることができます。
車輪の再発明とは、すでに世の中に存在するものを、存在すると知らずに発明することを言います。例えば、イヤホンが世の中にあると知らずに、一から何年もかけてイヤホンを発明してしまうことやすでにあるAI技術を、1からAI技術を作ってしまうことなどが当てはまります。
プログラマーのよくある例としては、すでにある既存のコードをあると知らずに、1からコードを作ってしまうことがあります。既存のコードの多くは、「正しく動作するのか確認されたコード」です。そのため、自分が作るよりも、既存のコードを使う方がいいのです。
既存の製品やコードがあるにも関わらず、同じ製品やコードを作ってしまうのは、極めて時間の無駄です。例えば、世の中にある製品を同じ製品を作るのに、5000時間かけた場合、その時間は極論を言えば無駄なのです。
世の中には、素晴らしい製品やコードが数多くあります。コードに至っては、数多くの記事がネット上にありますし、専門書も販売されています。もし、コードの開発に1000時間かかったものが、すでにある技術を使うことで、たった10時間で終わるかもしれません。
実際、僕もWebサービスを作るときは、「Ruby on Rails」というフレームワークや「gem」と行ったプラグインみたいなものを使っています。フレームワークやプラグインを使うことで、格段に開発スピードが上がりますし、Webサービス自体の質も圧倒的に高くなります。
また、ある製品を開発したいならば、すでにある似た製品を解体して、どのようにできているのかを調べ、盗める技術は盗んで、作りたい製品を作れば時間はかなり短縮することができます。もちろん、特許によって使ってはいけない技術もありますので、注意する必要はあります。
「車輪の再発明」のデメリットとして、誰も評価してくれないということです。例えば、あなたが車輪を今発明したところで、世の中の人は「もう知ってるよ」や「どうせパクったんでしょ」といったことを言い、あなたを全く評価しれくれません。
あなたが逆の立場なら、おそらく同じことを思うでしょう。ですので、「車輪の再発明」をしても、誰も評価しれないことをしっかり理解しておく必要があります。
車輪の再発明を行うメリットとしては、1からあるものを作ることで、作ったものをより深く理解することができます。というのも、「車輪の再発明」をしようと思えば、作りたいものにあった部品を探してきて、それを適切にはめ込んで、1つのものを作り上げる以外にも、その部品を作る必要があるからです。
場合よっては、作りたいものにあった部品を1から考える必要もあります。例えば、現在ブログ付きのホームページを作成するには、CMS(コンテンツマネジメントシステム)を使えば、プログラミングの専門知識がなくても、ホームページを作成することができます。
しかし、ブログ付きのホームページを作成しようと思えば、プログラミング言語を勉強する必要がありますし、SEOについて勉強して行く必要もあります。また、フレームワークを使わないとすると、セキュリティーの勉強をより詳しく学ぶ必要もあります。
このように、全てを1からホームページを作ろうとすると、少なくても3ヶ月や半年はかかるのではないかと思います。しかし、時間はかかってしまうかもしれませんが、その分様々な技術を深く理解することができます。
例えば、ホームページを1から作れば、どのようにコードが書かれているのか、どこに何をかけば見た目を変えることができるのか、セキュリティー上どのような対策を行えばいいのかなど、普通の人が持っていない知識や経験を身につけることができます。
「車輪の再発明」を効果的に使う方法としては、学習の練習として使う方法があります。例えば、何も分からない状態でホームページを1から作るとなると大変ですが、完成した目標物があると、その目標物に近づけるために努力することで、かなりの実力がつきます。
これはホームページを作る以外にも、何か機械を作るときでも、この方法を使えば、あなたの実力は一気に上がります。もちろん、それを作りきるにはかなりの時間もかかりますし、かなり頭を使う必要があります。しかし、そのリターンや経験は、あなたにとってかけがえのないものになるでしょう。
「車輪の再発明」にならない方法として、自分が持っている知識を増やすという方法です。例えば、ホームページを簡単に作る方法を知っていれば、わざわざプログラミングを学習して、時間をかけて1からホームページを作ることはないでしょう。
自分の知識を増やす方法としては、多くの本を読んだり、著名人のTwitterのツイートを読んだり、興味がある記事を読んで、知識を増やして行くという方法があります。
あることを思いついたら、まずは検索して、この世の中にあるのかどうか調べましょう。もちろん、調べ方によっては、見つからないことがあるかもしれませんし、見つかっても英語の記事しか見つからないこともあります。
しかし、自分に思いついて他の人が思いついていないことはほとんどありませんので、粘り強く調べたり、英語の記事はGoogle翻訳で日本語にして記事を読んだりしましょう。
まずは、世の中にあるのではないかと思いましょう。そして、いくら探してもない場合は、世の中であなたが初めて思いついた場合がありますので、作りたいならばその製品やサービスを作ってみましょう。
「車輪の再発明」は、効率があるいので、車輪の再発明行わないために、知識を増やしたり、検索して調べたりしましょう。
以上、プログラマーのだいき(@dotpro_pm)でした。