37 Signals の "Getting Real" があまりに感動的な件について

37 Signals といえば、かの Rails 作者の DHH 様が在籍する企業である。ジュンヤさんに薦められて読み始めたGetting Realしょっぱなからあまりに感動的だ。

Getting Real は 37 Signals の哲学をエッセイにまとめたもの。邦訳もウェブサイトで読めるが、原文の熱く聴衆に語りかけるような感じがうまく表現されていない。だから、冒頭部分を自分なりに翻訳してみる。

"to get real" は辞書を引くと「現実的に考える、現実に目を向ける、本気でやる」とある。現実に目をむけて本気でやるということだろうが、どうもしっくりした日本語が出てこない。また、"Get Real" と頭文字が大文字になっているので、これは特定の概念に付けられた固有名詞としてここでは扱われている。であるので、Get Real はそのままカタカナで書いておく。

ゲット・リアルとは?


いいウェブアプリを作りたいって?じゃあ ゲット・リアルするときだ。ゲット・リアルとは、ソフトウェアを作るための、より小さく、より速く、よりよい方法だ。

  • ゲット・リアルは、現実を表現するもの(チャート、グラフ、ボックス、矢印、図式、ワイヤーフレーム、等々)をすべてすっ飛ばして、現実を実際につくるっていうことだ。
  • ゲット・リアルは、より少ないこと。より少ないかたまり、より少ないソフトウェア、より少ない機能、より少ない事務作業、あらゆる非本質的なことがより少ないこと(そして人が本質的だと信じていることのほとんどは、実際はそうじゃない)
  • ゲット・リアルは、小さくあり続けること、そしてアジャイルであること。
  • ゲット・リアルは、インターフェイス=人々が使う本物の画面からはじめる。顧客が実際に経験するところから始めて、そこから後ろ向きに作るんだ。こうすれば、ソフトウェアが間違える前に、正しいインターフェイスが得られる。
  • ゲット・リアルは、反復(iteration)のことであり、変化のコストを下げることである。ゲット・リアルは、立ち上げのことであり、微調整のことであり、そしてウェブベースのソフトウェアへの完璧なアプローチである常時改善のことである。
  • ゲット・リアルは、顧客が望むものだけをもたらし、それ以外のすべてを取り除くことである。

なんてすばらしい文章だ。これだけ読んだだけでも、その奥深さに感動する。結局、それは何が目的なの、という問いかけなのだ。そして、その目的に直接寄与しないものは、すべて捨てよう、という提言だ。

深い。あまりに深い。

ここで、この文章の作者(誰だかしらないが)は、「より少ないソフトウェア」と言っている部分に注意して欲しい。ソフトウェアは、あくまでも「顧客が望むこと」をもたらすための手段であり、目的ではないということだ。私が、最近深く悩んでいるのは、自分がいま作っているソフトウェアはそもそも必要なのか?という疑問についてだ。日本企業は、ビジネス目標に合致した IT システムを構築することが苦手なことで悪名高い。ソフトウェアは本質的にはビジネス目標達成のための手段であって目的ではないはずだ。しかし、大抵の企業は自分たちのビジネス目標について深く考えることなく、単純に末端の業務を機械に置き換えようとする。企業全体を見渡して、ビジネスプロセスの変革とリンクして IT システムを構築すれば大きな生産性の向上が望めるのに、部分最適に終わってしまう。そうした場当たり的なソフトウェアを作ることは、その企業にとって意味があるだろうか?私は、日本で受託開発をするかぎりこうした疑問から逃れられないような気がしている。

日本企業は、IT 投資に弱い。それは、社内にビジネスと IT を結びつけて思考できる人間がいないか、いても地位が低くてその意見が経営陣に届かないのだ。ソフトウェアを作る前に、きちんとビジネスそのものを見直すことから始めたほうがいいのではないか。その手伝いをすることのほうが、プログラムを書くことより社会的により重要なのではないか、とかついつい物思いにふけってしまうのだ。

日本企業よ、ゲット・リアルしようよ。