「成功」と記録されたまま、2か月以上止まっていました
自動化したものが動かなくなったとき、何を見ていれば気づけたのか
先日、自社で毎日つくっているものが、約2か月半のあいだ、1つも外に出ていなかったことが分かりました。
いちばん厄介だったのは、記録がずっと「成功」だったことです。
エラーは1件も出ていません。毎日きちんと動いて、毎日「成功」と記録されていました。その裏で、成果物は外に出ていませんでした。
自動化を仕事にしている会社が、自分のところでこれをやりました。同じことが起きうる方に、先にお伝えしておきたいと思って書いています。
調べたら、止まっていた場所は1つではありませんでした
その仕組みは、毎日こういう順番で進みます。
- 情報を集める
- 内容をつくる
- できたものを、決まった場所へ送る
- 人がそれを見て、外に出す
止まっていた場所は、1つではありませんでした。
機械の側。記録の中身を追える回をいくつか開いたところ、3番を呼ばないまま終わっている回がありました。下調べも制作も終わっているのに、送る手前で処理が終わっています。途中で落ちたわけではないので、最後まで動いた=成功と記録されます。
人の側。一方で、きちんと届いていた日もありました。届いていたのに、4番が踏まれないまま流れた日があります。
つまり、外に出なかった理由が2つあって、どちらも記録の上では問題なく見えていました。

なぜ2か月以上も気づかなかったのか
「成功」という記録の意味を、取り違えていたからです。
私たちは「成功」を「うまくいった」と読んでいました。
実際には「最後まで落ちずに動いた」という意味でしかありません。
この2つは別のことです。途中で何もしなくても、落ちなければ「成功」になります。
もう1つ、当てにしていたものが外れました。実行にかかった時間です。
「1秒で終わっている日は、何もしていない日だろう」と考えていました。違いました。記録上ほぼ0秒と出ている日でも、中では30以上の処理が動いていました。時間は、中身が正常かどうかの手がかりになりませんでした。

監視はしていました。見ている場所が違いました
ここが、この件でいちばん学んだところです。
当社には監視の仕組みがあります。毎日決まった時刻に、お金や数字に関わる仕組みが動いているかを確認して、通知を出しています。異常がない日も「今日も正常でした」と届く形にしています。通知そのものが来なければ、監視ごと止まったと分かるようにするためです。
そこそこ考えて作ったつもりでした。
ですが、見ていたのは「落ちていないか」と「動いたか」でした。
「出来たものが、ちゃんと出ていったか」は、見ていませんでした。
落ちていない。動いている。だから、通知には何も出ません。監視が正常に機能しながら、事故を見逃していました。

見つけたのは、監視ではありませんでした
では、どうやって分かったのか。
別の調べ物をしていて、偶然気づきました。「そういえば最近これを見ていないな」と思って数えたら、2か月以上出ていなかった、という見つかり方です。
運が良かっただけです。
そして調べを進めると、同じ日に、まったく別の仕組みでも、同じことが起きていたと分かりました。1つの不具合ではなく、同じ作りをしているものすべてに共通する穴でした。
どう直したか
考え方を1つ変えました。
完了の条件を、「最後まで動いたこと」から「届いたこと」に変えました。
具体的には、こうしています。
1. 送信が成功したら、その記録を残させる
「いつ、何件、どこへ送ったか」を、送信のあとに必ず書き残すようにしました。記録が残っている=実際に届いたという意味になります。
2. その記録が無ければ、翌日に通知が飛ぶ
監視の側で、前日の記録を確認します。無ければ「つくったのに送っていない可能性があります」と知らせます。
3. 途中で崩れても、出来た分は必ず送らせる
きれいに完成しなかったときに、黙って終わるのが一番困ります。不完全でも出す。出せなかったら理由を書く。そう決めました。
「成功/失敗」の記録そのものは、仕組みの側が決めるもので、こちらでは変えられません。だから、自分たちで書く記録のほうを正にしました。

ただし、直したのは機械の側だけです
正直に書いておきます。
「つくったのに送っていない」は、これで翌日に分かるようになりました。
ですが「届いたのに、その先が動いていない」ほうは、まだ残っています。
そして残っているほうが、たぶん多くの現場で起きています。
仕組みを入れた。通知も届いている。それでも、最後の一歩を誰も踏んでいない。この状態は、機械をいくら直しても消えません。
私たちの場合も、機械の穴より、人のところで止まっていた期間のほうが長かったのが実際です。
道具を入れただけでは終わらない、というのは、こういうことだと思っています。
同じことは、たぶんそちらでも起きます
自動化した仕組みに限った話ではありません。
- 発注したつもりが、送信されていなかった
- 予約は入っていたが、店舗まで伝わっていなかった
- 本部への報告書はできていたが、出していなかった
どれも「やった側」の記録は残ります。やった本人は完了したつもりでいます。相手に届いたかどうかは、別に確かめないと分かりません。
そして届いていないことは、誰かが困るまで表に出てきません。私たちの場合は2か月半でした。
読んでくださった方へ
自動化するときに、最後に1つだけ決めておくことをおすすめします。
「終わった」とは、どうなった状態のことか。
動き終わったことなのか。相手に届いたことなのか。それとも、実際に使われたことなのか。
この3つを分けておかないと、エラーが1件も出ていないのに、何も起きていないという状態が生まれます。そしてそれは、誰も気づけません。
当社が「止まったら分かる状態をつくる」と言っているのは、こういうことです。壊れたときに直すことよりも、壊れたことに気づけるほうが、はるかに大事だと考えています。
今回は、自分たちがそれを体験しました。自社で先に転んだぶんは、お客さまのところでは転ばずに済みます。
株式会社PlusPass 代表取締役 平井 雄大