おはよう、後輩A君。
先週、私はブログの記事にリンクを一括で追加する作業をしたんだ。47記事に、新しく書いた8本へのリンクをまとめて足す。プログラムを走らせて、47件すべて成功。実際のページも見て、ちゃんと表示されている。完璧だと思ったんだよね。
でもね、昨日それを数え直したら、28本のリンクが抜けていたんだよ。しかも1週間まったく気づかなかった。今日はこの失敗の話をするよ。これはブログの話に見えて、実は後輩A君が仕事で必ず一度は踏む落とし穴の話なんだ。
1. 「47件すべて成功」は、嘘じゃなかったんだよ
まず、何をしたかを説明するね。
私のブログには「シリーズ記事の一覧」というリンク集が、各記事の下に付いているんだ。新しい記事を書いたら、過去の全記事のリンク集に、その新記事を足す必要がある。手作業だと何十回も同じことを繰り返すことになるから、プログラムにやらせているんだよ。
先週やったのは、こういう作業だったんだ。
既存の47記事のリンク集に、新しく書いた8記事へのリンクを足す
結果は47件すべて成功。実際のページを開いて、新しいリンクが並んでいるのも確認した。ここに嘘は一つもなかったんだよ。指示した通りのことが、指示した通りに実行されていたんだ。
でもね、指示そのものに穴が空いていたんだよね。
2. 1週間後、きれいな階段が出てきたんだよ
昨日、別の作業のついでに全56記事のリンクを数え直したんだ。そうしたら、こんな結果が出てきたんだよ。
1本目の新記事 …… 7本足りない
2本目の新記事 …… 6本足りない
3本目の新記事 …… 5本足りない
4本目の新記事 …… 4本足りない
5本目の新記事 …… 3本足りない
6本目の新記事 …… 2本足りない
7本目の新記事 …… 1本足りない
8本目の新記事 …… 過不足なし
これを見た瞬間、背筋がすっとしたんだよ。1本ずつきれいに減っている。合計すると28本。
後輩A君、ここが今日いちばん伝えたいところなんだ。ミスがきれいな形をしているとき、それは単純な打ち間違いじゃないんだよ。うっかりミスなら、抜けはバラバラに散らばるはずだよね。7本、6本、5本……と階段になるのは、仕組みそのものが同じ間違いを繰り返した証拠なんだ。
だからね、原因を探すときは「どこを間違えたか」より先に「この形になるには、何が起きていればいいか」を考えるといいよ。形から逆算する方が、ずっと早く犯人にたどり着けるんだよね。
3. 犯人は「対象」の線引きだったんだよ
形から逆算してみると、答えはすぐ出たんだ。
私は作業をこう分けていたんだよね。
更新する側=既存の47記事
追加されるもの=新しい8記事
この線を引いた瞬間に、新しい8記事自身が「更新する側」から抜け落ちたんだよ。8記事は「足される側」であって「足す先」ではない、とプログラムが判断したわけだね。
でも実際には、新記事どうしもお互いにリンクし合う必要があったんだ。1本目の記事から見れば、あとの7本は「まだ知らない新記事」なんだからね。
しかも各記事は、自分が書かれた時点のリンク集を持っている。だから1本目は7本知らない、2本目は6本知らない……という階段ができあがったんだよ。犯人は打ち間違いでもプログラムのバグでもなく、私が最初に引いた線だったんだ。
これ、ブログだけの話じゃないんだよ。
・既存ユーザーに新機能の通知を送る → 新機能で増えたユーザーが漏れる
・旧テーブルのデータを新テーブルに移す → 移行中に増えたデータが漏れる
・既存メンバーに新しい権限を付ける → 同時に入った新メンバーが漏れる
全部同じ構造なんだよね。「既存」と「新規」で線を引いた瞬間、新規どうしの関係が視界から消える。後輩A君も、一括処理を書くときはこの線を疑ってみてほしいんだ。
4. 1週間も気づかなかったのには、理由があるんだよ
ここも大事なところだよ。私が1週間気づかなかった理由は、はっきりしているんだ。
私は「成功したか」しか確認していなかったんだよね。47件成功、エラーゼロ、ページにも表示されている。全部○だった。
でも私が確認すべきだったのは、そこじゃなかったんだ。
❌ 確認していたこと:やった作業は成功したか
⭕ 確認すべきだったこと:あるべき状態になっているか
この2つは、似ているようで全然違うんだよ。前者は自分の指示の範囲内しか見ていない。指示そのものが間違っていたら、何度確認しても○が並ぶだけなんだよね。
後者は、指示のことをいったん忘れて「完成形はどうあるべきか」から確認する。今回で言えば「56記事すべてが、56本のリンクを持っているはずだ」と先に決めて、そこから数える。そうすれば1週間前に気づけたんだよ。
作業の成功を確認するな。結果の正しさを確認しよう――これが今日いちばんの教訓だね。
5. 「数えて確かめる」は、思っているより簡単なんだよ
じゃあどうやって確認するか。難しいことはいらないんだ。私がやったのはこれだけだよ。
① あるべき数を先に決める(56記事 × それぞれ56本のリンク)
② 全部を機械的に数える(1件ずつ目で見ない)
③ 差がゼロであることを確認する
ポイントは①を先にやることなんだよ。作業のあとに数えると、出てきた数字を見て「まあこんなものかな」と思ってしまうんだよね。人間はどうしても、目の前の結果に引きずられる。だから作業する前に「正解の数」を書いておくんだ。
②の「機械的に」も大事だよ。56記事を目で確認するのは無理だし、やったとしても見落とす。数えるのは道具にやらせて、人は「いくつであるべきか」を決めることに集中する。この分担が効くんだよ。
そして③。「ゼロ件でした」を見て、はじめて終わりなんだ。「28件見つかりました」で終わるんじゃなくて、直したあともう一度数えて、ゼロを見る。この最後のひと手間をやるかどうかで、安心の質がまるで違うんだよね。
6. AIに任せるほど、確認の仕組みが要るんだよ
最後に、これからの話をさせてほしい。
今回の作業は、私がAIに頼んでやってもらったものなんだ。47件を数分で処理してくれた。手作業なら半日かかるからね。AIは指示した通りのことを、正確に、猛烈な速さでやってくれるんだよ。
でもね、だからこそ指示の穴も、猛烈な速さで47箇所に広がるんだよね。手作業なら、20件目あたりで「あれ、この記事は対象じゃなくていいんだっけ?」と気づいたかもしれない。速いということは、迷う時間がないということでもあるんだ。
だから私は、こう考えるようにしたんだよ。
AIに任せる量が増えるほど、人がやるべきなのは「作業」ではなく「正解の定義」と「数え直し」になる。
以前「ぜんぶ自動化」をやめて分担を設計した話を書いたけれど、あれと同じ結論にたどり着いたね。速く動く部分をAIに渡したなら、人は止まって確かめる側に回る。両方をAIに渡してしまうと、間違いに気づく人が誰もいなくなってしまうんだよ。
ちなみに今回、抜けに気づけたのは「あの作業、やらなくて大丈夫だったっけ?」と聞かれたからなんだ。あの一言がなければ、たぶん今も気づいていない。確認する習慣を持った人が一人いるだけで、仕組みは救われるんだよ。後輩A君も、遠慮せずに聞いてくれる人でいてほしいな。
結論:作業の成功ではなく、結果の正しさを数えようか
今日の話をまとめるとこうだよ。
① 一括処理は「既存」と「新規」の線引きで漏れる
② きれいな階段状のミスは、仕組みが原因のサイン
③ 「作業が成功したか」ではなく「あるべき状態か」を確認する
④ 正解の数を先に決めてから、機械的に数える
⑤ 直したあともう一度数えてゼロを見るまで終わりじゃない
一括処理って、うまくいくと本当に気持ちがいいんだよね。47件成功、という文字を見た瞬間に、仕事が終わった気になる。でもあれは「指示した分が終わった」だけであって、「正しくなった」とは違うんだよ。
後輩A君も、次にまとめて何かを処理するときは、走らせる前にメモに一行書いてみようか。「終わったとき、この数字がいくつになっていれば正解か」――たったそれだけで、1週間気づかない失敗を防げるんだよ。
よくある質問
Q1. 一括処理の前に、必ず確認すべきことは何?
「対象リスト」に自分自身が入っているかだよ。今回の私の失敗はまさにこれだった。特に「既存のものに、新しいものを追加する」形の作業は要注意なんだ。追加される側も、同時に更新される側になっていないか――ここを一度立ち止まって考えるだけで、かなり防げるんだよね。
Q2. 毎回そんなに丁寧に数えていたら、時間がかかるんじゃない?
数えるのは道具にやらせるから、実は数分で終わるんだ。今回も全56記事のスキャンは1分もかかっていないよ。時間がかかるのは「正解の数を決める」ところだけで、こっちは頭を使う作業だから人間がやる価値がある。むしろ、1週間後に28箇所直す方がずっと時間を食うんだよね。
Q3. ミスを見つけたとき、まず何をすればいい?
直す前に、全体像を数えることだよ。1件見つかると、つい目の前のそれを直したくなるよね。でも「他にも同じ理由で壊れているものがあるはずだ」と考えて、先に全部を数える。今回も、最初の1件を直して満足していたら、残り27本は放置されていたんだ。1件は氷山の一角だと疑うのが正解だね。
Q4. AIに一括作業を任せるのは、やっぱり危ないってこと?
そうじゃないよ。今回だって、47件を数分で処理してくれたのはAIのおかげだし、28箇所の修正も一瞬で終わった。危ないのはAIではなく、「確認まで含めて全部AIに渡してしまうこと」なんだ。作ってもらった人と確かめる人が同じだと、見落としは見落としのままになる。AIの答えを鵜呑みにしない話とも通じるけれど、役割を分けることが安全につながるんだよ。
【本日のミッション:正解の数を、先に書いてみようか】
- ☐ 次に一括処理をするとき、走らせる前に「終わったらこの数字がいくつになるか」をメモしてみようか
- ☐ 「既存」と「新規」で線を引いたら、新規どうしの関係が漏れていないか確かめてみようか
- ☐ (後輩A君へ)誰かの作業に「あれ、やらなくて大丈夫でした?」と聞いてみようか。その一言が、仕組みを救うことがあるんだよ
📚 AI活用シリーズ(おすすめ)

コメント