村の魔法陣を診断して回り始めて、三日目。
リオンは村の北端にある灯火魔法陣の前で、頭を抱えていた。
「……設定が、めちゃくちゃだ」
水浄化魔法陣の干渉問題を直してから、村人たちの態度が変わった。「あの魔法陣も見てくれないか」と声をかけられることが増えた。問題は、診断すればするほど、この世界の魔法インフラの「やばさ」が見えてくることだった。
ルーンフェル村だけで、魔法陣は大小合わせて12基ある。
防壁、水浄化、農地管理が3基、灯火が2基、通信が1基、倉庫の温度管理が1基。
それぞれが魔力パスで繋がり、連携動作しているはずだった。
「はず、なんだよな……」
リオンは灯火魔法陣から手を離し、小さなノート——この世界では「記録帳」と呼ばれる冊子に書き込んだ。
【北端灯火陣:魔力入力パスが二重定義。片方は死んでる。出力先が不明瞭。負荷は正常範囲だが効率30%低下】
要するに、誰かが昔いじって、中途半端なまま放置されている。
前世なら「設定の棚卸し」案件だ。でもこの世界には、そもそも「設定書」という概念がない。
「……ドキュメント、本当にないのか?」
リオンはため息をついた。
前世で散々見た光景だった。引き継ぎ資料なし、変更履歴なし、「前任者に聞いてください」からの前任者退職済み。
この世界も——同じだった。
リオンは村の中心部に戻り、鍛冶屋の工房を訪ねた。
老魔術師ゴルドがいる。村で唯一、魔法陣のメンテナンスを担当している人物だ。
「おじさん、ちょっといいかな」
「なんだ、リオンか」
ゴルドは相変わらず無愛想だったが、リオンが水浄化魔法陣を直したことは知っている。以前より多少は話を聞いてくれるようになった。
「村の魔法陣なんだけど……設定とか、記録とか、残ってないの?」
「設定?」
「ええと、魔法陣がどういう仕組みで動いてるか、とか。誰がいつ何を変えたか、とか」
ゴルドは首を傾げた。
「見ればわかるだろう」
「……は?」
「魔法陣を見れば、どう動いてるかわかる。記録なんて必要ない」
リオンの脳裏に、前世の光景がフラッシュバックした。
「ドキュメント? そんなもんなくても、コード読めばわかるでしょ」
「設計書? 俺の頭の中にあるから大丈夫」
属人化の、典型的なパターンだった。
「じゃあ……たとえば、北端の灯火魔法陣。あれ、入力パスが二重定義されてるけど、誰がいつ変えたの?」
「ああ、あれは……10年くらい前かな。冬場に灯りが弱くなったから、パスを増やしたんだ」
「片方、死んでるよ」
「え?」
ゴルドは眉をひそめた。
「入力パスの片方、機能してない。たぶん増やしたときに接続ミスがあって、そのまま放置されてる」
「……そうなのか?」
「診断したから間違いない。で、そのときの作業記録は?」
「記録……? 別に、残してないが」
リオンは深く、深く息を吸った。
「おじさん。もし、おじさんが急に倒れたら、誰が魔法陣を直すの?」
「……さあな。俺しかできないからな」
「それ、リスクだよ」
ゴルドは不機嫌そうな顔をした。
「昔からこうやってきたんだ。問題ない」
「問題だらけだよ」
リオンの声が、少し強くなった。
「一人に依存するのが一番危ない。引き継ぎ資料がないのも危ない。変更履歴がないから、問題が起きたときに原因が追えない。これ、全部リスクだから」
「お前……」ゴルドは少し驚いた顔をした。「随分と生意気になったな」
「生意気じゃなくて、事実だよ」
リオンは譲らなかった。
前世で、属人化がどれだけ危険か、嫌というほど知っている。
キーマンが倒れた瞬間、システム全体が止まる。
それがインフラの最大のリスクだった。
ゴルドとの会話はそこで終わった。
リオンは工房を後にし、村外れの小川沿いを歩いた。
「……これ、前の会社と同じだ」
呟きが、自然に漏れた。
前世のSIer。大規模ネットワークの運用保守。
そこでも同じだった。属人化、ドキュメント不足、「俺がいないと回らない」という自負。
そして誰かが潰れる。
九条諒は、その「誰か」になった。
「……もう、嫌だ」
リオンは立ち止まった。
目の前の小川が、静かに流れている。
その水を浄化している魔法陣も、問題を抱えている。
でも誰も気づいていない。気づいても、直し方がわからない。
このままではいつか、大規模障害が起きる。
「……だったら、自分でやるしかないな」
リオンは記録帳を開いた。
すでに村の魔法陣12基のうち、8基を診断し終えている。
それぞれの状態、異常、負荷、接続関係——すべて記録してある。
「構成図を、作ろう」
前世で散々書いたネットワーク構成図。
サーバーの配置、接続関係、冗長構成の有無。
それを図にするだけで、全体が見える。問題点が見える。
この世界にも同じものが必要だ。
その日の夜。
リオンは自室で、大きな羊皮紙を広げていた。
村の地図を描く。
そこに魔法陣の位置を書き込む。
魔力パスの接続を線で繋ぐ。
防壁魔法陣を中心に、水浄化、農地管理、灯火、通信——すべてが繋がっている。
それぞれの負荷、異常、劣化箇所を色分けして記載する。
「……やっぱり、ボロボロだな」
構成図が完成するにつれて、問題の全体像が見えてきた。
まず、冗長化がゼロ。すべてシングル構成。
一つの魔法陣が止まれば、その機能は完全に停止する。
次に、魔力パスが複雑に絡み合っている。
誰かが場当たり的に繋いだ結果、スパゲッティ配線になっている。
そして、負荷の偏り。
防壁魔法陣に過剰な負荷が集中している。いつかパンクする。
「これ……本当に、よく動いてるな」
リオンは感心すら覚えた。
前世なら「即刻リプレース案件」だ。
でもこの世界では、誰もそれに気づいていない。
「……いや、待てよ」
リオンは構成図を見直した。
水浄化魔法陣の接続関係。
以前、農地管理魔法陣との干渉を直した。
それで月2、3回の停止は止まっていたはずだった。
でも、構成図全体を見ると——。
「あれ……? これ、別の経路でも繋がってる?」
リオンの視線が、一本の魔力パスに釘付けになった。
水浄化魔法陣は、農地管理魔法陣とだけ繋がっているわけじゃない。
防壁魔法陣を経由して、通信魔法陣にも接続されている。
なぜ?
「通信に、水浄化が関係する理由がない……」
リオンは記録帳を引っ張り出した。
通信魔法陣の診断結果を見る。
【通信魔法陣:負荷は正常。ただし入力パスが3本。うち1本の用途が不明】
——これだ。
「この『用途不明』のパスが……水浄化に繋がってる?」
リオンは立ち上がった。
今すぐ確認したい。でも夜だ。真っ暗だ。
「……明日、診断し直そう」
でも——もし、本当にそうだとしたら。
水浄化魔法陣が止まっていた原因は、農地管理魔法陣との干渉だけじゃない。
通信魔法陣からの逆流もある。
つまり根本的な解決になっていない。
「……ああ、もう」
リオンは頭を抱えた。
障害対応の鉄則。
「見えている問題」だけ直しても意味がない。
「根本原因」を潰さないと、また再発する。
前世で、何度も経験した。
応急処置で凌いで、また止まって、また直して。そのループ。
「全体を見ないと……駄目なんだ」
リオンは構成図を見つめた。
村全体の魔法陣インフラ。
それは一つのシステムだ。
部分最適じゃなく、全体最適が必要だ。
「……やることが、増えたな」
リオンは遠い目をした。
定時で帰りたい——その目標は、どんどん遠ざかっていく気がした。
翌朝。
リオンは村の広場で、大きな羊皮紙を広げていた。
昨夜作った構成図だ。
村人たちが不思議そうに集まってくる。
「リオン、何してるんだ?」
「村の魔法陣の地図を作ってるんだ」
「地図……?」
村長が覗き込んだ。
「ほう……魔法陣の位置が書いてあるな。この線は?」
「魔力パスです。魔法陣同士が、どう繋がってるかを示してます」
「こんなもの、初めて見たぞ」
村長は感心したように頷いた。
「これがあれば、全体が見えるんです。どこに問題があるか、どこが危ないか——一目でわかる」
「なるほど……お前、本当に変わったな」
村長は笑った。
「で? これで何がわかったんだ?」
「水浄化魔法陣の件なんですけど……」
リオンは構成図の一部を指差した。
「以前、農地管理魔法陣との干渉を直しました。でも、実はもう一つ問題があります。通信魔法陣からも、余計な接続が伸びてる」
「通信……? なぜ水浄化と?」
「わかりません。たぶん、昔誰かが間違えて繋いだんだと思います。で、それが残ってる」
村長は顔をしかめた。
「それは……まずいのか?」
「まずいです。通信魔法陣が高負荷になったとき、逆流が起きる可能性がある。そうすると水浄化が止まる」
「……じゃあ、直せるのか?」
「診断し直して、確認してから——直します」
リオンは頷いた。
村長は安堵の表情を浮かべた。
「助かるよ、リオン。お前がいてくれて」
その言葉が、リオンの胸に重く響いた。
「お前がいてくれて」
前世で、何度言われたかわからない台詞だった。
そしてそれが重圧になった。
「……僕がいなくても、直せるようにしたいんです」
リオンは静かに言った。
「え?」
「この構成図を見れば、誰でも問題箇所がわかる。手順書を作れば、誰でもメンテナンスできる。そうすれば——僕がいなくても、村の魔法陣は守れます」
村長は、少し驚いた顔をした。
「……お前、優しいんだな」
「優しくないです」リオンは首を振った。「僕は——大事なものの優先順位を間違える人間だから」
「何?」
「だから……一人で抱え込まないように、してるだけです」
村長は意味がわからないという顔をしたが、それ以上は聞かなかった。
その日の午後。
リオンは通信魔法陣の前に膝をついていた。
【診断】を発動する。
魔法陣の内部構造が、立体的に展開される。
入力パスが3本。
そのうち1本が——確かに、水浄化魔法陣に繋がっている。
「……やっぱりか」
リオンは記録帳に書き込んだ。
【通信魔法陣入力パス3番:用途不明→水浄化魔法陣への誤接続と判明。切り離し必要】
原因が、わかった。
あとは、直すだけだ。
「でも……」
リオンは構成図を見直した。
この接続を切ったとき、他に影響が出ないか?
水浄化魔法陣は、それで本当に安定するのか?
そもそも、なぜこの接続が作られたのか?
わからないことだらけだ。
ドキュメントがないから、過去の経緯が追えない。
「……これが、属人化の怖さなんだよな」
リオンはため息をついた。
前世で、散々経験した。
「なぜこの設定があるのか、誰もわからない」
「前任者が作ったけど、理由は不明」
「とりあえず動いてるから、触らないでおこう」
そして触らざるを得なくなったとき、障害が起きる。
「……慎重に、やろう」
リオンは立ち上がった。
まず、影響範囲を確認する。
次に、切り離しの手順を考える。
そして、検証する。
一つずつ、確実に。
前世の経験が、ここで活きる。
夕暮れ。
リオンは自室で、構成図を見つめていた。
村の魔法陣インフラ。
その全体像が、ここにある。
問題だらけだ。
属人化している。
ドキュメントがない。
でも——わかれば、直せる。
「……長い戦いになりそうだな」
リオンは苦笑した。
定時で帰りたい。
穏やかに暮らしたい。
そのためにまず、インフラを立て直す。
矛盾してるようで、矛盾していない。
インフラが安定すれば、緊急対応は減る。
体制が整えば、自分がいなくても回る。
それが本当の「定時で帰れる世界」だ。
「よし……やるか」
リオンは構成図を丁寧に畳んだ。
明日、通信魔法陣の誤接続を切り離す。
そして水浄化魔法陣の、本当の安定稼働を実現する。
一歩ずつ。
確実に。
元SEの戦いは、まだ、始まったばかりだった。
【あとがき】
「ドキュメントがない」。IT現場の悪夢をファンタジーに持ち込みました。属人化と構成図の大切さは、世界が変わっても同じです。