体験のためのソフトと機能のためのソフト

naoyaのはてなダイアリー - 僕やはてながPerlを選ぶ理由は、私にとっては納得できる話だ。もちろん、全てのソフトについてこの話が成り立つわけではないが、「ある種」のソフトの作り方について、なかなかうまく書けていると思う。

その「ある種」とは何かと言うと、基本的には品質と柔軟性のトレードオフで、要はウォーターフォールアジャイルかという話になる。柔軟性や開発効率を重視するならnaoyaさんのいうような作り方をすべきで、品質が大事だったら、ソフトウエア工学に添って作るべきだ。

でも、そういう言い古された分類には含めきれない、「ある種」の雰囲気についても、この文章は語っている。それをどうにかもう少しはっきり言えないか考えていて、「体験のためのソフト」という表現を思いついた。

品質と柔軟性の軸と別に、「体験のためのソフト」と「機能のためのソフト」という軸があると私は思う。

はてなというサイトは、機能だけでなく、ひとつの「体験」をユーザに提供している。そこがはてなの魅力ではないだろうか。日記が書きたかったり更新通知が欲しかったり質問の答が知りたいというだけでなくて、そこにまつわる「体験」というものがあって、そのテイストを求めて、ユーザははてなを選んでいるのではないだろうか。

そして、そういうシステムは、映画のように作るべきだと思う。

つまり、大勢の人達が協力して作るのだけど、「テイスト」を作る人、ユーザの味わう「体験」に対して責任を持つ人は、監督ひとりだ。他の人は、監督の作りだす「体験」の為に、監督の指示の元で自分の技能を提供する。「機能」や「品質」は合議性で作れるけど、「体験」はひとりのテイストで統一されてないと作れないからだ。

ソフトウエア工学は、映画のような方法論を取りこむべきだ。プロジェクトのミッションを定義する時点で、品質と効率のトレードオフと同様に、「機能」と「体験」のトレードオフも明確にする。「体験」を要求されるソフトでは、より映画的な色合いの濃い体制で望むべきだ。誰がテイストと「体験」に責任を持つのかをはっきり決めて、その為の協力体制を組む。それはアジャイルとはまた別の系統の方法論になるだろう。

映画では、音声さんも監督とは別の意味で重要だ。セリフが聞きとれない映画は、「体験」に入りこめない。音声さんは、職人として、俳優の声をきちんと届けることに、そのことだけに責任を持つ。

映画的ソフトにおいても、多くのミッションが定義され、そこには技能のある職人が配置され、責任を持って仕事に臨むことになる。もちろん、そういう仕事も重要だが、そういう人たちが中途半端に作品性に口を出すのはよくない。そのような形で、ミッションを定義して、協力のしかたをシステム化することは可能だろう。「品質」はそのような職人的ミッションのひとつとして定義されるのかもしれない。

「品質」を作る道は、まず「品質」の重要性を認識することから始まる。同様に、「テイスト」というものも、まずそれを認識しないと何もはじまらない。何のために我々はネットをしているのか、そこから考え直した方がいいのかもしれない。