テストは全部通っていた。それでも7つ見つかった
AIに作らせたものは、自動のチェックが全部通っていても、出す前に一度、人が最後まで通しで触ってください。自動のチェックが守っているのは正しさだけで、見えるか・押せるか・伝わるかは守っていません。実際に見つかった不具合は7件とも、画面を開いて押したときにしか出ませんでした。
<先に結論>
AIに作らせたものは、自動のチェックが全部通っていても、出す前に一度、人が最後まで通しで触ってください。自動のチェックが守っているのは正しさだけで、見えるか・押せるか・伝わるかは守っていません。
AIに何かを作らせると、最後に報告が返ってきます。「チェックは全部通りました」。この報告そのものは正しいことが多い。ただし、何を確かめた報告なのかは、たいてい書かれていません。
**お知らせを一斉に送り、送ったものをあとから読み返せるページに載せる。**そういう道具を1つ仕上げたときのことです。自動のチェックは最後まで全部通っていました。それでも、そのあとに見つかった不具合が7件あります。7件とも、実際に画面を開いて押したときにしか出ませんでした。
出たのは、こういう種類のものだった
見つかった中身を並べます。
- 画面には見えているのに、押せないボタンがあった
- 操作の結果を知らせる文が、画面のはるか上のほうに出ていた。読む人の目に入る位置ではない
- あとから増える部分だけ、見た目の指定が当たっていなかった。最初から置いてある部分は正しく、増えたものだけが崩れる
- 想定外のことが起きたとき、読む人の画面に英語のままエラーが出る
どれも動かないわけではありません。呼び出せば正しい答えが返ってきます。だから自動のチェックは通ります。通ったうえで、使えない。
自動のチェックが見ているものは、案外せまい
自動のチェックがやっているのは、部品を呼び出して、返ってきた答えが想定どおりかを比べることです。
この形で確かめられるのは、正しさです。入れた値に対して、出てくる値が合っているか。金額の計算、日付の判定、保存した内容がちゃんと読み出せるか。ここは人が目で追うより自動のほうが強い。何度でも、漏れなく、同じ精度で確かめられます。
ただしこの形では、画面を描いていません。描いた画面を目で見てもいないし、指で押してもいない。ですから次の4つは、原理的に守備範囲の外にあります。
| 守備範囲の外にある4つ | 何を確かめるものか | なぜ自動のチェックの外なのか |
|---|---|---|
| 見えるか | 出てはいるが、目に入る場所にあるか | 画面を描いていないから |
| 押せるか | 表示されているが、実際に反応するか | 指で押していないから |
| 伝わるか | 出た文が、読む人の言葉になっているか | 出た文が読む人に伝わるかは判断しないから |
| あとから増えたものにも効くか | 最初から置いてある部分だけで確かめていないか | 最初の状態しか作らないから |
先の7件は、全部このどれかでした。自動のチェックの外側にしか残らない種類の不具合なので、そこに集まったと考えるほうが自然です。
内側は何度でも自動で確かめられる。外側は、人が画面を開いて押すまで誰も見ていない。
止めたのは、出す前に一度、通しで触ったこと
7件が世に出なかった理由は単純で、出す前に人が画面を開いて、最後まで押したからです。
このとき効いたのは、業務の1巡を最後まで通したことでした。今回で言えば、次の順番に押していきました。
| 1巡の位置 | 押すもの | ふだんの触られ方 |
|---|---|---|
| 前半 | 送る → 載る | 作った直後に必ず触る。ここで「動いた」と思って止まりやすい |
| 後半 | 直す → 直した記録が見える → 消す | めったに使わないぶん作りが薄く、しかも「あとから増えた部分」が集まる |
機能を1つずつ押す形だと、たいてい前半で止まります。作れた、出せた、まあ大丈夫だろう、と。ところが不具合は後半に多く出ます。
もう1つ。触る人は、作った本人でなくて構いません。 ただし少なくとも1回、実物の画面が要ります。設計の意図を知っている人が触ると、押せないボタンを無意識に避けてしまいます。知らない人が触れば、そこで止まる。止まったこと自体が結果になります。
自動のチェックを減らす話ではありません
念のため書いておきます。これは「自動のチェックは当てにならない」という話ではありません。
正しさの確認は、自動のほうが向いています。人が毎回すべての計算を手で追うことはできません。この7件の中に、計算や保存の正しさに関わるものはありませんでした。自動のチェックが効いていたからこそ、残ったものが4つの型に集中したとも言えます。
守備範囲の違う2つを、両方置く。それだけです。
| 自動のチェック | 出す前に人が通しで触る | |
|---|---|---|
| 守るもの | 正しさ(入れた値に対して、出てくる値が合っているか) | 見えるか・押せるか・伝わるか |
| 強いところ | 何度でも、漏れなく、同じ精度で確かめられる | 実物の画面で、止まる場所がそのまま出る |
| 回数 | 作っている間ずっと | 出す前に1回 |
AIに作らせるときは、報告の読み方が変わります
ここが実務で効くところです。
AIに作らせると、「テストが全部通りました」という報告が返ってきます。これを「完成しました」と読むと、4つの型がそのまま外に出ます。この報告は、正しさについての報告です。 それ以上のことは言っていません。
ですから、受け取り方をこう変えます。
「全部通りました」→「正しさは確認できたのですね。では、開いて押したときはどうですか」
そのうえで、自分で1回触る。作らせる速さが上がるほど、この一手の重みは増します。作る時間が短くなっても、画面を人が見る時間は短くならないからです。
なお、先日書いた見張りの話は、出したあとに動かすものでした。今回の通しで触る一手は、出す前に置くものです。時点が違うので、どちらかで代わりにはなりません。
まとめ
- 自動のチェックが守るのは正しさ。見えるか・押せるか・伝わるかは守らない
- 外側に残るのは4つの型。目に入らない位置に出る/押せない/読む人の言葉になっていない/あとから増えた部分にだけ効いていない
- 出す前に、業務の1巡を最後まで通しで押す。送る→載る→直す→履歴→消す。不具合は後半に多い
- 触る人は作った本人でなくてよい。知らない人のほうが、むしろ止まる
- 自動のチェックは減らさない。守備範囲の違う2つを両方置く
今日のアクション
- いま「チェックが通ったので大丈夫」としているものを1つ選ぶ
- その業務の1巡を、最後まで実際に押してみる(終わりのほうの動きまで飛ばさない)
- 目に入らない・押せない・英語のまま出る、が1つも無いか確かめる