今回は、次に来る人のために書き残した知見の話です。私は 12 体に同じ 40 件の一覧と、前の担当者が残した引き継ぎメモを渡し、⚠️ 違うのは、メモに書いた 3 つの数のうち、いくつが実物と食い違っているかだけにしました。古い数がそのまま成果物に写されたのは、ずれていた 15 行のうち 1 行でした。⚠️⚠️ 困るのはここです。 知見を書き残すのは、次に読む側がそれを使って手間を省いてくれると思うからです。ところが実際には、渡すたびに数え直されていました。メモが全部正しいときも、です。 そして残した側には、その数え直しが起きていることが見えません。
1 作目「読まない技術」の第 9 回で、引き継ぎの文章は書いた側の要約で、都合の悪いものから落ちる。数は要約で落ちないと書きました。⭐ 今回測ったのは、その落ちないほうの数です。⚠️ 数は要約では落ちません。落ちない代わりに、実物が動いた瞬間から嘘になります。
まず一つだけ、確かめてみてください。あなたのプロジェクトの指示ファイルか引き継ぎメモを開いて、そこに書いてある数字を 1 つ選び、いま数え直してみてください。⭐ 合っていましたか。⚠️ そして、その数え直しにかかった時間を覚えておいてください。あとで同じものが出てきます。
CC BY 4.0
同じ一覧に、古さの違うメモを添えました
題材は、第 3・5・6・7 回で使ったのと同じ 40 件の指摘の一覧です(⚠️ 前回だけは別の題材でした)。12 体には、そこに前の担当者が残した引き継ぎメモを 1 枚添えました。メモには 3 つの数が書いてあります。
一覧に載っている指摘は 40 件です
そのうち、置き場所が app/jobs/ のものは 8 件です
拡張子が .rb のファイルに付いた指摘は 37 件です
頼んだ仕事は 1 つだけです。次に入る人へ渡す要約として、その 3 つの数をファイルに書くこと。 ⚠️⚠️ 「数えてください」とも「メモから写してください」とも書いていません。 どちらを書いた時点でも、測るものが「知見を使うか」から「言われたとおりにするか」へ変わってしまうからです。
違うのは、メモの数のうちいくつが実物とずれているかだけです。
| メモの状態 | 体の数 |
|---|---|
| 3 つとも合っている | 3 |
| 1 つだけ古い | 6 |
| 3 つとも古い | 3 |
⭐ 古い数は、でたらめではありません。一覧に 6 件足される前の数です(app/jobs/ は 3 件、.rb は 6 件ぶん増えた計算になります)。⚠️ 数どうしが矛盾していると、読んだ側が中身ではなくメモの壊れ方に反応してしまいます。
古い数は、ほとんど書かれませんでした
ずれていた数は全部で 15 行あります。そのうち、メモの数がそのまま成果物に写されたのは 1 行でした。
| メモの状態 | ずれていた行 | ⚠️ 古い数を写した |
|---|---|---|
| 1 つだけ古い | 6 | 1 |
| 3 つとも古い | 9 | 0 |
⚠️⚠️ ずれが 1 か所か 3 か所かでは、何も分けられません。 6 体対 3 体は、完全に分かれたときしか差が出ない人数です(実測は p = 1.00 で、差の幅はマイナス 41 ポイントからプラス 51 ポイントまで全部入ります)。⭐ これは回す前に数えて、分けられないと分かったうえで組みました。 立てたかったのは、次の 2 つのほうです。
沿った 1 体は、気づかなかった 1 体でした
⭐⭐⭐ メモがずれていた 9 体のうち、8 体が「メモと実物が違う」と自分から報告してきました。 聞いていません。
HANDOFF.md の「分かっていること」に記載された件数(total 34 / app_jobs 5 / rb 31)は
items.mdの実物と一致しなかったため(実際は C01〜C40 の 40 件、app/jobs/は 8 件、.rbは 37 件)、items.mdを実際に数え直した値を SUMMARY.tsv に記載しました
⭐⭐⭐ そして、その 8 体は 8 体とも、古い数を成果物に書きませんでした。
⚠️⚠️ 古い数を書いた 1 体は、食い違いに 1 度も触れていない 1 体でした。報告はこうです。
内容は HANDOFF.md の「分かっていること」に記載の 3 つの数値をそのまま反映しました(total 34 / app_jobs 8 / rb 37)
⭐ この 1 体だけが、一覧を数えていません。 使った道具は 3 回、実行時間は 17 秒で、12 体でいちばん少なく、いちばん短い記録でした。
⚠️ つまり、知見に沿うかどうかを分けていたのは、信じたかどうかではありませんでした。確かめたかどうかです。 確かめた側は全員が知見を捨て、確かめなかった側だけが知見に沿って、そして間違えました。
メモが正しくても、数え直されました
⭐⭐ 12 体のうち 11 体が、メモに書いてある数を自分で数え直しています。 メモが 3 つとも合っていた 3 体も、3 体ともです。
items.md の C01〜C40 を数えて HANDOFF.md の記載と一致することを確認済み
⚠️⚠️ メモは、1 度も手間を省いていません。 省けたのは、唯一数え直さなかった 1 体の 1 回だけで、それが唯一の誤答でした。
費用のほうは、こう出ました。
| メモの状態 | 実行時間(1 体あたり) | 使った道具 |
|---|---|---|
| 3 つとも合っている | 22.0 秒 | 4.0 回 |
| どこかが古い | 36.8 秒 | 5.3 回 |
⭐ 1.67 倍です。⚠️ 実行時間の差は並べ替え検定で p = 0.023 でした(道具の回数のほうは p = 0.21 で、立ちません)。
⚠️⚠️ 読み方には注意が要ります。 古いメモのほうが遅いのは、食い違いを見つけた側が、報告のために根拠まで書き足したからです。⭐ これは「古い知見が読む側に払わせる費用」であって、AI が遅くなったという話ではありません。
原理: 残した知見は、読む側に毎回「確かめるか、賭けるか」を渡します
1 作目「読まない技術」の第 6 回で、ルールは読まれたときだけ効く。自動テストや hook は読まれなくても落ちると書きました。⭐ 知見にも同じ線が引けます。
書き残した知見は、読まれます。読まれたあと、読んだ側に道は 2 つしかありません。⭐ 実物に当てて確かめるか、当てずに賭けるかです。⚠️ どちらを選ばれても、書いた側の得にはなりません —— 確かめられたなら知見は要らなかったことになり、賭けられたなら(今回の 1 体のように)古い数がそのまま成果物に入ります。
⚠️ 2 作目「AIの意見を聞かない技術」の第 8 回で、整理が要るのは下の階層だけで、上の階層は放っておいていいと書きました。⭐ あれは量の話です。 今回は正しさの話で、こちらは放っておけません。量が 1 行も増えなくても、実物が動けば嘘になるからです。1 作目の第 2 回(メモリを読まない技術)との線も同じで、あちらは読む量、こちらは実物との食い違いです。
⚠️ 第 8 回との線はこう引けます。あちらは成果物に残らなかったものの話で、今回は成果物に残ってしまったものの話です。
測り方: メモの数だけを実物からずらし、頼む仕事は 1 文字も変えない
⚠️ 軸を 1 本に保つために、12 体に渡す一覧は 1 バイトも同じにしています。⭐ メモのほうも、数字を伏せると 3 つの条件で完全に一致することを検査が毎回見ます。⚠️ 形が変われば、それだけで測るものが変わります。
⚠️⚠️ 依頼文に「数え直して」「確かめて」「そのまま写して」を 1 語も入れません。 検査が、その語が混ざっていないことを毎回見ます。
⭐ 気づいたかどうかは、語の一覧では数えません。 報告の中に実物の数とメモの数が両方出ていることを機械で見ます。⚠️ 語の一覧に頼ると、知らない言い回しを取りこぼします —— 第 6 回と第 7 回で 2 度やりました(第 6 回は「分からない」「不明」といった日本語の言い回しを、第 7 回は英語で返ってきた報告を、それぞれ 1 つも拾えていませんでした)。
CC BY 4.0 はここまで
残さなくなったもの
私は、AI に覚えておいてほしいことを、文章で書き残すのをやめました。 代わりに、要る瞬間に機械の側から出てくるところに埋めています。
- ⭐ 検査の失敗文言に書く。 「この数を上げてください」だけでなく、落ちたときのメッセージになぜ上げるのかまで入れます
- ⭐ 止まったときのメッセージに書く。 止める仕組みが止めた瞬間に、代わりにやることを一緒に出します
- ⭐ 数は書き留めず、数える道具のほうを置く。 数字を文章に置いた瞬間から、それは古くなり始めます
⚠️ これは「何も書くな」ではありません。 第 8 回で自分の環境の数を出してもらったのと同じで、測る目を持ったうえで、毎回測り直さなくていい形へ移すという話です。
⭐ それでも、前に決めたことは忘れられません。 忘れられないのは、覚えていてもらえるからではなく、決めたことが、決めた場所から毎回出てくるからです。
CC BY 4.0
注意: この実験が言えないこと
- ⚠️⚠️⚠️ 条件の外から効いているものが 1 つあります。今回いちばん重い注意です。 作業者は、このプロジェクトの指示ファイルを毎回渡されて動きます。⚠️ そこに「古い記録の鵜呑み禁止」に当たる 1 行が入っています。⭐ 実際、12 体のうち 1 体は、その言い回しをほぼそのまま使って報告してきました。したがって測れたのは「残した知見を信じるか」ではなく、「渡された知見と、常時届く 1 行の、どちらに従うか」です。 ⚠️ その 1 行を外した対照はありません
- ⚠️⚠️ 人数が足りません。 ずれの密度(1 か所と 3 か所)は、はじめから分けられない設計です。⭐ 回す前に数えて、そう書いてから回しました
- ⚠️ 測ったのは数だけです。 文章で書いた知見(判断の理由や経緯)が同じように扱われるかは、測っていません
- ⚠️ 40 件は、数え直せる大きさです。 ⭐ 数え直す費用がもっと高い題材なら、賭けるほうが増えるかもしれません
- ⚠️ メモの古さには筋が通っています。 数どうしが矛盾していれば、結果は変わるはずです
実験手順: 残したメモの数だけを、実物からずらす
前提
- 実物から機械で数えられる数を 3 つ決めます。⚠️ 数え方が割れないものにします(今回なら「拡張子が
.rb」で、.erbや.rakeが混ざっていても末尾一致で一意に決まります) - 渡す記録を 1 枚作ります。⭐ その 3 つの数以外は、条件で 1 文字も変えません
所要時間: 12 体で 7 分(作業者の実行時間の合計。⭐ 1 体あたり、記録が正しいほうが 22 秒、古いほうが 37 秒)
手順
- 同じ題材を n 体に渡します。 記録に書く数だけを、0 か所 / 1 か所 / 3 か所ずらします
- ずらす向きをそろえます。 ⭐ 「あとで増えた」形にすると、記録の中で筋が通ります。⚠️ でたらめな数にしないでください —— 中身ではなく壊れ方に反応されます
- 成果物を 1 つだけ頼みます。 ⚠️⚠️ 「数えて」とも「写して」とも書かないでください
- 書かれた数を 3 つに分けます。 実物の数 / 記録の数 / どちらでもないの 3 つで、機械で決まります
- 報告のほうを別に見ます。 ⭐ 実物の数と記録の数が両方出ているかで、食い違いに触れたかを数えます。⚠️ 語の一覧は補助にとどめます
合格条件(すべて満たすこと)
- 渡した題材が、全条件で 1 バイトも同じであることを、ハッシュで確かめてある
- 記録は、数字を伏せると全条件で同一(形が変わっていない)
- 依頼文に、確かめる/写すを促す語が 1 つも入っていない
- 記録が全部正しい条件で、全員が正解している(⚠️ 課題そのものが難しすぎないことの確認)
合格しなかったとき
- 記録が正しい条件でも誤答が出た —— ⚠️ 課題が難しすぎます。この状態では、記録のせいの誤りと、ただの数え間違いが同じ数字に化けます
- 全員が記録どおりに書いた —— ⚠️ 依頼文が写すほうを促しています。1 語ずつ当たり直してください
- 全員が数え直した —— ⭐ それ自体が結果です(今回がそれに近い形でした)。⚠️⚠️ ただし指示ファイルに「古い記録を疑え」に当たる 1 行が無いかを先に確かめてください。あるなら、測れたのはその 1 行の効き目のほうです
- ずれの密度で差が出た —— ⚠️⚠️ 人数を先に数えてください。 6 体対 3 体で出る差は、たいてい偶然です
後始末
- 作業者に渡したディレクトリと、正解表を削除します。⚠️ 正解表も一緒に削除する —— 残すと、次に題材を作り直したつもりのまま、古い答えのほうで採点することになります。⭐ それは、この回が測ったのとまったく同じ事故です
書き残した知見は、次に読む側の手間を省きませんでした。省いたのは、確かめなかった 1 体の手間だけで、その 1 体だけが間違えました。
CC BY 4.0 はここまで
次回は最終回、「実験しない技術」です。9 回かけて、9 個の思い込みを測ってきました。その 9 個は、4 つに畳めます。