第11話「仕様通り」
システムエンジニアの世界には、「単一障害点」という用語がある。
そこが壊れれば、システム全体が停止してしまう致命的な弱点のことだ。
通常それはサーバーや回線のことを指すが、現場において「一人に仕事が集中している」状態こそが、最も脆弱な弱点であることが多い。
都内のデータセンター。
無機質なサーバーの稼働音が響く寒々しい部屋で、システム管理者の三田村は、死人のような顔でモニターを見つめていた。目の下の隈は濃く、デスクには空になった栄養ドリンクの瓶が林立している。
「……アラート確認。データベース、応答遅延なし……」
彼は独り言のように呟き、震える手でログを打ち込んでいく。
この現場は、ある金融機関の決済システムを管理している。
24時間365日、止まることは許されない。
だが度重なる仕様変更と人員削減で、現場は崩壊寸前だった。
複雑怪奇なシステムを完全に把握しているのは、もう三田村しかいない。
「三田村さん、これどうすればいいですか?」
「あー、それは僕がやる。手順が複雑だから……」
「三田村さん、トラブルです!」
「待ってて、今行く……」
彼はもう三日間、家に帰っていない。
睡眠時間は机での仮眠が二、三時間程度。
それでも彼は止まれない。
「自分が倒れたらシステムが止まる」という責任感と恐怖が、彼を突き動かしていた。
そんな限界の現場に、織部悟がヘルプデスクの増員として派遣されてきた。
「……データ照合、完了」
織部は着任早々、与えられた端末で静かに作業をこなしていた。
だが彼の目は画面の向こうではなく、この現場の「構造」を見ていた。
――リソースの偏りが酷い。
――メインプロセッサ【三田村】の使用率が常に100%に張り付いている。
冷却期間がない。
熱暴走まで、あと数日か。
織部は休憩室で栄養補給用のゼリーを啜っている三田村に声をかけた。
「三田村さん。先月の勤務表を見ました。残業時間が二百時間を超えています」
「……ああ、まあね。でも、やるしかないから」
三田村は力なく笑った。
「僕が休むと、みんなが困るんだよ。このシステム、癖が強くてね。僕以外のアカウントじゃ触れない領域があるんだ」
「それは仕様ですか?」
「いや、運用の慣例かな。……マニュアル化しようとしたけど、忙しすぎて時間がなくて」
三田村はまた呼び出され、ふらふらとサーバー室へ戻っていった。
織部はその背中を見送りながら冷たく思考した。
――非効率だ。
――特定の個体に依存したシステムは、その個体の停止と共に死ぬ。リスク管理として最悪の設計だ。
翌日の午後。
珍しく居眠りをしている三田村を起こし、織部は休憩室に彼を呼び出した。
「三田村さん。一つ確認させてください。今夜の深夜バッチ処理、コマンドの手順を教えていただけますか?引き継ぎ資料がなければ、いざという時に誰も対応できません」
三田村は一瞬警戒したが、疲労が判断力を削いでいた。
この数日、自分が倒れた後のことを考えていなかった事実に気づき、むしろ安堵したように口を開いた。
「……そうだな、確かに誰かに知っておいてもらわないと。じゃあ、見てて」
三田村はおもむろにキーボードを叩き始めた。
深夜バッチの起動コマンド、パラメータの意味、エラー時の対処フロー。
それを見ながら、織部は横で黙々とメモを取った。
実際には記録しているのはコマンドだけではない。
三田村の画面操作から、管理者領域へのアクセスルートが透けて見えていた。
杜撰な権限設定。
ヘルプデスクアカウントと管理者アカウントの分離が、名ばかりになっている箇所がある。
――入口が見えた。
「ありがとうございます。これで、万が一の際も対応できます」
織部は自分の端末に戻ると、三田村から教わった手順をもとに、慎重にシステムのアカウント管理画面を開いた。
本来ヘルプデスク権限では届かない領域だったが、三田村が意図せず示したアクセスルートを辿れば、そこまで届く。
彼が行うのはハッキングではない。システムの「仕様」を、本来あるべき姿に戻す作業だ。
*
翌日の深夜二時。
三田村はいつものように、深夜バッチ処理【データの締め作業】を開始しようとしていた。
意識が朦朧とする中、慣れた手つきで管理者パスワードを入力する。
『AccessDenied(アクセス拒否)』
「……え?」
赤い警告文字が表示された。
入力ミスか?
三田村はもう一度、慎重に入力した。
『AccessDenied』
『アカウントはロックされています』
「な、なんだこれ……!?」
三田村の眠気が吹き飛んだ。
自分が締め出されたら、今夜の処理が止まる。
決済システムに支障が出る。
彼は慌てて別の端末を操作したが、結果は同じだった。
彼のアカウントだけが、システム全体から拒絶されている。
モニターに、見慣れないポップアップウィンドウが表示された。
『エラーコード:SYS-09』
『連続稼働時間が安全規定値を超過しました。安全保護のため、強制休止モードに移行します』
『ロック解除まで残り時間:47時間59分』
「保護……?休止……?」
三田村は呆然とした。
そんな機能、実装した覚えはない。
背後で、いつの間にか出社していた織部が立っていた。
「織部くん!大変だ、システムがおかしい!僕のアカウントが入れない!」
「正常です」
織部は淡々と答えた。
「労働基準法および社内セキュリティ規定に基づき、設定を変更しました。月間稼働時間が規定値を超えたアカウントは、判断能力が低下した『セキュリティリスク』とみなされ、四十八時間の非アクセス期間【休暇】を経なければ再ログインできません」
「なっ……!そんな勝手なことを!今夜のバッチはどうするんだ!止まるぞ!」
「止まりません。その作業は、標準化しました」
織部は自分の端末を操作し、エンターキーを叩いた。
画面上のプログレスバーが動き出し、三田村が手動でやっていた複雑な処理が、自動スクリプトによって高速で処理されていく。
「昨日あなたが教えてくれた手順をもとに、一晩で自動化しました。
あなたの属人化していた手順は、すべてスクリプト【自動化プログラム】に置き換えられています。
誰がボタンを押しても同じ結果になります」
「で、でも、トラブルが起きたら……」
「起きません。あなたが疲労状態で操作するより、プログラムの方が正確です」
織部は三田村の方を向いた。
「アカウントはロックされました。あなたにできる操作は何もありません。……ここにいても、電力と酸素の無駄です」
「……」
「帰って寝てください。これは『仕様』です」
三田村は膝から崩れ落ちそうになった。
怒りよりも、張り詰めていた糸が切れたような脱力感が襲ってきた。
自分がいないと回らないと思っていた世界が、自分のいないところで、自分よりも正確に回っている。
それは残酷な事実だったが、同時に彼を縛り付けていた鎖を断ち切るものでもあった。
「……ああ、そうか。……帰って、いいのか」
「帰るしかありません。四十八時間は、あなたはシステムにとって不要な存在ですから」
三田村はふらふらと立ち上がり、ロッカーへ向かった。
数日ぶりの帰宅。泥のように眠れるだろう。
*
二日後。強制ロックが解除された朝、三田村が出社してきた。
顔色は驚くほど良くなっていた。
隈も消え、目には理性の光が戻っている。
現場は平穏だった。
織部が組んだ自動化スクリプトのおかげで、ここ数年で最も安定した稼働状況を示している。
「……おはよう、織部くん」
「おはようございます。ロックは解除されています。通常業務に戻れます」
織部は顔色一つ変えずにモニターに向かっていた。
三田村は苦笑して、自分の席に座った。
「君のおかげで、目が覚めたよ。……僕は自分を過信していたようだ。システムの一部になりすぎて、自分が壊れかけていることに気づかなかった」
「部品のメンテナンスは、管理者の義務です。自己管理ができていない部品は、システムに組み込むべきではありません」
「手厳しいな……。でも、ありがとう。おかげで助かった」
三田村は深く頭を下げた。織部はキーボードの手を止め、ちらりと彼を見た。
「勘違いしないでください」
「え?」
「僕はあなたを助けたわけじゃありません。限界まで使い潰しかけた中核を、そのまま動かし続けると、全体が止まる恐れがあった。……だから、強制的に止めて休ませただけです」
織部は淡々と言い放ち、再び作業に戻った。
「正常に再起動したなら、スペック通りの仕事をしてください。それが最も効率的です」
三田村は笑った。
「ああ、そうするよ」と力強く答えた。
その現場には、もう悲壮感はない。
人間を人間として扱わず、「機能」として管理する織部の冷徹なマニュアルが、逆説的に人間を守る盾となっていた。
(第11話完)
ここまでお読みいただき、ありがとうございます。
本作は第4部となります。
前のエピソードを読むと、織部という存在の“ズレ”がよりはっきり見えてきます。
マニュアルキラー 第1部
〜その「説明書」を信じてはいけない〜
https://ncode.syosetu.com/n4289lo/
マニュアルキラー 第2部
~校正なき改竄~
https://ncode.syosetu.com/n4641ls/
マニュアルキラー 第3部
~不適切な運用に関する修正履歴~
https://ncode.syosetu.com/n4150lw/




