本稿では、言語学者 川添愛さんの著書 『言語学バーリ・トゥード』 から、AIと人間のコミュニケーション、そしてそれがシステム開発にどう繋がるかについて考えてみたいと思います。
この本の副題は、 「AIは『絶対に押すなよ』を理解できるか」 という非常に示唆に富んだ問いです。皆さんもご存知、ダチョウ倶楽部さんの「熱湯風呂コント」での上島竜兵さんの名ゼリフ、「絶対に押すなよ!」。この言葉、文字通りの意味は「押さないで」ですが、彼の本当の意図は「押してほしい」ですよね。
このように、 言葉の表面的な意味と、発話者の真の意図が一致しない という状況は、私たちの日常で頻繁に起こります。そして、AIがこの微妙なニュアンス、特に「裏の意味」を正確に汲み取るのは、非常に高度な課題だと川添さんは指摘しています。
ちなみに、現在の ChatGPT や Gemini のような進化した AI であれば、文脈から上島竜兵さんの意図を推測し、「押す」という行動を提案できるまでになっています。これは、AI が大量のデータから人間の複雑なコミュニケーションパターンを学習している証拠と言えるでしょう。
システム開発における「絶対に押すなよ」
熱湯風呂の例はエンターテイメントの世界の話ですが、私たちのシステム開発の現場でも、多かれ少なかれ「意味の取り違え」は日常茶飯事です。熱湯風呂のように真逆の指示として伝えることはないと思いますが、要件の根底にある目的を誤解したり、設計の細かい部分で行き違いが生じたりすることは、頻繁に経験することではないでしょうか。
「言われた通りに作ったのに、なんか違う…」「認識合わせをしたはずが、想定と違うものが上がってきた…」といった経験は、開発者なら誰しも一度はあるはずです。これは、まさに「絶対に押すなよ」の裏に隠された意図を読み解けていない状態に近いと言えます。
コミュニケーションのズレを解消する2つのカギ
では、こうしたシステム開発におけるコミュニケーションのズレを解消し、よりスムーズなプロジェクト進行を実現するためにはどうすれば良いのでしょうか?
私は、大きく2つの解決策があると考えています。
1. 根底にある目的を理解する
一つ目は、「根底にある目的を理解すること」 です。単に「この機能を実装してください」「このバグを修正してください」といった指示された内容だけでなく、「なぜこの機能が必要なのか」「このバグを直すことでユーザーにどのような価値が提供されるのか」という、その指示の背後にある ビジネス上の目的やユーザー体験のゴール を深く理解することです。
例えば、「ユーザーのログイン履歴を記録する機能を実装してほしい」という指示があったとします。もし目的を理解せず、ただ言われた通りにログを保存するだけでは、単なるデータ蓄積で終わってしまうかもしれません。しかし、「不正ログインの検知を強化したい」「ユーザーの行動パターンを分析してパーソナライズされたサービスを提供したい」といった 真の目的を理解していれば、ログの取得項目や保存方法、集計方法まで踏み込んで、より目的に合致した設計や実装を提案できるはずです。目的を理解することで、単なるコーダーから、ビジネス課題を解決できるエンジニアへと進化できるのです。
2. フィードバックループを構築する
二つ目は、 「フィードバックループを構築すること」 です。これは、開発の途中段階で、こまめに方向性の確認を行い、認識のズレを早期に発見・修正していくプロセスです。
アジャイル開発のスプリントレビューやデイリースクラムがその典型ですが、小さなズレも放っておくと、後工程に進むにつれてその乖離は指数関数的に大きくなります。手戻りが発生する前に、プロトタイプを見せたり、中間成果物を共有したりして、ステークホルダーと積極的にコミュニケーションを取り、方向修正を入れることが重要です。
「この認識で合っていますか?」「現時点で想定されているものとズレはありませんか?」といった問いかけを頻繁に行い、早期にフィードバックを得ることで、最終的なアウトプットと期待値とのギャップを最小限に抑えることができます。これは、単に要件定義をしっかりするだけでなく、開発プロセス全体を通じて意識すべき視点です。
まとめ
AIが人間の複雑なコミュニケーションを理解することの難しさをヒントにして、システム開発におけるコミュニケーションのあり方について考えるきっかけになれば幸いです。
コードの表面的な仕様だけでなく、その裏にある 「ビジネス上の意図」 や 「最終的な目的」 を理解しようと努めること。そして、一方的に開発を進めるのではなく、 「対話」 を通じてこまめに 「確認」 すること。これらを意識するだけで、日々の開発業務はもっと円滑になり、システムの品質も大きく向上するはずです。