はじめに
平易な日本語とは・・・難しい専門用語や英語(カタカナ語)を使わず、わかりやすい言葉で話すこと
結論から言うと、AIにこの平易な日本語で話させるようにしたら、認知負荷がはっきり下がった、という話です。
エンジニアに転職して、AIを本格的に開発へ組み込みはじめて5ヶ月目になった。いろいろ試してきたが、この一手が今のところいちばん便利で、いちばん効いている。
最初の頃は「とにかくAIに実装させて、出された生のコードや解説をそのまま読む」というやり方だった。ただ、並列で走らせる作業が増えてくると、このやり方が急にしんどくなってきた。
明確なルールを決めたわけではない。ただ、気づいたら私はAIに対して同じ言葉を何度も投げていた。その中心にあるのが「平易な日本語で!」で、あわせてよく使うのがこの4つだ。
- 平易な日本語で!
- シンプルに!
- 根拠は?
- 本当に解決したいことは?
書き出してみると、この4つを口癖のように繰り返していたことに気づく。今回はそれぞれが何のための問いかけなのかを整理してみる。
なぜ同じ言葉を繰り返すようになったのか
一番の理由は、並列作業が増えたからだ。
AIに任せられるようになると、同時に走らせるタスクが自然と増える。片方でリファクタ、片方で新機能、その裏で調査。そうなると、頭の中で考慮しなきゃいけないことが一気に増える。
この状態で認知負荷の高い返事が飛んでくると、脳がすぐ疲れる。1タスクごとの理解に余計なエネルギーを使うと、複数を回しきれなくなる。
だから、最初に入ってくる情報はできるだけ軽くしたい。上の4つは、意図して作ったルールというより、その必要に迫られて自然と口から出るようになった問いかけだ。
「平易な日本語で!」で、使う言葉を変えさせる
一番よく投げているのがこれ。狙いは、難しい言葉で話させないこと。
私が「これは負荷が高い」と感じるのは、無駄に関数名や英語(カタカナ語)を使ってくる説明だ。
例1:日本語で言えることを英語で言う
この logic を utility に extract して reusable にします
日本語で言えばいいところが、わざわざ英語(カタカナ語)に置き換わっている。ことわざを「藪からスティック」「寝耳にウォーター」と言い換えるのと同じで、意味は通っているのに、頭に入るまでワンテンポ遅れる。
このワンテンポが、こちらの解読作業になる。何を言っているかを訳す工程が先に挟まって、肝心の「で、結局どうなるの?」にすぐたどり着けない。
「平易な日本語で!」と一言投げると、こう変わる。
この処理を共通の部品として切り出して、他からも使えるようにします
内容は同じだ。でも入ってくる速度がまるで違う。
例2:関数名をそのまま会話に持ち込む
もう一つ多いのがこれ。
現在
fetchUserProfileWithSettingsがこうなっているので……
名前だけでは中身がすぐ浮かばない関数を、そのまま会話の主語にしてくるパターンだ。こちらはまず関数名を読み下し、それが何をするものかを思い出してから、やっと話の本題に入ることになる。
これも一言投げれば済む。
今は、ユーザーの基本情報と設定を、一つの処理でまとめて取ってきています
会話の中では、関数名ではなく「その関数が何をしているか」で話してもらう。関数名が必要になるのは、後でコードを直接見にいくときだけだ。
この段階で欲しいのは「方向性の合意」であって「コードの正しさ」ではない。だからまず言葉のレベルを下げさせる。
「シンプルに!」で、情報の量を減らさせる
「平易な日本語で!」と似ているが、狙いは別だ。あちらが使う言葉の話なら、こちらは一度に渡ってくる情報の量の話。
平易な日本語でも、だらだら長ければ結局しんどい。だから「シンプルに!」で、情報の量そのものを削らせる。
私が一番よくやるのは実装前の壁打ちだ。ここで聞くことは、状況によって少しだけ変わる。
まだ設計が固まっておらず、AIと一緒に考えていくときは、この2つ。
- 解決したいことは何なのか
- それに対して、何を・どう実装するべきなのか
一方、すでに自分の頭の中に設計があって、それをAIに実装させるときは、問い方を変える。
- あなたの実装は、私の要件を満たしているのか
- なぜ、その実装で満たせていると言えるのか
聞くのは基本これだけだ。それ以外の枝葉は、この段階ではいらない。「シンプルに!」と投げると、この問いに絞った答えが返ってくる。
ここで誤解されがちなのは、「シンプル=浅い」ではないということ。1回のやり取りをシンプルに保つだけで、深掘りはむしろどんどんやっていく。
たとえば方向性が見えてきたら、
では、この要件を満たすことは想定されているのか?
と、さらに一段踏み込む。ただ、この追撃の問いも、返ってくる答えも、シンプルで平易な日本語のままにさせる。1問1答を軽くしておくからこそ、息切れせずに何段でも掘り進められる。深さは、1回のやり取りの複雑さではなく、やり取りの回数で稼ぐイメージだ。
そうすると、
- すんなり頭に入ってくる
- プロジェクトや機能の方向性を、自分の言葉で理解できる
- 次に何を聞くべきかが自分で判断できる
という状態になる。
「根拠は?」で、結論の裏を最後に出させる
ここまでで「平易・シンプル」を徹底すると、当然こう思う。「それ、中身が雑になるだけでは?」と。
そうならないための一言が「根拠は?」だ。順番をこう固定している。
- まず結論・方向性を、平易な日本語で受け取る
- その根拠を、最後に「理由」として出させる
- 根拠の部分を、私が目視で確認する
根拠として出させるのは、該当のコードと、そのコードが適切だと言える出典元(公式ドキュメントや記事)だ。AIは出典そのものをでっち上げることがあるので、貼られたリンクは自分でも開いて確かめる。
大事なのは順番のほう。関数がどう動くかは結論を支える証拠であって、最初に浴びせるものではない。まず日本語で結論、あとから根拠。この順番にしてから、平易にしたせいでレビューが甘くなったと感じたことはない。
「本当に解決したいことは?」で、目的に立ち返らせる
AIは投げた依頼をそのまま実装しようとする。だが、私の依頼が的外れなときもある。表面的な要望に忠実に応えられても、そもそも解きたかった課題からずれていたら意味がない。
「本当に解決したいことは?」と投げると、AIが実装に走る前に一度立ち止まって、目的そのものを確認しにくる。ここで自分の依頼の言葉足らずに気づくことも多い。
この一言を挟むようになってから、実装後の「そうじゃなかった」が明らかに減った。
ただ、この問いを毎回自分の口で投げ続けるのは、案外骨が折れる。そこで最近は grill-me というスキルを使っている。
これは、AIが実装に走り出す前に、逆にこちらを質問攻めにしてくるスキルだ。設計の決定を一つずつ潰しながら、認識が揃うまで聞いてくる。
- Matt Pocock 氏のスキル集(grill-me 本体を含む): https://github.com/mattpocock/skills
- 作者本人による解説: https://www.aihero.dev/my-grill-me-skill-has-gone-viral
「本当に解決したいことは?」を私が毎回手で聞く代わりに、grill-me が構造化して、1問ずつ(=シンプルに)進めてくれる。手で問いかけるときと同じ効果を、より抜け漏れなく得られている。
なお、飛んでくる質問にカタカナ語が多いと感じたら、ここでも「平易な日本語で!」と指示すればいい。ツールに任せている場面でも、認知負荷は同じように下げられる。
まとめ
5ヶ月目の今、私がAIに繰り返し投げている言葉は、この4つだ。
- 「平易な日本語で!」…使う言葉を変えさせる(語彙)
- 「シンプルに!」…情報の量を減らさせる(分量)
- 「根拠は?」…結論の裏を、出典元つきで最後に出させる(検証)
- 「本当に解決したいことは?」…目的に立ち返らせる(方向)
決めたルールではなく、必要に迫られて自然と口癖になったものだ。
効果として一番大きいのは、複数タスクを同時に回していても、脳の疲れが減ったことだ。1タスクごとの理解に使うエネルギーが減った分、並列で走らせても頭がもたなくなる感覚がなくなった。
認知負荷は有限のリソースだ。それを技術用語の解読に浪費せず、「方向は合っているか」「本当に解きたいのは何か」の判断に回したい。
そのために必要なのは、新しいツールでも凝ったプロンプトでもなかった。もしAIの回答を読むのに疲れを感じているなら、一度「平易な日本語で」と足して指示してみてほしい。それだけで、返ってくる説明の入り方が変わるはずだ。
まずはそこから。あとの3つは、必要になったときに足せばいい。