例外を処理する前に例外を知ること
「例外処理の安全確認を進める」
俺がそう告げると、管理者室の端末は、いつもの無愛想な文字で応答した。
『対象記録を指定してください』
「第七百九十九管理年度。管理者権限の例外処理。対象はエドガー・ヴァレンの勤務状態および報酬に関する記録だ」
『対象記録を確認しました』
画面に、例の記録が表示された。
作成者は空欄。
承認者は前任管理者。
承認日は記録されている。
適用対象は、管理者補佐の勤務状態および報酬。
そして、俺がまだ開いていない項目には、こう書かれていた。
例外処理の安全確認:未実施
「未実施か」
「はい。記録の閲覧と、処理の実行は別です」
隣でセシリアが答えた。
「ただし、この表示だけでは、閲覧によって何らかの処理が起きないとは断言できません。古い管理者権限の仕組みですから、現在の安全規則がそのまま適用される保証もありません」
「つまり、開けるボタンがあるからといって、押していいとは限らない」
「そのとおりです」
「便利な機械だな。職場に一台ほしい。上司の承認ボタンを押す前に、危険性を説明してくれるやつ」
「まず、上司が説明を読む必要がありますね」
「そこが一番難しいところだ」
レオンが咳払いをした。
「冗談は後にしてくれ。今回は何を確認する?」
俺は端末の画面を指した。
「例外処理を開いたときに、何が起こる可能性があるかだ。閲覧だけなのか、保留解除の判断が始まるのか、エドガーの勤務状態が自動更新されるのか。報酬の支給状態にまで影響するなら、なおさら慎重にやる」
ガルドが腕を組んだ。
「記録を見るだけで、八百年前の人間の給料が動くのか?」
「動くかもしれないし、動かないかもしれない。分からないから調べるんだ」
「給料の話になると、急に慎重だな」
「自分の給料でも他人の給料でも、支給条件が分からないままボタンを押すのは危険だ。あとで『システムが勝手に処理しました』と言っても、家賃の大家は待ってくれない」
ミレイが記録用紙を広げた。
「確認項目を整理しましょう。第一に、閲覧時の自動処理。第二に、勤務状態への影響。第三に、報酬への影響。第四に、封印系統や補佐権限への影響。第五に、操作を取り消せるかどうか」
「第六に、操作した記録が残るか」
俺が付け足すと、ミレイは頷いた。
「誰が、いつ、何をしたか。そこが残らなければ、安全確認そのものができません」
俺たちは、例外処理の記録をいったん閉じた。
まず、端末の操作履歴から、過去に同じ種類の例外処理が使われた事例を探す。該当する記録がなければ、当時の運用規則を調べる。それでも不明な点が残るなら、王立封印監察局に照会する。
順番としては地味だが、地味な仕事ほど事故を減らす。
派手な魔法で扉を吹き飛ばすのは、物語なら見せ場になる。しかし、吹き飛ばした扉の修理費を払うのは、だいたい現場の人間だ。
「過去の類似処理を検索する」
端末に命じると、しばらくして検索結果が表示された。
『該当する完全一致記録:なし』
『関連する管理者権限例外処理:三件』
「三件もあるのか」
「完全一致ではありません。対象となった業務が異なります」
セシリアが画面を拡大した。
一件目は、設備の一時停止に関する例外処理。
二件目は、管理区域への立ち入り制限。
三件目は、管理者補佐の権限変更。
どれも、今回の記録と一部の項目が共通していた。
「この三件について、閲覧時に実行処理が発生したか確認できますか?」
セシリアが端末に尋ねた。
『一件目:閲覧時の実行処理なし。確認済み』
『二件目:閲覧時の実行処理なし。確認済み』
『三件目:閲覧時の実行処理記録なし。閲覧時の実行処理が存在しなかったことは確認できません』
「三件目だけ、記録が足りないのか」
「はい。記録がないことと、処理がなかったことは同じではありません」
ミレイが静かに言った。
「しかも、三件目は管理者補佐の権限変更。今回の記録と最も近い」
俺は画面の文言を手帳に写した。
閲覧時の実行処理記録なし。実行処理が存在しなかったことは確認できない。
役所の文書にしては、妙に正直な書き方だった。
「少なくとも、閲覧すれば安全だとは言えないな」
「そうですね。ですが、危険だと確定したわけでもありません」
セシリアは続けた。
「次は、当時の例外処理規則を確認しましょう。閲覧と実行の権限が分離されていたかどうか。現在の端末で再現試験を行うなら、実際の記録ではなく、複製した試験記録を使うべきです」
「複製できるのか?」
「原本の権限情報まで複製できるとは限りません。そこも確認が必要です」
「分かった。じゃあ、複製できるか調べる前に、複製によって原本に影響が出ないか調べる」
ガルドが眉をひそめた。
「いつになったら、その記録を読むんだ?」
「安全だと分かってからだ」
「その間に、何かが起きたら?」
「起きたことを記録する。だが、起きるかどうか分からないものを、わざわざ起こしに行く理由はない」
ガルドは納得したのか、していないのか分からない顔で黙った。
俺も、慎重さが常に正解だとは思っていない。調べる時間が長引けば、その分だけ必要な判断も遅れる。だからこそ、確認する範囲と期限を決める必要がある。
「まず一時間、当時の規則と操作仕様を調べる。それで安全性を判断できなければ、監察局に正式な立ち会いを求める。無期限に先延ばしにはしない」
ミレイが時刻を記録した。
「確認作業の開始時刻を残しました」
「よし。あと、エドガーの停止申請が保留された理由も、並行して照会する。例外処理の安全確認と、保留の理由確認は別の問題だ。混ぜると、どちらも進まなくなる」
レオンは頷き、監察局への追加照会を始めた。
そのとき、端末の隅に小さな通知が浮かび上がった。
『関連記録を検出しました』
俺たちは一斉に画面を見た。
『記録分類:例外処理の実行条件』
『閲覧区分:管理者レベル五』
『安全確認:未完了』
「またか」
思わず声が出た。
「今度は何だ?」
レオンが身を乗り出す。
俺は詳細を開かず、まず表示された情報だけを確認した。
記録の作成日は、七百九十九管理年度。
作成者は、やはり空欄。
承認者は、前任管理者。
そして、実行条件の概要欄には、一文だけ表示されていた。
『対象者の勤務状態が確定した場合、例外処理の再審査を開始する』
俺はしばらく、その一文を見つめた。
「勤務状態が確定した場合……」
「エドガーの状態を確定すると、再審査が始まるという意味でしょうか?」
ミレイが尋ねた。
「可能性はある。ただし、再審査が何をするのかは分からない。報酬の保留を見直すのか、停止申請を処理するのか、それとも別の何かなのか」
「つまり、勤務状態を確認すること自体が、例外処理の開始条件になっている可能性がある」
セシリアが言った。
「そうだ。だから俺たちは、エドガーが現在どういう状態なのかを確認しようとしている一方で、その状態を確定した瞬間に何が起こるかも確認しなければならない」
面倒な仕組みだった。
本人の状態が分からないから確認したい。
だが、確認結果を確定すると、未処理の仕組みが動くかもしれない。
しかも、その仕組みを安全に調べるための記録まで、まだ安全確認が済んでいない。
書類の中に書類があり、その中に未処理があり、未処理の中に別の未処理がある。
八百年前の職場にも、書類を増やすことで仕事をした気になる人間がいたのだろうか。
いや、今の職場にもいる。歴史は長い。
俺は、勤務状態を確定する操作を保留したまま、新しい記録の存在を調査台帳に追記した。
それから、エドガーの補佐権限を通じて届いたメッセージのことを思い出した。
――その記録を読む前に、私の停止申請が保留された理由を確認してください。
あのメッセージは、今回見つかった実行条件を知っていたのだろうか。
それとも、単に自分の停止申請が未処理のまま残っていることを知っていただけなのか。
発信元が本人なのか、権限に残った自動応答なのかも分からない。
俺は、その疑問を結論に変えず、確認事項として記録した。
「次の手順を決める。例外処理の実行条件は開かずに、まず閲覧仕様を確認する。並行して、停止申請の保留理由と、再審査の担当者が存在するかを調べる。エドガーの勤務状態は、まだ確定しない」
「B―七は?」
ガルドが尋ねた。
「開けない。今のところ、開ける必要性より、開けた場合の不明点のほうが多い」
俺は記録を保存した。
画面には、未処理の項目が三つ並んでいた。
停止申請の保留理由。
例外処理の安全確認。
勤務状態の確定条件。
どれも重要だが、順番を間違えれば、確認する前に何かを動かしてしまうかもしれない。
だから、順番を決める。
それが、管理者の仕事だ。
少なくとも、俺はそういう仕事だと思うことにした。
おっさんの処世術
「閲覧」と「実行」は別物だと考える。 画面を見るだけのつもりでも、仕組みがどう動くか確認するまでは安心しない。
記録がないことを、何も起きなかった証拠にしない。 欠落は欠落として扱い、都合のいい結論で埋めない。
安全確認には範囲と期限を設ける。 慎重さは大切だが、無期限の先延ばしも別の危険を生む。
同時に進める仕事ほど、目的を分けて記録する。 停止申請の理由と例外処理の安全性を混ぜると、問題の所在がぼやける。
何かが起こる条件を知ったら、条件を満たす前に立ち止まる。 ボタンを押してから説明書を読むのは、だいたい遅い。




