「登録したはずなんですが、一覧に出てきません」。この一言から始まった調査が、いちばん勉強になりました。
何が起きたか
うちでは、社内の仕事を管理する画面を自分たちで用意しています。誰が何をやっていて、どれが終わっていないかを一覧で見るためのものです。
ある日、担当者が「対応中」として登録したタスクが、その一覧に出てこない、という報告が上がりました。
最初に疑ったのは登録ミスです。押し忘れ、保存し損ね、別の場所に入れた——よくある話です。ところが確認すると、データはきちんと「未完了」として保存されていました。消えてもいないし、完了扱いにもなっていない。それなのに、画面には出てこない。
これがいちばん気持ち悪いパターンでした。「無い」なら探しようがありますが、「有るのに見えない」は、どこを見ればいいのか分からないからです。
原因は「並び順」と「表示件数の上限」だった
腰を据えて追いかけて、ようやく分かりました。原因は2つの、それ単体では問題にならない仕様の組み合わせでした。
1つ目は、並び替えに使っている日付が空欄だったこと。
一覧は日付の新しい順に並べています。ところが、登録の入り口がいくつかあり、そのうち一部の経路を通ると、この日付が入らないまま保存されていました。日付が無いデータは、並び替えのとき常に最後尾に回されます。
2つ目は、一覧の表示件数に上限があったこと。
画面が重くならないよう、上位50件だけを表示する作りにしていました。
この2つが重なると、どうなるか。日付が空欄のデータは必ず最後尾に押しやられ、件数が増えるにつれて50件の枠から静かにあふれ、画面の外へ出ていく。データは存在しているのに、誰の目にも触れなくなる、というわけです。
しかも、これはエラーが出ません。システムから見れば、指示どおり日付順に並べて上位50件を出しただけ。何も壊れていないのです。
この件で持ち帰ったこと
自分の会社の別の仕組みにも当てはまると思ったのは、次の3つでした。
「保存できている」と「見えている」は別々に確認する。
私はこれまで、データが残っていれば安心だと思っていました。でも、業務で使うのは画面のほうです。残っているかの確認と、映るかの確認は、別々にやる必要があります。
入り口が複数ある仕組みは、入り口ごとに試す。
今回は「一部の登録経路だけ日付が入らない」という状態でした。一つの入り口で試して問題なければOK、としていたら永遠に見つかりません。増やした入り口の数だけ、確認する回数も増えます。
上限がある画面は、上限を超えたときに何が落ちるかを知っておく。
件数の上限自体は悪いものではありません。危ないのは、あふれたときにどれが消えるかを誰も把握していないことです。「上位50件」と決めるなら、51件目以降がどういう性質のものになるかまでを決めておく。
実務でできる小さな対策
技術的な話を抜きにして、明日からできる形にすると、こうなります。
- 一覧画面に「全体で何件あるか」の数字を出す。表示している件数と全体の件数がずれていれば、そこで気づけます。
- 入力欄で空欄のまま保存できないところを決めておく。特に、並び替えや絞り込みに使う項目は空欄を許さない。
- 新しい登録経路を足したら、必ず一覧に出るところまで見て確認する。保存の完了メッセージで終わりにしない。
まとめ
システムの不具合というと、エラー画面や動かなくなることを想像しがちです。でも実際にいちばん困ったのは、何のエラーも出さずに、静かに見えなくなるタイプでした。「データはあるのに画面に出ない」。この言い回しを覚えておくだけでも、次に同じことが起きたときの調べ方が変わると思います。
※本記事は、筆者が自社で使っている環境での一例です。システムの作りによって、原因も対処も変わります。同じ症状が出た場合は、まずデータが残っているかどうかの確認から始めることをおすすめします。

コメント