「成功」と記録されたまま、2か月以上止まっていました

自動化したものが動かなくなったとき、何を見ていれば気づけたのか

先日、自社で毎日つくっているものが、約2か月半のあいだ、1つも外に出ていなかったことが分かりました。

いちばん厄介だったのは、記録がずっと「成功」だったことです。

エラーは1件も出ていません。毎日きちんと動いて、毎日「成功」と記録されていました。その裏で、成果物は外に出ていませんでした。

自動化を仕事にしている会社が、自分のところでこれをやりました。同じことが起きうる方に、先にお伝えしておきたいと思って書いています。

調べたら、止まっていた場所は1つではありませんでした

その仕組みは、毎日こういう順番で進みます。

  1. 情報を集める
  2. 内容をつくる
  3. できたものを、決まった場所へ送る
  4. 人がそれを見て、外に出す

止まっていた場所は、1つではありませんでした。

機械の側。記録の中身を追える回をいくつか開いたところ、3番を呼ばないまま終わっている回がありました。下調べも制作も終わっているのに、送る手前で処理が終わっています。途中で落ちたわけではないので、最後まで動いた=成功と記録されます。

人の側。一方で、きちんと届いていた日もありました。届いていたのに、4番が踏まれないまま流れた日があります。

つまり、外に出なかった理由が2つあって、どちらも記録の上では問題なく見えていました。

4つの工程のうち、3番「送る」と4番「人が外に出す」で止まっていたことを示す図

なぜ2か月以上も気づかなかったのか

「成功」という記録の意味を、取り違えていたからです。

私たちは「成功」を「うまくいった」と読んでいました。

実際には「最後まで落ちずに動いた」という意味でしかありません。

この2つは別のことです。途中で何もしなくても、落ちなければ「成功」になります。

もう1つ、当てにしていたものが外れました。実行にかかった時間です。

「1秒で終わっている日は、何もしていない日だろう」と考えていました。違いました。記録上ほぼ0秒と出ている日でも、中では30以上の処理が動いていました。時間は、中身が正常かどうかの手がかりになりませんでした。

「成功」の意味と実行時間について、当てにしていたことと実際を並べた図

監視はしていました。見ている場所が違いました

ここが、この件でいちばん学んだところです。

当社には監視の仕組みがあります。毎日決まった時刻に、お金や数字に関わる仕組みが動いているかを確認して、通知を出しています。異常がない日も「今日も正常でした」と届く形にしています。通知そのものが来なければ、監視ごと止まったと分かるようにするためです。

そこそこ考えて作ったつもりでした。

ですが、見ていたのは「落ちていないか」と「動いたか」でした。

「出来たものが、ちゃんと出ていったか」は、見ていませんでした。

落ちていない。動いている。だから、通知には何も出ません。監視が正常に機能しながら、事故を見逃していました。

監視が見ていたもの(落ちていないか・動いたか)と、見ていなかったもの(出来たものが出ていったか)を並べた図

見つけたのは、監視ではありませんでした

では、どうやって分かったのか。

別の調べ物をしていて、偶然気づきました。「そういえば最近これを見ていないな」と思って数えたら、2か月以上出ていなかった、という見つかり方です。

運が良かっただけです。

そして調べを進めると、同じ日に、まったく別の仕組みでも、同じことが起きていたと分かりました。1つの不具合ではなく、同じ作りをしているものすべてに共通する穴でした。

どう直したか

考え方を1つ変えました。

完了の条件を、「最後まで動いたこと」から「届いたこと」に変えました。

具体的には、こうしています。

1. 送信が成功したら、その記録を残させる

「いつ、何件、どこへ送ったか」を、送信のあとに必ず書き残すようにしました。記録が残っている=実際に届いたという意味になります。

2. その記録が無ければ、翌日に通知が飛ぶ

監視の側で、前日の記録を確認します。無ければ「つくったのに送っていない可能性があります」と知らせます。

3. 途中で崩れても、出来た分は必ず送らせる

きれいに完成しなかったときに、黙って終わるのが一番困ります。不完全でも出す。出せなかったら理由を書く。そう決めました。

「成功/失敗」の記録そのものは、仕組みの側が決めるもので、こちらでは変えられません。だから、自分たちで書く記録のほうを正にしました。

完了の条件を「届いたこと」に変えるための3つの対処を並べた図

ただし、直したのは機械の側だけです

正直に書いておきます。

「つくったのに送っていない」は、これで翌日に分かるようになりました。

ですが「届いたのに、その先が動いていない」ほうは、まだ残っています。

そして残っているほうが、たぶん多くの現場で起きています。

仕組みを入れた。通知も届いている。それでも、最後の一歩を誰も踏んでいない。この状態は、機械をいくら直しても消えません。

私たちの場合も、機械の穴より、人のところで止まっていた期間のほうが長かったのが実際です。

道具を入れただけでは終わらない、というのは、こういうことだと思っています。

同じことは、たぶんそちらでも起きます

自動化した仕組みに限った話ではありません。

  • 発注したつもりが、送信されていなかった
  • 予約は入っていたが、店舗まで伝わっていなかった
  • 本部への報告書はできていたが、出していなかった

どれも「やった側」の記録は残ります。やった本人は完了したつもりでいます。相手に届いたかどうかは、別に確かめないと分かりません。

そして届いていないことは、誰かが困るまで表に出てきません。私たちの場合は2か月半でした。

読んでくださった方へ

自動化するときに、最後に1つだけ決めておくことをおすすめします。

「終わった」とは、どうなった状態のことか。

動き終わったことなのか。相手に届いたことなのか。それとも、実際に使われたことなのか。

この3つを分けておかないと、エラーが1件も出ていないのに、何も起きていないという状態が生まれます。そしてそれは、誰も気づけません。

当社が「止まったら分かる状態をつくる」と言っているのは、こういうことです。壊れたときに直すことよりも、壊れたことに気づけるほうが、はるかに大事だと考えています。

今回は、自分たちがそれを体験しました。自社で先に転んだぶんは、お客さまのところでは転ばずに済みます。

株式会社PlusPass 代表取締役 平井 雄大