第12話「チーム殺しのデスマッチ!」
「……じゃあ、やるってことでいいんだよな?」
Slackのスレッドに、画面の言葉が静かに打ち込まれた。
難癖田から送られた“デンジャラス資料”は、技術的に明らかに矛盾した要件で構成されていた。
・「CDNなしで動画ストリーミング必須」
・「設計よりも実装を優先」
・「24時間稼働保証、夜間監視はNG」
・「フォームは15項目、でも3クリック完結」
「うわ〜、もう地獄じゃん」
画面が吐き捨てるように言い、目を細めながらFigmaを立ち上げる。
だが、誰も逃げようとはしていなかった。
「全部あと出しなんだよね、今回。
仕様変更前提で作れって、そりゃ構造が壊れるに決まってる」
それでも画面太志はしっかりとマウスを握っていた。
「だからもう、構造なんて捨てて、“変化を受け入れる構え”で組むしかないよね」
設計図よりも先に、UIの“変化に強い構成”を仮で組む。
パーツの粒度を限界まで細かく、スタイルも極限まで抽象化。
仕様がどんな方向に変わっても、最低限の調整で対応できるように。
「地図がないなら、全部ラフスケッチで描けばいい。リバースならリバースで、こっちが先行するしかないじゃん」
設計裕は頭を抱えながら、過去の案件フォーマットをめくっていた。
「設計書? こんな状態で、何をどう固定しろと……」
明文化できない仕様。
可変要素が多すぎる要件。
誰よりも“設計書至上主義”を掲げてきた彼にとって、これは冒涜に近い仕事だった。
「だが……設計が負けたら、このチームは潰れる」
彼は全要件を「確定/仮/未定」に分類し、仮仕様に対しても“設計的根拠”を記述する方式を採用。
あえて“あそび”を含んだ設計書を作成し始めた。
「構造じゃなく、“構造の耐久力”を設計してみせる」
「ふざけてる…
…これはもう、仕様ってレベルじゃないわ」
資料を開いた虫生は、眉ひとつ動かさず、ただ淡々とチェックリストを生成していた。
「全体で破綻してるからこそ、矛盾の“交差点”を先に炙り出しておく必要があるわね」
彼が作っていたのは、要件ごとの整合性チェックツール。
さらに、仮実装やモックを対象に、仕様の“先読みバグチェック”を自動化するスクリプト群を用意する。
「この条件なら、絶対に破綻する箇所が3つはある。そこを先に洗っておけば、後出しで爆発する確率を減らせる」
開発が先行する異常な状況でも、虫生のテストは追いついていた。
正確で冷静。
そして、敵意を燃料にするような気迫を秘めていた。
「CDNなしでストリーミング、しかも24時間稼働で夜間監視禁止……なめてんのか?」
電脳はつぶやきながら、クラウド環境に入る。
「なら、“夜間に壊れない構成”にしておけばいい」
バックアップ用のフェイルオーバー環境を設定。
本番サーバーに異常が起きた際、夜間は自動でバックエンドごと切り替え、通知を朝方までディレイするように設計した。
「監視しないけど壊れない。あんたの理屈、ちゃんと“矛盾しないように”潰してやるよ」
黙々と手を動かし、影で支えるメカニックのように、システムの骨組みを整えていく。
「“リバースデスマッチ”って……
どう考えても狙ってるよな…
あの野郎、俺を潰す気か」
以前の記憶が頭をよぎる。
あのときは、自分のステージング設定ミスで、フォーカードソリューションズの本番が数時間ダウンした。
だが、枝分は逃げなかった。
納男の姿を見ていくうちに、何かが切り替わったのだ。
「だったら……潰されないように、先に“仕掛け”ておく」
彼が始めたのは、技術的矛盾を仕様書から自動検出するツールの実装だった。
どんな無茶振り仕様も、枝分のツールが“論理崩壊のポイント”を可視化する。
それは、設計書の奥に隠された“地雷原”を描き出す地図となった。
「ちょっと待ってくれよ……
…この要件、明らかに潰しにかかってるぞ」
早刷はメンバーのSlackを駆け回りながら、調整案を探る。
だが、相手は「仕様は確定している」「対応できないなら他を探す」の一点張り。
「やっぱり……これは“試されてる”んじゃなく、“引きずり降ろしに来てる”」
早刷は、社内との調整だけでなく、納男の心理にも気を配っていた。
あいつは今、冷静だ。
でも――
この無理筋を前にした納男が、どこまで自分を抑えられるかは、誰にも分からなかった。
納男は、すべてのSlackチャンネルと仕様資料を行き来しながら、黙々と作業していた。
全体の進捗、未定義項目、既出バグ、仮API、補填案……
あらゆる要素を並べて、プロジェクトの“逆再生構成図”を描いていく。
「本来、設計が先で、実装はあと。
……なら今回は、“未来に起きる設計変更”を先に想定して動く」
言葉にするのは難しい。だが、技術的には可能だった。
彼は、自身のフルスタックとしての知識を総動員し、“仕様変更を飲み込める構造”を作ろうとしていた。
「俺たちは、制限の中で“自由”に走る。
あんたの逆走――納期でブチ抜いてみせる」
リバースデスマッチ――
それは「順番」や「正しさ」を逆手に取った、極悪な構造だった。
「あは〜っはっはっは……」
フローカードソリューションズ営業本部、誰も寄り付かない会議室の隅で、難癖田は小さく声を上げて笑っていた。
PCモニターには、送ったばかりの“デンジャラス資料”のPDFが開かれている。
その中身は、業務要件の皮をかぶった、意図的に矛盾と破綻を仕込まれた構成図。
技術的に不可能ではないが、まともに受け取れば確実に爆発するよう設計された、“地雷原”だった。
「ふふ……これでいい……これで“上がってきたチームの評判”も、ガックリ落ちるだろう」
難癖田の口元が吊り上がった。
かつて――
自分たちの案件を、あの“枝分”とかいう若造にぶち壊された事件。
本番とステージングの区別もできないような未熟な構成で、サービスをダウンさせた上に、公式謝罪まで出す羽目になった。
そのとき、上司にこう言われたのだ。
「技術側のミス? 君の管理責任もあるんじゃないの?」
それが許せなかった。
「ミスをしたのは、あっちだ。俺じゃない。
だけど、世間は“若手の挑戦を支える側が悪い”って言うんだよなァ……っ」
能木デッドラインズ――
若手主体のプロジェクトチームとして、最近社内でも外部でも話題になっている。
SNSで称賛され、採用資料に使われ、会社の“成長イメージ”を象徴する存在。
それが癪に障った。
「持ち上げられすぎなんだよ、あいつらは……
若手だから?
失敗しても成長の糧だから?
チームでカバーしてるから?
……笑わせるなよ」
難癖田は震える手で海外チェーンのカフェで購入したコーヒーを持ち、乱暴に一口飲み干す。
「だったら……こっちから“落ちていただく”までだ」
今回の“リバースデスマッチ”は、その第一弾。
破綻を織り込んだ設計。
明文化されていない矛盾。
文面だけ読めば成り立つように見えるが、組み上げた瞬間に崩壊するよう仕込まれている。
「無理難題を押し付けるわけじゃない。
“できないわけではない”仕様で、きっちり“詰ませて”やる」
そう、目的はただひとつ――
能木デッドラインズの“信頼と評判”を地に落とすこと。
彼らは調子に乗りすぎた。
若手のくせに。技術者のくせに。
納期? 納品? 信頼? チームワーク? 技術力?
それが何だ。
「ハリボテなんだよ、結局あいつらは。
“都合のいい場”じゃなきゃ力を出せない奴らだって証明してやるさ……」
難癖田の指が、モニターに表示された納男のSlackアバターをなぞる。
「その自信を、ボコボコにへこませてやる……
勝ちゃあいいんだよ!!
どんな手を使ってでもなァ!!」
その声は小さく、しかし確かな“執念”を孕んでいた。
しかし、彼は知らなかった。
この時点で、能木デッドラインズがすでに、仕様の裏にある罠に気づきつつあることを――。