要求

「要求を伝える難しさについて。」
最近の状況は知らないけれど、子供の頃は絵描き歌ってのがあった。ドラえもんとかパーマンをかすかに覚えている。上手いか下手かは別にして、絵描き歌を聴きながら何度も絵を描いたような気がする。今となってはすっかり歌を忘れてしまったけれど。

ドラえもんなんて見たことも聞いたこともない人がいたと思ってもらいたい。日本語は完全に通じる。このさい、地球人でなくてもいい。そうだなぁ…。ダースベーダーってことにしよう。で、ダースベーダーに絵描き歌を聞かせたとして、見事にドラえもんを描いてくれるだろうか? 実はムリなのだ。絵描き歌は、最終形態がドラえもんであることを知っていて、それぞれの歌詞がどのパーツを指しているのかを知っているからこそ描けるのだ。

実際にちょっとした実験をやってもらってもいい。二人で向かい合って座り、一人が目に付いたものを口で説明し、もう一人が説明を聞いて紙に描いてみるのだ。もちろん、説明の 中で対象物を連想させるようなヒントを言ってはいけないし、完成するまで描いている紙を覗き見てもいけない。

お互いに同じ完成系を知っている場合でなければ、自分がどれだけ一所懸命説明しても、相手は自分が頭に描いたとおりに解釈してはくれない。システム開発は、そういうところで物を作るビジネスだ。顧客は頭の中にドラえもんを描きつつ、絵描き歌を伝えてくる。「丸描いてチョン、丸描いてチョン、なんです よぉ」。これが顧客要求だ。こっから、まだ見たことのないドラえもんを見事に描き切らなければならない。まあ、要求通りのドラえもんにはならないのが普通だ。耳がついてるとか、ドラミちゃんになっちゃったぐらいなら、大成功である。ポケモンになっちゃったり、ガンダムになっちゃったりするのが普通だし、もしかしたらピカソの抽象画ができあがるかもしれない…。

…少し言い過ぎか。常識や既存の物でカバーしてるし、お互いに必死に努力していれば、問題がない (=我慢できるとか、なんとか業務はこなせるとか。) ところまでは持って行ける。ただ、やはり既存のもので説明できない新規性の高い部分や、常識が通用しない企業独特の事情に基づいた部分は、"絵描き歌コミュニケーション" だと考えなければならないだろう。会話では「なるほど、なるほど。だいたい分かりますよ。」なんて感じで進むだろうが、「システムが構築できるぐらいの精度」にはなかなか届かない。

時間が無限にあるのなら、発注元の会社に入り込んでじっくり理解することや、試しに作ってみて、トライアンドエラーでゴールを目指すこともできるが、限られた時間の中でゴールを目指さなければならないとなると、簡単ではない。まずは、「自分の常識は相手の非常識」と云うところに立たなければならない。「"話せば分かる" は幻想」なのだ。なーんて話は、ちょっと遠過ぎるな。

で、お互いの距離を一気に埋めるのがモデリングだ。別に表記が UML で無ければならないとか、計算モデルがオブジェクト指向でなければならないと云うつもりはない。ただ、言葉によるコミュニケーションは、思っているよりも不確かな物だから、モデルを介してコミュニケーションすると云う共通認識をしっかりと持たなきゃダメだと、声を大にして訴えたいのだ。

例えば、新しい車を企画するとして、言葉でいくら説明しても、スペックを並べても、どんな車なのかは分からない。そんな情報だけを基にして車を作ったら、絵描き歌のようなものだから、100 人が 100 人とも違う車を作るだろう。で、そうならないように、スケッチしたり、粘土で模型を作ったりして補って、もっと細かい話を詰めて行くことができる訳だ。

概念を表現する方法は、どの方法を用いるにしても、一方だけが知っているだけでは意味がない。表現されている対象について、お互いに高い精度で共通認識を持てなければ、効果を発揮しないからだ。まあ、でも、表現手段の前に、精度の高いコミュニケーションが難しいものであると云う認識が広まり、モデルを介したコミュニケーションの需要が高まらないと…と思っている。

そういえば、この文章も絵描き歌みたいなもんだから、伝えたかったことがうまく伝わったかどうかは、神のみぞ知る…だ。