研修 · レッスン7

自動化が動かないとき、どこを見るか

システムが壊れたと分かる一番わかりやすい合図は、エラーが出ることです。難しいのはエラーを出さずに間違って動く場合で、画面上は問題なく見えるのに、出てくる結果が静かに間違っています。この講では、そのときどこをどの順で見るかを扱います。

このレッスンで学ぶこと

このレッスンは、作った自動化が思ったとおりに動かなくなった瞬間を扱います。目的は、問題を当てずっぽうで はなく順序立てて絞り込んで見つけ、見つけた直しを長持ちさせることです。診断がシステムを作った人に 頼らなくなり、事業自身の技になったとき、自動化は立ち続けます。

レッスンを終えると、診断の順序、書き込んだ不具合票、そして直しが効いたことを示す確認の手順が手元に 残ります。この三つがないまま手を入れると、二つ目の不具合を生むことが多いです。

学習目標

  • 不具合の三つの型を見分ける: 止まった、静かな、遅くなった
  • 症状を推測と切り離せる形で書く
  • 不具合を再現できるようにする
  • フローを半分に切って探す範囲を狭める
  • 五つの部分を順に当たる: きっかけ、データ、条件、連携、出力
  • 一度に一つだけ変え、確認し、直しを長持ちさせる

前提: 第1レッスンのプロセス地図。不具合を探すあいだ突き合わせる、書かれた期待がそれです。

不具合の三つの型

動かないという一言は三つの違う状況をまとめて指しており、三つとも診断の出発点が別です。話の初めにどの型かを切り分けておくと、探す範囲はその場で狭まります。

止まったフロー

自動化がまったく動きません。きっかけが届かないか、最初の手順で落ちます。症状が目に見え、記録に跡を残すことが多いので、いちばん扱いやすい型です。

静かな不具合

フローは動き、記録も作り、警告も出ないのに、結果が誤っています。誤りが何週間も積もり、気づいたときには遡って片づける必要が出るため、いちばん高くつく型です。

遅くなったフロー

結果は正しいのに、間に合いません。多くは単一の不具合ではなく、たまった負荷か新しく入った手順です。測定がないと、この型は議論のまま残ります。

三つに共通するのはこうです。期待が書かれていないかぎり、不具合は定められません。こうなるはずではなかったという言葉は、こうなるはずだったという記述なしには診断になりません。

静かな不具合とは?

自動化が音を立てて壊れることはまれです。エラーの表示も出ず、赤も点かず、フローは緑に見えます。それでも出力は誤っています。メッセージが違う人に届き、項目が空のままで、記録が二重に立ち、日付が別の形式で書かれます。

静かな不具合の元は、たいてい入力が形を変えたことです。フォームに新しい項目ができ、ポータルが電話番号を 別の形で送り始め、ある社員が項目を違うふうに埋めます。規則はそのままで入力が変わり、結果が静かに ずれていきます。

静かな不具合のしるし

  • 記録の数が見込みより少ない、または多い
  • 同じ顧客に記録が二つ立っている
  • ある項目がいつも空で入ってくる
  • メッセージは出ているのに返信の割合が下がった
  • チームが出力を手で直し始めた
  • 誰も苦情を言わないのに、誰もシステムを信じていない

最後の項目がいちばん重いです。チームが出力を手で直し始めた時点で、システムはすでに壊れています。誰も知らせなかったので、不具合はどの記録にも入っていません。

診断の前に: 何が変わったか?

昨日動いていたものが今日動かないなら、その間に何かが変わっています。診断の最初の問いがこれで、不具合の多くはこの問いで閉じます。変更の一覧を残していない場所では、同じ問いに何時間もかかります。

変化はシステムの中だけで起きるのではありません。プロセスでも、人でも、入力でも起きます。社員が辞めた、ポータルが項目名を変えた、取引先がファイル形式を新しくした、ということがあり得ます。コードの内側からではなく、この一覧から探し始めてください。

何が変わったかを当たる場所

  • システム: 新しい手順、更新、新しい連携、変わった設定
  • 入力: フォームの項目、ファイル形式、項目名、文字の種類
  • プロセス: 新しい規則、外された承認、変わった順序
  • 人: 入った社員、辞めた社員、引き継がれた役割
  • 外側: ポータル、銀行、配送、提供元の側の変更
  • 時間: 期末、休日、増えた負荷

手順1: 症状を書く

診断は症状を書くところから始まります。動かないは症状ではなく、感じです。症状とはこうです。どの記録で、いつ、何を期待していて、代わりに何が起きたか。この四つが埋まるまで探す範囲は狭まりません。

症状を書くとき、期待した結果は第1レッスンのプロセス地図から取ってください。地図がなければ先にそれを 書きます。書かれた期待のない診断は、人の記憶とシステムの動きを突き合わせる作業になります。

不具合票

  • どの記録、どの顧客で見られたか?
  • いつ起きて、いつ最初に気づいたか?
  • 期待した結果は何で、プロセス地図のどの手順か?
  • 代わりに何が起きたか?
  • いくつの記録に出ているか: 一つか、全部か、一部か?
  • この日付より前は動いていたと分かっているか?

最後の二問が診断の向きを決めます。一つの記録だけなら問題は入力の側にあることが多く、全部なら規則に、一部なら条件にあります。

手順2: 不具合を再現する

再現できないものを直さないでください。望んだときに不具合を繰り返してくれる例が手元にないと、加えた変更が効いたかどうかも示せません。直ったと思われている不具合の多くは、その日たまたま繰り返さなかった不具合です。

再現するとは、同じ記録を試験用の場か、害のない例で通すことです。動いているシステムで試す必要があるなら、戻せる手順を選び、試すことをチームに前もって伝えてください。

再現の稽古

  • 不具合の出た記録とその入力を別に控えておく
  • 同じ入力でフローを最初から走らせる
  • 不具合が繰り返すなら、測れる例が手に入ったということ
  • 繰り返さないなら、入力ではなく時刻、順序、負荷を変えて試す
  • まったく繰り返さないなら条件つきの不具合: どの条件で出るかを探す

手順3: フローを半分に切る

探す範囲を狭めるいちばん速い道は、フローを真ん中で切ることです。フローの途中のある点で、データは 正しいですか、誤っていますか。正しければ不具合は後半に、誤っていれば前半にあります。一度切るごとに、調べる範囲は半分になります。

この方法は道具に関わりなく働きます。記録の画面でも、中間の表でも、送られたメッセージでも、システムが残した記録でも、問いは同じです。データはここまで正しく届いたか。

切るときの問い

  • きっかけは本当に動いたか、記録はできたか?
  • フローに入ったデータは、入った時点で正しかったか?
  • 真ん中の手順の出力は期待した形か?
  • 条件はどちらの道へ行ったか、期待した道か?
  • 最後の手順は呼ばれたか、どんな応答が返ったか?

切るたびに結果を書いてください。書かれない切り分けは繰り返され、同じ場所を二度見ることで診断が 長引きます。

手順4: 五つの部分を順に当たる

範囲が狭まったら、第1レッスンの五つの部分を順に当たってください。下の六つの元は現場でいちばんよく 出会うもので、診断の多くはこの中で閉じます。

1 きっかけ

出来事がそもそも届いていないことがあります。接続が切れた、権限の期限が切れた、宛先が変わった、などです。記録ができていないなら、不具合はフローの中ではなく入口にあります。

2 入力の形式

いちばん多い元です。項目名が変わった、日付が別の形式で来る、先頭のゼロが落ちた、空白や大文字の違いが出た、ということがあります。

3 条件

新しい場面が現れ、書かれた道の外に落ちたことがあります。条件の外の記録はたいてい静かに落ちます。その記録のために書かれた道がないからです。

4 権限と接続

パスワードが変わった、鍵の期限が切れた、利用者が消された、ということがあります。この型の不具合はある日突然始まり、前ぶれを出しません。

5 順序と時間

二つの手順が違う順で動いた、あるいは一方が他方のデータを待たずに始まったことがあります。忙しい時間に出て静かな時間に出ない不具合は、たいていここにあります。

6 相手のシステム

受け取り側が受けつけなかったことがあります。項目が必須になった、上限が埋まった、形式が拒まれた、などです。返ってきた応答を読まないと、この不具合は黙ったままになります。

手順5: 一つだけ変えて、確かめる

いくつものことを同時に変えないでください。二つ変えて結果が良くなれば、どちらが良くしたのか分からず、悪くなれば、どちらが壊したのか分かりません。その時点で診断はまた当てずっぽうに戻ります。

変えるたびに、手順2の例をもう一度通してください。確認は、不具合が消えたことと同じくらい、他が壊れていないことも含みます。そのために、直す前にどの記録が正しく動いていたかを書き留めてください。

確認の順序

  • 不具合票の例をもう一度通す。結果は期待どおりか?
  • 以前正しく動いていた例を二つ通す。いまも正しいか?
  • 条件のもう一方の枝も試す。そちらが壊れていることがある
  • 例外の道を試す: わざと誤った入力を与える
  • 結果を日付とともに書き、誰が何を変えたかを残す

手順6: 直しを長持ちさせる

不具合を取り除くのは仕事の半分です。もう半分は、同じ不具合が再び静かに生まれないようにする目印を 置くことです。これをしないと、同じ診断を数か月後にまた最初からすることになります。

長持ちは三つから来ます。不具合が現れる場所での知らせ、入力の境目を当たる点検、そして定めた例外の道です。三つとも自動化の中に収まり、別のシステムを求めません。

長持ちさせる手順

  • 期待した結果ができないときに知らせる仕組みを足す
  • 必須の項目が空ならフローを止め、記録を待ちに回す
  • 例外の道を書く: 記録はどこで待ち、誰が引き継ぐか
  • 不具合票と解決を覚え書きとして残す
  • プロセス地図を新しくし、変わった規則を書き入れる
  • 同じ不具合が他のフローにもないかを当たる

通しの例: 見積もりメールが出ない

方法を一つの不具合の上で最初から最後までたどってみましょう。例は営業のフローを通りますが、順序はどのフローでも同じです。

症状から長持ちする直しまで

症状: 新しく問い合わせた顧客に見積もりメールが届いていません。営業チームが先に 気づき、先週のうちに何人かの顧客が返事を待っていたと言います。記録は作られているように見えます。

何が変わったか: ここ二週間でフォームに新しい項目が加わり、ポータル側でも更新が ありました。候補は二つです。

再現: 影響を受けた記録の一つを同じ入力でもう一度通します。不具合が繰り返すので、測れる例が手元にあります。

半分に切る: フローの真ん中の表を見ます。記録はありますが、メールアドレスの項目が 空です。つまり不具合は前半、入力の側にあります。

五つの部分: 入力の形式を見ます。フォームに加わった新しい項目が、メールの項目名を 変えていました。フローは古い名前を探して見つけられず、空の値を渡し、メールの手順が静かに落ちます。

一つだけ変えて確認: フローが新しい項目名を読むように直します。不具合の例をもう一度 通すとメールが出ます。以前正しく動いていた記録も二つ通し、そちらも正しいままです。

長持ち: メールの項目が空ならフローは止まり、記録は待ちに回り、責任者に知らせが 行きます。プロセス地図の項目名を新しくします。同じ項目を使う別のフローも当たって直します。

練習: 診断の予行

診断は、不具合が出た日に学ぶ技ではありません。静かな日に予行しておけば、必要な日に手元で使えます。下の練習はそのためのものです。

今週やること

  • 動いているフローを一つ選び、そのプロセス地図を手元に置く
  • わざと誤った入力を与える: 必須の項目を空のままにする
  • フローが何をするか見る: 止まったか、静かに通ったか?
  • 不具合票を埋め、四つの欄をすべて書く
  • フローを半分に切り、データがどこで壊れたかを見つける
  • 見つけた点に知らせか点検を足す

静かに通ってしまうフローは、のちに静かな不具合を生むフローです。この練習は、たいていの事業で 少なくとも一つを表に出します。

診断チェックリストをダウンロード(xlsx) · 不具合カード、何が変わったか、流れを半分に分ける、五つの部品の点検、長もちする直しの手順。

よくある間違い

いきなり規則を見る

最初に見られるのはたいてい規則ですが、いちばん多い元は入力です。規則が昨日から変わっていないなら、変わったのはそこへ届くデータのほうです。

一度にたくさん変える

二つ変えて結果を見ても診断は終わらず、かえってぼやけます。どの変更が何をしたのか分からず、直しも繰り返せなくなります。

再現せずに直す

繰り返せない不具合に加えた直しは確かめられません。不具合はしばらく姿を消し、その後同じ場所から戻ってきます。

記録を読まない

たいていのフローは自分がしたことをどこかに書いています。記録を読まない診断は、システムの言い分を聞かずに当てにいくことです。

症状を書かない

口伝えの症状は伝わるたびに変わります。書かれない症状は、二人が二つの違う不具合を探す診断になります。

直して次へ行く

知らせと点検を足さずに閉じた不具合は、同じ形で戻ってきます。二度目には診断を最初からやり直し、信頼がもう一段すり減ります。

チェックリスト

不具合を閉じる前に、下の項目すべてにはいと言えるほうがよいです。欠けた項目があるなら、その不具合は閉じたのではなく先送りされています。

不具合を閉じるチェックリスト

  • 症状を四つの欄で書いた: 記録、時刻、期待、実際
  • 何が変わったかを尋ね、答えを書いた
  • 不具合を再現できた
  • フローを半分に切って不具合の点を見つけた
  • 変更は一つだけにした
  • 直しを確かめ、以前動いていた場合も試した
  • 知らせ、点検、例外の道のいずれかを足した
  • プロセス地図を新しくし、覚え書きを残した

用語集

診断の話に出てくる用語です。チームで言葉がそろうと、不具合の引き継ぎが速くなります。

次に来るもの

このレッスンでは不具合を順序立てて絞り込み、直しを長持ちさせることを扱いました。不具合の大きな部分が入力の側から出ることも見てきました。

課程の残りのモジュールは準備中です。公開され次第、課程の中のそれぞれの場所に入り、研修のページに現れます。

レッスン8: 例外と不具合の扱い

例外記録簿、知らせの道、静かな不具合を見えるようにする測り。

レッスン3: 顧客データを正しく集める

項目辞書と書き方の規則。不具合の多くはこちら側で始まります。

すべてのレッスン

研修セクションの全体と、あとから加わったモジュール。

システムが静かに間違って動いている疑いがあれば、ご連絡ください。一緒に見ていきます。

WhatsAppでお見積もり

よくある質問

エラーの出ないシステムが壊れているとどう分かりますか?
出力を数えることで分かります。見込んでいる結果の件数と、実際に作られた件数を定期的に突き合わせてください。この二つの数の差が不具合の最初の兆しです。画面に何も出ていなくてもです。
記録を読むだけで足りますか?
足りないことが多いです。記録はシステムが何をしたかを書きますが、何をしなかったかは書きません。一度も動かなかった手順は跡を残しません。ですから出力を数えることが記録を読むことの隣に必要です。
直したけれど確信が持てません。どうすればよいですか?
不具合を意図して呼び戻してみてください。以前のようには出てこないなら、直しは持ちこたえた見込みが高いです。そのまま出てくるなら、その変更は原因ではなく症状を塞いだことになります。
一度に複数を変えるのは問題ですか?
たいていは問題です。二つを一緒に変えると、どちらが効いたのか見分けられません。一度に一つずつ変えるのは見立ての最中は遅く見えますが、答えには早く着きます。
この進め方はどの道具に当てはまりますか?
道具は問いません。入力、規則、出力という順序は、表計算でも自動化の流れでも同じように通ります。変わるのは見る画面の名前だけです。