第32話:スパゲッティ・コードの石兵八陣
デスマーチ開発部のモニターに映し出されていたのは、文字の羅列ではない。
呪詛だった。
「ガアアアッ! 無理だ! 読めねぇ! なんだこの変数は! 『var a』ってなんだ! 『if』の中に『if』が30階層もあるぞ!」
天才エンジニア・猪口(許褚)が、髪を掻きむしりながら絶叫した。
彼が解析しているのは、5年前に退職した「伝説の前任者」が一人で書き上げたという、基幹システムのソースコード。
ドキュメント(設計図)は一枚もなく、継ぎ足し継ぎ足しで作られたその構造は、麺類が複雑に絡み合ったような「スパゲッティ・コード」と化していた。
「触れば爆発する……。一行直そうとすると、全く関係ないはずの決済機能が停止するんだ。……これは、迷宮だ」
猪口ですらサジを投げた。
勇(司馬懿)は、その奇怪なコードの森を静かに見つめた。
(……ほう。これはまさに、蜀の諸葛亮が魚腹浦に築いた『石兵八陣』だな)
かつて、呉の陸遜が迷い込み、風と波の音に惑わされ、あやうく脱出不能になった伝説の陣。
このコードも同じだ。論理的な構造を持たず、侵入者(修正者)を混乱させ、精神を摩耗させて殺すための罠。
「勇、どうする? 納期は明日だぞ。全部書き直す(リファクタリング)には半年かかる」
剛田が青ざめる。
勇は冷徹に即断した。
「正面から挑むな。解読する必要はない」
「は? でも直さないと動かねぇぞ?」
「直すのではない。『埋める』のだ」
勇はホワイトボードに向かうと、汚い図を描いた。
スパゲッティ状のコードの塊の上に、大きな箱を被せる図だ。
「この腐ったコード(石兵八陣)には一切触れるな。その外側に、綺麗な皮を一枚被せろ」
「ラッパー……?」
「そうだ。外部からの入力信号を、この皮が受け取り、内部の腐ったコードに適当に変換して渡す。そして出てきた結果だけを、また皮が受け取って綺麗に出力する。……中身がどれほど腐っていようと、外から見えなければ『正常』だ」
それは、エンジニアとしてのプライドを捨てた、禁じ手中の禁じ手。
臭いものに蓋をし、ブラックボックス化して、時限爆弾として封印する「先送りの計」である。
猪口が唸る。
「おい……それは技術的負債を倍増させる行為だぞ。数年後、メンテナンスする奴が死ぬぞ」
勇は猪口の目を真っ直ぐに見据えた。
「数年後のことなど知らん。我々のミッションは『明日、動かすこと』だ。……猪口、綺麗なコードを書きたいなら、墓場で書け。今は泥を塗ってでも生き残るのが先だ」
「……チッ。分かったよ、悪魔め」
猪口がキーボードを叩き始めた。
解読は諦めた。彼は驚異的な速度で「蓋」を作り、石兵八陣をその中に封じ込めていく。
中ではエラーが悲鳴を上げているかもしれない。だが、表面上は静寂そのものだ。
翌朝。
システムは「稼働」した。
見た目は正常。中身は地獄。
「動いた……! すげぇ!」
剛田が喜ぶ中、勇は冷ややかにモニターを見つめた。
(陸遜は石兵八陣を見て、深入りせずに撤退した。……レガシーシステムとは戦うものではない。封印するものだ)
勇は、このシステムの保守担当になるであろう未来の後輩たちに、心の中で合掌した。
---
【史実から学ぶビジネス兵法】
No.032:石兵八陣と迂回
夷陵の戦いの後、追撃してきた呉の陸遜は、諸葛亮が残した石積みの迷宮「石兵八陣」に迷い込んだ。陸遜はそこの殺気(異様な気配)を感じ取り、力攻めせずに撤退を選んだ。
ビジネス、特にシステム開発において、前任者が残したドキュメントのないレガシーコード(スパゲッティ・コード)は、現代の石兵八陣である。
これを真面目に解読・修正しようとすれば、工数は爆発し、精神は崩壊する。
「触らぬ神に祟りなし」。既存部分には触れず、ラッパー(Adapterパターン等)で包み込んでブラックボックス化し、迂回することこそが、納期という戦場で生き残る賢明な将の判断である。




