ふつーのプログラマです。主に企業内Webシステムの要件定義から保守まで何でもやってる、ふつーのプログラマです。

魔女の刻 (1) 深夜勤務

»

 誰にでもささやかな幸せ、と呼べる何かがある。私の場合は、寒い夜にベッドの中で毛布にくるまりながら、短編小説を1 話か2 話読むことだ。ここ数日間のお供は、もう何度目かになる「シャーロック・ホームズの冒険」だった。結末がわかっている推理小説を読んで何が面白いの、と聞かれることもあるが、寝る前に読むには、予定調和な物語が適している。
 3 月25 日、日曜日の23 時。私はベッドの中で本を開いたところだった。小学4 年生の息子はとっくに寝ている。洗い物と朝食の準備も済んでいる。熱い風呂で身体を温め、後はひとときの楽しい時間だ。だから、枕元に置いたスマートフォンがブルブルと忌まわしい振動を開始したとき、私は相手を呪い殺したくなった。
 寝たことにして無視しようか、と決めかねながら、スマートフォンに手を伸ばし、発信者の名前を確認する。東海林さんだった。
 気付いてしまった以上、出ないわけにはいかない。私は渋々、タップした。
 「はい」
 『川嶋』東海林さんの低い声が聞こえた。『夜分にすまん。寝てたか?』
 「寝てました」
 『起きててよかった。悪いが、すぐ来てくれ。お前の手が必要だ』
 「はあ? 今、仕事してるんですか?」
 『そうだ』
 答えた東海林さんの声に、微かなざわめきが混じった。居酒屋の喧噪でも、駅のアナウンスでもない。聞き慣れた、業務中独特のバックグラウンドだ。しかも和気あいあいという雰囲気ではない。殺気立っている。
 「どこにいるんですか?」私は訊いた。「開発センターですか?」
 『そうだ。すぐ来てくれ』東海林さんは繰り返した。『緊急事態だ』
 「あの、今、何時かわかってます? 何だか知りませんが、明日の朝一番じゃダメなんですか?」
 『すぐだ。今、細川も呼んだ』
 私はベッドの上に起き上がった。もう一度、時刻を確認する。23 時を8 分ほど過ぎている。
 「何があったんですか?」
 『説明しているヒマはない。すぐ来てくれ』
 「でも、くぬぎ市までの電車もバスもとっくにないですよ」
 『わかってる。細川に車でピックアップさせる。すぐ連絡が入るはずだ。頼むぞ』
 答える前に通話は切れた。ほとんど間を置かずにLINE が入った。細川くんからだ。

ETA 10min

 何なのよ、一体。私は既読スルーのままスマートフォンを放り出して、洗面所に駆け込んだ。10分で人前に出られるだけの準備をしなければ。

 ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

 大慌てで歯磨きと洗顔、最低限のメイクを済ませ、パンツスーツに着替えながら息子宛にメモを残した。元々、明日の朝は早めに出る予定だったから、朝食はレンジでチンするだけにしてある。バッグの中に必要な資料、タブレット、IDカードなどが入っているのを確認し、コートとマフラーを掴んだ。保温と眠気覚ましのために、暖かいミルクティーでも淹れたいところだが、そんな時間は残されていなかった。
 マンションのエントランスを出た途端、3 月下旬の冷たい空気が首筋から忍び込み、上半身が寒さで震えた。急ぎ足で道路まで歩きながらコートを羽織る。マフラーを巻き付けたとき、ブルーのジュークが目の前に停車した。運転席から細川くんが小さく手を振る。私は急いで助手席に乗り込んだ。車内の暖かさにため息が洩れる。
 「こんばんは」細川くんはそう言いながら、ウィンカーを出して、車を発進させた。
 「おつかれさま。一体、何事?」
 「ぼくにもわからないんですよ」細川くんは肩をすくめた。「明日に備えて早く寝ようと思ってたら、いきなり東海林さんから電話があって。すぐに川嶋さんを拾って開発センターに急行しろって言われただけなんで。寝てました?」
 「いや、まあ、まだ起きてたけどね」
 「何か緊急のトラブルですかね」
 「こんな時間に呼び出すんだから、緊急のトラブルに決まってるでしょ」
 「ですよね。あ、後ろにコーヒーあるんで、よかったらどうぞ」
 後部座席を見るとコンビニの袋が置いてある。私は手を伸ばして袋を探り、中に入っていた缶コーヒーを掴んだ。その控えめな暖かさが掌から身体に伝わる。
 「細川くんは?」
 「ぼくはいいです。出る前にコーヒー淹れてもらいましたから」
 細川くんは去年の6 月に結婚したばかりで、話を聞く限りではまだまだラブラブ状態を維持しているようだ。自分の結婚生活が失敗に終わったせいか、他人のそれが順調だとうらやましくなる。
 「奥さん、文句言ってなかった?」
 「こんな時間に呼び出されるのは、さすがにちょっと驚いてましたけど、最近はずっと遅かったんでそろそろ耐性がついてきたみたいですね」
 「今日は久しぶりに早く帰れたのにね」
 「明日はセレモニーだってのに、今さら、何があるんでしょう」
 「そうね」私は缶コーヒーを一口飲んだ。「細川くんは今日の最終調整、行ったんでしょ? 何かトラブルでもあった?」
 「いえ、別に。フォントの大きさとか色合いとかの微調整が入ったぐらいです。市の担当者からもOK 出ましたし」
 明日の朝、つまり、3 月26 日の10 時から、KNGSSS――くぬぎ市学校情報支援システム完成発表のセレモニーが、くぬぎ市民イベントホールで開かれる。くぬぎ市ICT 再生プロジェクトの一つであり、私が過去14ヵ月以上関わってきたシステムでもある。奈須野シゲル市長を筆頭にくぬぎ市役所職員、市教育委員会、くぬぎ市の2 つの中学校と4 つの小学校の校長や教頭、それに各市民団体など、総勢200 名以上が出席する。報道各社も招待されているはずだ。
 セレモニーの前半は市長の演説や来賓の方々の祝辞などだが、残りはKNGSSS のお披露目だ。ホールの巨大スクリーンにKNGSSS の画面などが映し出され、くぬぎ市再生プロジェクト室長の瀬端さんが改善された機能を中心に説明をすることになっている。会場にはアプリをインストール済みのタブレットが50 台以上搬入済みで、出席者が自由に試すこともできるように準備されていた。すでに何度もリハーサルが行われていて、負荷テストなども実施済みだ。前日の夜に、致命的なバグなどが発覚するとは考えにくいし、急な修正などが入ることはもっと考えにくい。本番運用すれば問題は出てくるだろうが、明日は限られた機能だけのデモなのだ。
 「直前に市長が無茶ぶりでも出したんですかね」そう言った細川くんはすぐに首を横に振った。「いや、今日は市長も来てたしなあ。ハードトラブルですかね」
 「だったら私たちを呼ぶはずないでしょ」私は指摘した。「それにハードって言っても、ほとんどクラウドだし」
 「クラウドサービスの緊急メンテナンスとか」
 「それなら、なおさら、私たちの出番はないわよ」
 ジュークは制限速度を少し超えた速度で交差点を左折し、横浜青葉インター方面に向かった。
 「え、高速乗るの?」
 「はい。とにかく急げ、高速使えって」
 東名高速に入ると、ジュークは一気に加速し、私はコーヒーをこぼしそうになった。缶をカップホルダーに置くと、私はスマートフォンを取り出した。直前の着信履歴に発信してみる。だが、呼び出し音が1 分以上続いても、東海林さんは応答しなかった。
 「ダメね」私はスマートフォンをしまった。「今日、最後のマスタデータ投入したんでしょ? 何か問題なかった? パフォーマンスがガタ落ちになったとか」
 「特にないですね。データ量自体はテスト環境とそんなに違いがあるわけじゃないですから」
 「いつだったっけ、VPN のトラフィックがガタ落ちになって、テストが丸2 日止まっちゃったときがあったよね」
 「ああ、あれ、結局、原因不明でしたね。グリーンリーブスから対策したって連絡だけはあったらしいですけど」
 夜の東名高速は空いていて、昼間ならいつも渋滞している大和トンネル付近も、あっさり走破できた。私が2 本目の缶コーヒーを空けた頃、ジュークは厚木IC を降りて一般道を北に向かって進み始めた。行き交う車はほとんどない。
 「さすがにこの時間だと空いてますね」細川くんがカーナビに目を走らせた。「あと10 分ぐらいかな」
 私はもう一度、東海林さんに電話してみたが、やはり応答はなかった。
 「出ない」諦めてスマートフォンをバッグに放り込んだ。「手が離せないみたいね」
 前方に「くぬぎ市街 3km」の案内標識が出現した。
 人気の絶えた県道を走っていくと、陸橋に掲げられた大きな看板が見えた。以前はライトアップされていたが、無駄遣い、との批判を受けて、今は暗いままだ。
 <ようこそ、ICT先進都市 くぬぎ市へ>
 その下にアルファベットのQ とLIC を組み合わせたロゴ。Q-LIC――クオリティ・ライフスタイル・イノベーション・カンパニーの企業ロゴだ。3 年前まで、くぬぎ市内の道を歩けばQ-LIC ロゴに当たる、と言われるほど、くぬぎ市市政アドバイザリだったQ-LIC の影響力は大きかったらしい。撤退した今となっては、それらのロゴは汚れが蓄積するままになっている。くぬぎ市が撤去費用すら捻出できないのか、何らかの教訓としてわざと残してあるのかはわからない。
 日付が26 日に変わるのとほぼ同時に、ジュークはくぬぎ市役所前の交差点を左折し、くぬぎICTセンタービルの地下駐車場に滑り込んだ。交差点の反対側にある市役所よりずっと立派な7 階建てのビルは、Q-LIC 出資で建てられた、ICT 先進都市を宣言したくぬぎ市のデジタル拠点だ。完成当初は1 階から3 階までにクリック・ブックス、スクリーン数6 のシネコン、アミューズメント施設、スポーツジムなどが入っていたが、Q-LIC の撤退と共にそれらの施設は全て閉鎖されている。図書館システムや学校情報支援システム開発は、このビルの6 階に設けられた開発センターで行われた。私たちの目的地だ。
 駐車場には10 台以上の車が停まっていた。そのうちの1 台は、見覚えのあるアッシュブルーのキューブ。東海林さんの車だ。
 私たちは夜間通用口をID カードで開けて、急ぎ足でビル内に入った。エレベータに乗り込み、ID カードをかざしてから6 階のボタンを押す。夜間と休日は、ID カードがなければボタンが反応しない。
 6 階で降りると、正面に半透明のガラスに囲まれた3,150 ㎡のスペースが現れる。最大200 人分のデスクが設置された開発センターだ。
 ID カードで入室すると、途端に喧噪が押し寄せてきて、私たちは思わず足を止めた。
 本来ならせいぜい数人が残っているぐらいの時間なのに、20 人以上のエンジニアが忙しく働いている。TSD の草場さん、鳩貝さん、多摩アプリケーション開発の外川さん、宇山さん、畠さん、蜂須賀テクノロジー株式会社の八木橋さん、岡沢さん、御津ソリューションズの馬渡さん、溝田さん。残りの見覚えのない顔は、それぞれの会社の関係者だろう。私たちが入ってきたのを目に留めた何人かが、頷いたり、手を挙げたりしたが、すぐに目の前のモニタに視線を戻した。
 サードアイ用に用意された3 つのデスクに近づくと、東海林さんが何かのプリントアウトと画面を交互に見て、ペンで書き込みをしていた。
 「東海林さん」私は呼びかけた。「おつかれさまです」
 顔を上げた東海林さんは、安堵の表情を浮かべた。
 「来てくれて助かった。座ってくれ。PC は起動してある」
 「何事ですか」私は座りながら訊いた。
 「production 環境が壊れた」
 「壊れた?」私は細川くんと顔を見合わせた。「どういう意味ですか?」
 「文字通りの意味だ。production 環境に配置済みのコンテナと、コーディネータの設定が昨日までの状態と一致しない」
 「昨日、19 時に最後のテストが終わった後、ロックしてましたよね」
 「蜂須賀の岡沢さんが、同期監視機能のレポート送信先設定XML がテスト用のままになってたことを思い出して」東海林さんは、蜂須賀テクノロジーの島で忙しく手を動かしている岡沢さんを目で示した。「20 時過ぎに正式なファイルを反映するために、一戸さんにロックを解除してもらった。反映した後、規程通りに一戸さんがパターンチェッカーを流した。エース社員は他にいなかったから、俺が二者確認パートナーをやったんだが......」
 パターンチェッカーはデグレード防止目的のテストスイーツで、あらかじめチェックポイントとして設定されたコンテナの単体テストを連続して実行する機能だ。production 環境――つまり本番環境に何らかの反映を行った後は、必ず実行することが定められている。
 「一致しなかったんですか?」
 「ああ、しなかった。幸運だったよ。それがなかったら、朝まで気付かなかったかもしれん」
 「production 環境で実際に試してみたんですか?」
 「一戸さんがコマンドルームで試した。トップページは開いて、ログインもできるんだが、まっ白な画面が表示されるだけだった。管理者モードで開いてもダメだ」
 「誰かが古いのを上書きしちゃったとか?」
 細川くんがそう訊いたのは、去年の年末に発生したトラブルが念頭にあったからだろう。ヒューマンエラーがいくつか重なって、構築中だったproduction 環境のコンテナ群が、4 世代前のバージョンにそっくり上書きされてしまったのだ。運が悪いことに、翌日の朝、くぬぎ市市議会の視察があり、予定していたデモが全く実行できずに大騒ぎになった。パターンチェックテストの実施が必須になったのはそれからだ。
 「いや、ロックしたときは間違いなく正しいバージョンになっていたはずだ。直前まで大勢が動作確認してたんだからな。その後、一戸さんがロック解除するまで、誰もproduction 環境に触ってないことは間違いない」
 「とりあえずバックアップから戻したらどうですか?」私は提案した。「今朝、じゃない昨日の朝時点のバックアップは、ほぼ最新環境のはずですよね」
 「バックアップは残っていない。消えてるんだ。昨日のだけじゃなく全部」
 「え」私は少し驚いた。「デイリーで取ってたバックアップが、全部ないんですか? 400 組以上が?」
 「そうだ」
 「取っていたはずが取れていなかったんですか? それとも誰かが......」
 「それは、今、どうでもいい」東海林さんは私の言葉を遮った。「何とかして、朝までに復旧させなければならん」
 「あ、スタンバイ環境は?」私は2 人の顔を交互に見た。「production 環境と同期取ってるはずよ」
 「真っ先に確認した。同じ状態になっている。というか、production 環境のコンテナ一式が古いのに置き換わったとき、その状態が同期されたんだろうな」
 私は頷いた。スタンバイ環境は、production 環境が落ちたときに、フェイルオーバーで自動切り替えされるために準備されている。production 環境が普通に稼働していたら出番はない。
 「そうでした。で、どうやって復旧させるんですか」
 「SVN は生きてる」東海林さんはモニタをこちらに向けた。「これはクラウドじゃなくて、サーバルームの開発用サーバにあるからな。そこから拾っていく」
 「じゃあ最新のtrunk からチェックアウトしたのをデプロイするわけですか」
 「それぐらいなら、お前たちを呼んだりしないよ。確認したところ、trunk に残っているソースは、2 月11 日が最新だ」
 私と細川くんは、また顔を見合わせた。昨日まで修正が続いていたのだから、最新版が2 月のはずはない。
 「branch のままで作業していて、trunk にマージしてないってことですか」
 「そうらしい。さらにまずいことがある。リポジトリを見てみろ」
 私は自分のPC にログインすると、Eclipse 上でSVN エクスプローラを開いた。細川くんも隣で同じことをしている。
 「branch と、tag の一覧だ」
 通常、私たちは指示されたbranch で作業を行い、完了したらサブリーダー、つまりエース社員の誰かに申告する。trunk にマージするのも、次に作業するbranch を選択するのもエース社員で、朝、ログインすると作業するbranch がチェックアウトされた状態でEclipse が開く。なので、他にどんなbranch があるのか、ということを気にしたことがない。
 「わあ」
 細川くんが呆れたように呟いた。私もbranch のツリーを展開してみて驚いた。ざっと見て、50 以上のbranch が存在している。しかも、何のbranch なのか、全く不明な命名で。

svn.png

 「困ったことに」東海林さんが鼻の付け根をマッサージしながら言った。「どれが何のbranch なのか、手がかりが全くない。コメントもないし、日付もバラバラだ」

 「どうするんですか」
 「1 個ずつチェックアウトして、中身を確認して......」
 東海林さんの言葉は、横から割り込んできた声で中断された。サブリーダーのエース社員、一戸さんだ。
 「東海林さん、ちょっといいですか」
 「はい」東海林さんは答えると立ち上がった。「ちょっと待っててくれ。お前たちならどうするか考えてみろ」
 東海林さんは一戸さんと一緒に急ぎ足でエースシステムの島に歩いていった。一戸さんの他に、SE の谷脇さんと丸井さん、TSD の草場さんがA3 のプリントアウトを何枚も広げたデスクの周りに立って、何かを相談している。普段ならエース社員の人たちは、エリートは焦って仕事をしたりしないんだ、と言わんばかりに余裕を見せているが、今夜ばかりは必死の形相だ。
 「どうやって回復させればいいんでしょう」細川くんが途方に暮れたように言った。「branch からチェックアウトしても、それが正しいコンテナかどうかなんて、判断できませんよね」
 「考えてみろって言ったでしょ」
 指示待ち人間はいらない、が東海林さんの指導方針の要だ。こんなときでさえ、東海林さんは、私たちに自分で考えることを要求している。
 私ならどうするか、と考えてみる。私はAPIドキュメントを読むより、まずソースを見る方が理解しやすい性格だ。自分のモニタに向き直ると、branch の一つを開いて、自分が担当した記憶のあるソースを探す。
 KNGSSS のソースは膨大だ。単純なコンテナ数だけでも20,000 個以上ある。コンテナを構成するHTML ファイル、class ファイル、その他のasset 群まで数えるとその10倍以上だ。SVN にコミットされているのはコンテナ単位だが、同じ名前のコンテナがリビジョン違いで複数存在することもある。しかも、単純にコミット日時が最新のコンテナが正であると判断できないから厄介だ。
 私が最初に開いたのは、kngsss_st_rlta_up_002v というコンテナだ。管理者権限ユーザ、つまり教職員が使用する機能で、生徒情報表示画面アプリケーションを構成するコンテナの1 つだ。HTML を見ると、特定の年月の出欠席情報を参照するTable のようだ。正常なコンテナに見えるが、もちろんそんなに単純な話ではない。このコンテナに渡されるパラメータが大きく変わっているかもしれないからだ。そのパラメータがどんな内容で、どのコンテナから渡されるのか、という情報は、コンテナ群をコントロールするコンテナドライバと、コンテナドライバのフローを制御するコンテナコーディネータにしかない。プログラマを信用していないエースシステムの方針で、それらの情報は私たちには一切知らされていなかった。
 従って私たちにできるのは、各コンテナが受け取るパラメータの内容と、受け取った後に実行する処理の内容を確認し、一覧に上げて行くことだけだ。パラメータは、DI(Dependency Injection) されるが、コンテナ側ではいくつか用意されているインターフェースとして受けるので、具象クラスをどう解釈するのかは、ロジックを見る必要がある。
 東海林さんが戻ってきた。
 「すまん。で、考えたか?」
 私が自分の考えを口にすると、東海林さんは頷いた。
 「そういうことだ。すでに他の会社の人たちには、その方針でやってもらっている」
 東海林さんは簡単に手順を説明した。まず存在する全てのbranch――68 個だそうだ――をチェックアウトする。各branch から、自分が担当したことのあるコンテナを探し、チェック対象を決める。決めたら、0326 というプロジェクト上にコンテナ名で空のコンテナをマージする。これは他のプログラマが、重複してチェックすることを防ぐためだ。
 「チェックを開始したら」東海林さんは早口で続けた。「全てのbranch から対象コンテナのリビジョンを調べる。リビジョン毎にDI されるクラス名と、initialize() メソッドの処理概要、後続のメソッドチェーンのルールをテキストファイルで作って、コミットしてくれ。作成途中で放棄されたリビジョンとか、コンパイルが通らないのは無視。わかったか?」
 「明らかに不要なコンテナはともかく」細川くんが言った。「リビジョン違いとか、テストで作ったコンテナとか、そういう不要なのがたくさんありますよ。コーディネータの最新設定がないんじゃ、コンテナの配置が決められないじゃないですか」
 「そっちは」東海林さんは声を潜めた。「エースの人たちの尻を叩いてでも何とかするしかない。もっともそれだけじゃ不安だから、今、俺と草場さんがコーディネータの設定について、基本的な部分を教えてもらっているところだ。Excel シートの記述が嫌がらせかと思うぐらいに複雑なんだが、フローを追うぐらいはできるだろう」
 「コーディネータの設定が消えたのは謎としても」私は訊いた。「その設定シートの原本は残ってるんじゃないんですか? 台帳で一覧作ってたりとか。エースの人たちって、そういうの好きじゃないですか」
 「あるにはあるんだが、その手のドキュメントもSVN で管理してたからな。結構、試行錯誤の連続で、コピーのコピーみたいなのが大量にあって、どれが正だかわからんらしいな。全てを把握していたのは白川さんだけだ」
 「その白川さんに連絡は取れないんですか?」細川くんが訊いた。「正しい設定を把握してるとしたら、白川さんだけですよね」
 白川ナオミさんは、エースシステムエンジニアリング株式会社のシステムエンジニアで、プロジェクトリーダーだ。開発体制図上には、名目上のマネージャー、リーダーが何人か載っているが、実務的な面で指揮を執っているのは彼女だ。コミットされた全てのソース、テストケース、エビデンスは、何人かのサブリーダーを経由した後、全て白川さんの元に集まり、その承認を経てリリース版になる。
 東海林さんは首を横に振った。
 「この問題が発覚してから100 回ぐらい携帯にかけているんだが繋がらない。エースシステム横浜も誰も出ない。まあ、こんな時間だから当然だろうな」
 流行のワークライフバランスとやらを実践しているらしく、エースシステムでは19 時以降の就業は基本的に認められていない。年俸制の社員はその限りではないが、率先して見本を示すためか、さっさと退社するのが常だ。
 「市の方は?」
 「瀬端さんの携帯にはさっき繋がって、今、こっちに向かってる。何かの用事で市内にはいなかったんだが、車を飛ばして駆けつけると言ってた。エースの緊急連絡先は庁舎に行けばわかるそうだ。リモートでアクセスできればよかったんだが」
 財政再建中で緊縮一辺倒のくぬぎ市では、やはり夜になると各職員のPC はシャットダウンされるし、数年前は潤沢に使用されていたVPN も全て廃止になった。
 「ただ、たとえエースシステムに連絡がついたとしても、そこから白川さんに情報が届くのは時間がかかるだろう。そもそも携帯に繋がらないぐらいだから、連絡がつかない事情があるのかもしれんしな。かといって、朝になるのを待つわけにもいかん。このままだとセレモニーに間に合わない」
 「コーディネータの設定が形になったとして」私は疑問を呈した。「各アプリケーションの動きが仕様通りかどうかをどうやって確認するんですか?」
 「瀬端さんが、担当者を何人か連れてきてくれるはずだ。個々の動作はチェックできると思う。要件定義書は紙で納品されているから、それと照らし合わせることもできる。確認作業は明日のデモで有効にしてある機能分だけでいいから少しはマシだな」
 私は呻き声を上げた。
 「コンテナの方はそうはいかないですね。明日の有効範囲とは関係ないコンテナでも、間接的に使ってるかもしれないから。結局、全部、チェックする必要がありますね」
 「ぼくが担当したのは」細川くんが絶望的な表情を浮かべた。「200 個かそこらありますよ。もっとかも。そんなのいちいち憶えてませんよ。夜中で脳も疲れてますし」
 「やるだけやれ」東海林さんは同情することなく告げた。「泣き言はいらん。今、コーヒーと紅茶、チョコレート、ガム、とにかくカフェインを摂取できるものを買いに行ってもらってる。脳が落ちそうになったら、そういうのでリブートするんだよ」
 「朝まで待った方が現実的じゃないんですか?」私はうんざりするような作業を回避したい一心で言った。「事前準備で、白川さんは7 時には来るはずですよね。3 時間あれば、十分、復旧できるんじゃ......」
 「来なかったら?」
 私は言葉を失って、難しい表情の東海林さんを見た。
 「これまで、昼夜を問わず、あの人の携帯につながらなかったことなんかない。すぐに出られなくても、5 分以内には折り返してきていた。そんな人なのに、電話もメールもLINE も、どれにも全く応答がないなんておかしいだろ。これは控えめに言っても異常事態だ。だとすれば最悪の結果を想定して動くべきだ」
 「最悪って......事故とか?」
 「何だかわからんし、それはどうでもいい。もし白川さんと連絡がつけば、それに越したことはない。俺たちの時間が何時間かムダになるだけだ。だが、もし何もせずに放置しておいて、結果的にセレモニーの開始時間になっても解決していなかったら、責められるのは俺たちだ」
 そのときドアが開き、数人が急ぎ足で入ってきた。先頭に立っている中年の男性は、くぬぎ市再生タスクフォース推進室室長の瀬端さんだ。
 「東海林さん」いつもは礼儀正しい瀬端さんだが、今夜は挨拶も省略された。「状況はどんなもんですか」
 「再構築に取りかかったところです。エースの方はどうですか?」
 「緊急連絡先に電話したんですがダメでした」瀬端さんは吐き捨てるように言った。「何か、やたらに番号指定するように言われるだけで、一向に人間が出ようとしないんです。高い金取ってるくせに何やってるんだか。一応、メッセージは吹き込んでおきましたが。あ、白川さんの携帯にもかけてみましたけど、やっぱり出ません」
 「そうですか」たいして期待していなかったらしく東海林さんは、素っ気なく頷いただけだった。「とにかく呼び出しは続けてください」
 「わかりました。それで担当を何人か連れてきましたが」
 私は瀬端さんの後ろにいる市職員の方たちの見た。男性陣は揃って無精髭だし、2 人の女性職員は気の毒にほぼノーメイクだ。きっと、私と同じようにベッドから引きずり出されたに違いない。
 「説明しますので、こちらへ」
 瀬端さんが頷いたときドアが開いた。白川さんだったらいいのに、との願望は、その男の顔を見た途端に打ち砕かれた。よりにもよって、今、一番、顔を見るのも、声を聞くのもごめんこうむりたい相手だ。
 「弓削さん」東海林さんは冷たい視線を向けた。「何かご用ですか?」
 「これはどういうことだね」弓削さんはメガネの奧のギョロ目を光らせた。「こんな重大事案なのに、なぜ私に連絡がないんだ。瀬端さんから聞かなかったら、朝まで何も知らないところだったんだぞ」
 Q-LIC から派遣され、庁舎内に一室を与えられている弓削さんの現在の肩書きは、システム運営アドバイザリだ。Q-LIC はくぬぎ市との市政アドバイザリ契約が、あと2 年弱残っているので、ICT 関連の会議や行事には欠かさず顔を出しているようだ。プロジェクトの体制図のどこか上の方にも名前が載っているはずだが、彼がこれまで開発センターに顔を出したのは、市議会議員の視察のときぐらいだった。
 「弓削さんにご連絡する必要性を感じませんでしたので」東海林さんは表面上だけは慇懃に答えた。「これは純粋にプログラマの仕事です。弓削さんの手を煩わせるような事態ではありませんよ」
 役に立たないから出て行け、と暗に告げたのだろうが、弓削さんはその意図を知ってか知らずか、たるんだ顎の肉を震わせて笑った。
 「そうはいかんよ。私にも状況を説明してもらおうか。君たちの方針とやらを検証する必要があるからな」
 「弓削さん」瀬端さんが苛立ったように声をかけた。「とにかく、彼らに任せてはどうでしょうね。時間もあまりないことですし」
 「そういうわけにはいきませんよ。私には私の職責というものがございますからね」
 何人かが思わず失笑した。私もその一人だ。これまで弓削さんが、プロジェクトに協力するより、妨害工作に注力していたことを、この開発センターにいる人間なら知らない者はいない。
 「そうは言われましてもねえ」瀬端さんは困った顔になった。「時間がないので」
 「ですね。ですから、間違った方針で進めて時間をムダにしないためにも、私がチェックしようと言っておるんです」
 緊急連絡網の一端に弓削さんが入っていたため、瀬端さんは律儀に連絡したのだろうが、今となってはその行為を後悔しているに違いない。立場上、強引に命令して排除することもできない。東海林さんが助け船を出そうとしたとき、またドアが開いた。
 今度、入ってきたのはビジネススーツ姿の長身の女性だった。その顔を見た東海林さんの表情が微妙に変化した。
 「高杉さん」
 エースシステムの上級SE、高杉さんは、東海林さんの呼びかけに小さく頷いたものの、まず足を向けた先は弓削さんだった。
 「ご苦労さまです、弓削さん」穏やかなソプラノがその唇から放たれた。「お仕事熱心でいらっしゃるのは敬服いたしますわ」
 「ああ、高杉さん」弓削さんは苦手意識を隠そうとしていたが、成功していなかった。「あなたもいらっしゃったんですか」
 「くぬぎ市ICTシステム再構築プロジェクトは我が社の仕事ですので」高杉さんは、我が社、の部分を強調した。「弓削さんのお手を煩わせることはありません。どうぞ、お引き取りを」
 「いや、高杉さん」弓削さんは抗議した。「私は解決方針のチェックを、アドバイザリとしての立場から......」
 「ご協力には心から感謝いたしますわ。でも、その役目はわたくしが責任を持って、努めさせていただきますので、どうぞ、ご心配なさらず」
 「しかしだね......こんな事態を、プログラマだけに任せておくのは......」
 「仰る通りですね」高杉さんはいかにも感服したように頷いてみせた。「ですが、わたくしたち上流の人間でなくてはできないことがあるように、プログラマ連中にしかできないことも、この世の中にあるんですのよ。弓削さんにはおわかりのことだと思いますが。ここは、わたくしを信頼して、お任せいただきたく」
 内容は丁寧だが、口調は強圧的だった。弓削さんは少しひるんだように顔を強張らせたが、なおも言い募ろうと口を開いた。だが、高杉さんは弓削さんに費やす時間は、ここまで、と決めたようだ。
 「ご納得いただけたようで恐縮です」高杉さんは一方的に決めつけると、固唾を呑んで見守っていた東海林さんの方をちらりと見た。「みなさん、仕事を続けてください。弓削さん、どうぞ、お帰りになって結構ですよ」
 きれいに手入れされた指先が、ドアの方にすっと伸びた。弓削さんはわずかに抵抗する素振りを見せたが、これ以上、議論を続けても自分の面子が少しずつ崩潰していくだけだと気付いたらしく、頷いてドアの方に向き直った。
 「私は庁舎の自席で待機しております」ドアの直前で振り返った弓削さんは、固い口調で訊いた。「状況は知らせていただけるんでしょうな」
 「ご心配なく。ご苦労さまでした」
 弓削さんが出て行くと、高杉さんは瀬端さんに向き直った。
 「ご迷惑をおかけしております」
 「いえ」瀬端さんは安堵したように言った。「それで白川さんとは連絡が取れたんでしょうか?」
 「残念ながらまだです。今、うちの社員を、彼女のマンションに向かわせているところです。間もなく連絡があるでしょう」
 「連絡がつかなければどうします?」
 高杉さんは高価そうなカルティエの腕時計に目を走らせた。
 「セレモニーの開始は10:00 ですから、8:00 までに復旧の目処が立たなければ、セレモニーでのデモは中止としましょう」
 「そうですね」瀬端さんは頷いて同意した。「各関係者への連絡と、式次第の変更もありますから、それぐらいがリミットですね。その線で進めてください。何とかなりそうですか?」
 最後の質問は、もちろん高杉さんではなく、東海林さんに向けられていた。東海林さんは肩をすくめただけだ。
 「最善を尽くします」高杉さんが答えた。
 「そう願います。もし中止になった場合、申しわけありませんが、一緒に市長に説明をお願いします」
 穏やかな表情で瀬端さんは告げたが、発言の意味は重く厳しい。エースシステムとして責任を取ってくれ、と言っているのだ。高杉さんは動揺した様子も見せなかった。
 「承知しています」
 東海林さんがパンと手を叩いた。
 「よし、みなさん、作業を続行してください」
 室内のプログラマたちが一斉にモニタに向い、キーとマウスを操作し始める。その様子を確認すると、高杉さんは東海林さんに何か言い、スマートフォンを操作しながら開発センターから出ていった。細川くんは感心した様子で二人を見ていた。以前、エースシステムから受注したK自動車関係の仕事で、高杉さんには相当振り回されたらしい。
 「ほら、やるよ」私は細川くんに言った。
 「大変ですね、こりゃ」細川くんが早くも弱音を吐いた。「せめてコメントがちゃんと書かれていればよかったのに」
 プログラマによっては、クラスコメントにJavaDoc 形式で詳細を記述してくれているが、残念なことに少数派だ。1 つのクラスを一人のプログラマが最初から最後まで実装していることは少ないので、最初のプログラマが詳細コメントを記述していても、引き継いだプログラマがコメントをメンテナンスしているとは限らない。うっかり記述を鵜呑みにできないということだ。
 「泣き言言わないの。とにかく始めないと終わらないわよ」
 そう言ったものの、私の胸の奧にも不安の塊が生まれていた。ことはKNGSSS だけに留まらない。図書館システムや、商業支援システムとのインターフェース部分もテストしなければならない。果たして、朝までに形にすることができるだろうか。完成図がなく、全てのピースが正方形のジグソーパズルを組み上げるようなものだ。
 唯一の救いは、皮肉なことに時間制限があることだ。8:00 までに目処がつかなければ、それ以上作業を続行する必要がなくなる。
 ドアが開き、大きなコンビニ袋をいくつも抱えたプログラマが数人、入ってきた。
 「食料、調達してきました!」
 「そこのテーブルを休憩所にしよう」東海林さんは指示した。「みなさん、適度に休憩を取りながら進めてください。ただ、申しわけないが、体力と知力を限界まで酷使することになるでしょう。死んでは困りますが、ギリギリのところまでやってください」
 誰かが、死人が出ればセレモニーどころじゃなくなるな、そうすればこんな作業も必要なくなる、お前みんなのために死んでくれないか、と言ったが、何人かがお義理でクスクス笑っただけだった。
 私は小さくため息をつくと、ソースを追い始めた。長い夜になりそうだ。

(続)

 この物語はフィクションです。実在する団体名、個人とは一切関係ありません。また、特定の技術や製品の優位性などを主張するものではありません。本文中に登場する技術や製品は実在しないことがあります。

Comment(32)

コメント

岸辺ロコ

新連載、楽しみです~!
東海林さん、嬉しい笑

にんにん

待望の新作が!
サードアイオールスターズにエースの高杉さんまで。
来週から月曜日の楽しみができて嬉しいです。
月9より楽しみです。

aoi

待ってました!!!

へなちょこ

待ってました。
憂鬱な雨の月曜日にうれしいサプライズ。
先が楽しみです。

じゃばら

新連載嬉しいです!
「社内の暖かさ」は「車内の暖かさ」ですよね?

じゃばら

新連載嬉しいです!
「社内の暖かさ」は「車内の暖かさ」ですよね?

元開発の現運用担当

部下の為とかそう言うのは無く、計算した結果だと思うが、上級SEを名乗るなら、高杉さんの今回の態度は見習って欲しい。

勿論、少しでも良いからメンバーを守るという意味も含めてね(^_^;)
お客や上司から言われた事を、オウム返しに繰り返すだけの上級SE何ていらないよ〜

匿名

本命:顧客を取られたQLICの妨害工作
対抗:致命的なミスに気付いた白川氏が証拠隠滅して逃亡
大穴:セキュリティの穴を突いた外部からの攻撃

この後どんな展開になるのか、これから毎週月曜日が楽しみになりそうです

レモンT

懐かしい面々が一挙登場、そして今回は序盤から一気にクライマックスですね。

しかし高杉さんが頼もしく見える日が来ようとは(^^;;

リーベルG

じゃばらさん、ご指摘ありがとうございました。

とんかつ

自動車の日産率の高さよ

dai

高杉さんがちょっと有能っぽくなってるような?
前回のトラブル時のおかげ(?)で東海林さんのこと信頼したのかな?

らき

新連載ありがとうございます!
今作も楽しみにさせて頂きますね!

へにょぽん

先日「飛田ショウマ~」を読み終え、初めてリアタイで追いかけます。
楽しみにしております!

あが

新シリーズスタートで嬉しいです。
定期的に新作をチェックしていました。

しかし読んでいると、胃がキリキリしてきそう。

atlan

地域的には日産車のシェアが高くても・・とは思ったけどバラバラの地域の個人の車もかぁ・・
いきなり全員頭の痛い状況、解決出来るといいなぁ

メメントス

オールスターでいきなりクライマックス!
これは楽しみです!

F

パターンチェッカとやらをコピーして片っ端から食わせれば良さそうなものだが……?

公英

新シリーズ開始お待ちしていました!
高杉さんがこういった立場で再登場するとは想像していませんでした。
「プログラマ連中」発言に「あ、やっぱり高杉さんだ」という引っ掛かりは否めないものの、あまりの頼もしさにこれからが楽しみです。

1点脱字の指摘です。
> 緊急連絡網の一旦に弓削が入っていたため
「弓削さんが」ですかね。川嶋さん、本音 漏れてる(笑)

リーベルG

公英さん、ありがとうございます。気付いていたのに、直し忘れてました。

きゅういち

新作の掲載開始、とても嬉しいです。
一点だけ、高杉さんの発言で、「どうぞ、ご心配ならさず」は「どうぞ、ご心配なさらず」でしょうか?

リーベルG

きゅういちさん、ご指摘ありがとうございます。

user-key.

「白川さん」か「高杉さん」かはたまた、他の人か、誰が魔女になるのかなぁ。
大穴で、ハイヒールのリンゴさんがセレモニーのゲストとか(ヲイ)

msft

いわゆるホットスタートというやつでしょうか?

せいろ

待望の新シリーズ!毎週月曜が楽しみです。

「尻を叩いてで」は「尻を叩いてでも」でしょうか。

リーベルG

せいろさん、ご指摘ありがとうございました。

ななし

寝る前に電話がかかってきて急遽外出する人が歯磨きするんだろうか?
普通の人は寝る前に歯磨きは済ませてますよね。

z

待望の新作で嬉しいです。
主人公は東海林さんと細川君ですね。「人形つかい」を読み直して
来週をまってます。

Dai

一周(週)遅れの間違い探し

> もう何度めかになる
微妙ですが、「何度目」では?

> その意図を知ってから知らずか

リーベルG

Daiさん、ありがとうございます。

とむ

1話時点では主人公(川嶋さん)が関わってから14ヵ月たったはずなので、Q-LIC の市政アドバイザリ契約の残りは1年未満なのでは?

リーベルG

とむさん、ご指摘ありがとうございます。
第3章の記述が違っていました。

コメントを投稿する