読者です 読者をやめる 読者になる 読者になる

いかに作るか、何を作るか

今日は朝から、Twitterで、SIerがどうのこうのというツイートが流れている。あるあるネタで、Excelでバージョン管理とか、私も大いにあるあるである。何だかSIerが皆に嫌われているようにも見えるが、SIerが好きで頑張っている人もたくさんいるはず。一部の人が、こうして自虐ネタをやっているのだろう。

彼らが自虐ネタに走るのは、SIerが彼らの思い描いていたエンジニアリングの世界とは異なるからではないだろうか? つまり、彼らはSIerが自分に「合ってない」と感じている。実は、私もその口だ。では、エンジニアリングの世界に何が起きているのだろうか?

少なくとも、日本の大学の情報工学や計算機科学の学科で教えているエンジニアリングは、SIerがエンジニアリングと称しているものとは全く違う。大学では、エンジニアリングとはコードを書くことだ。一方、SIerでは、エンジニアリングとは書類(主に仕様書)を書くことを指す。大学では、エンジニアリングの道具はエディタとコンパイラだが、SIerではWordとExcelが道具だ(優秀なSIerMicrosoft Projectも使う)。

大学で教えていることとSIerでやっていることの違いは、エンジニアリングに対するアプローチの違いである。すなわち、「いかに作るか」と「何を作るか」の違いである。私が学生時代、ソフトウェア工学の世界ではパターンがはやっていた。私も授業でデザインパターンを習ったが、これはまさに「いかに作るか」のレシピである。一方、私が会社に入って上司に教えられた「顧客の要求を云々」とは、「何を作るか」を考えるということだ。

「いかに作るか」と「何を作るか」の境界は曖昧だ。おそらく、単純なものほどこの境界が曖昧になり、複雑なものほど境界がはっきりしてくるのではないか。例えば、ハサミを作るとして、「いかに作るか」と「何を作るか」という視点はほとんど同じものを指す。しかし、スペースシャトルを作るとなれば、これらの境界はかなりはっきりするだろう。

実は、この「何を作るか」「いかに作るか」という着想は、私が考えたものではない。JAISTの日比野先生の言葉である。私は、LispマシンELISの設計者でもある先生と知り合う機会を得た。あるイベントの打ち上げの時、先生はこのような趣旨のことを仰った。「これまでの日本はアメリカのモノマネであった。アメリカ製品をお手本に、それを『いかに作るか』を考えればよかった。しかし、日本が経済の先頭に立った今、これからは『何を作るか』を考えなければならない」と。

高度成長を通して、日本のエンジニアは、アメリカをお手本とすることで、「何を作るか」をほとんど考えずに済んだ。すべてのリソースを「いかに作るか」に集中することができた。かつて、日本の電機メーカーもIBMの互換機で荒稼ぎした時代があったが、それは単に当時の日本の労働力が安かっただけではなく、「何を作るか」はアメリカに考えてもらうという「ズル」をしていたのだろう。

我々日本人にとってのエンジニア像は、今もなお、「いかに作るか」を考えるエンジニアなのだろう。だから、多くの若者がSIerを目指し、そして失望する。これは、学校教育が開発の現場に追いついていないといってもいいのかもしれない。

現代のコンピュータシステムが解かなければならない問題は複雑だ。したがって、「何を作るか」という視点が欠かせない。日本の多くのSIerがやっている仕事がこれだ。SIerに就職するということは、残念ながら、住み慣れたコードの世界を離れ、Excel方眼紙の世界で生きていくということを意味する。

しかし、エンジニアリングの醍醐味は、やっぱり「いかに作るか」を考えることだと考える人もいるだろう。私もその一人だ。そういう人達はどうすればいいのだろうか? 答えは、かつての日本企業と同じように、「ズル」をすることだ。すなわち、誰かが「何を作るか」を定義してくれた問題を解くのだ。ただし、普通に解いてはダメだ。ずっとうまく解かなければならない。

Googleを考えてみれば良い。Googleの創業時、彼らの商品は検索エンジンだけだった。彼らは「検索エンジンとは何か」とは考えなかった。彼らが成功したのは、検索エンジンを「いかに作るか」を考えたからだった。そして、彼らは検索エンジンという問題を、ほかの誰よりもずっとうまく解いた。

私は「何を作るか」よりも「いかに作るか」に興味のある人間だが、SIerの仕事には敬意を払っている。彼らが「何を作るか」を定義してくれなければ、「いかに作るか」を考えることはできない。また、日比野先生の仰る通りなら、「何を作るか」を考えるSIerは、これからの日本の成長産業である(もちろん、大失敗する産業かもしれない)。

SIerが云々という話題が聞かれるようになったということは、多くの人が「いかに作るか」と「何を作るか」の違いに気づき始めたということだろう。違いがわかったということは、次にとるべきアクションも、じきに明らかになるのではないか。いかにもSIerというような大企業がやっているようなことと、スタートアップがやっていることを比べてみるとヒントがあるかもしれない。私も含め、多くのエンジニアが幸せな人生を送れるようになるとよい。