第13話「早刷の初オーバーヒート」
「またあの事故チームがやらかすらしいぞw」
「“能木劇場・第二幕”開演ってかw」
「バグに追われて今ごろ地獄じゃね?」
フォーカードソリューションズの社内SNS「Flo社クラスタ」で、難癖田の名前が添えられたコメントが静かに拡散されていく。
直接名指しはしない。
ただ、文脈とタイミングで誰のことを指しているかは一目瞭然だった。
難癖田は、Slackでスクショを確認しながら、おしゃれなロゴが印刷されたコーヒーの紙カップを軽く振る。
「よし……じわじわ火をつけていこうか」
だがその一方――
能木デッドラインズのSlackは、予想外に落ち着いていた。
「はい、変更入った〜! でもこっち、もう仮想化UIで切ってあるから。
要件ごとに分離済みなんで、影響はミニマムで済むよ」
画面太志の設計は、矛盾の波を飲み込むために、すでに仕様別のコンポーネントレイヤーに分解されていた。
仕様が後から変わることが分かっていたから、不確定要素ごとに処理を分割していたのだ。
「目指す仕様の場所は“ゴール地点”じゃなくて、“中継地点”だ。
変わることが分かっているなら、“変わる前提で仕込む”。
それが今の設計だ」
設計裕は、あえて全仕様に「確定度ランク」をつけた設計書を導入。
関係者に「確定/暫定/未定」のタグを明示し、議論の余地がある場所と、動かしていい箇所を可視化した。
「無茶は、透明化すれば、ただの“事実”になる」
「どんどん矛盾が追加されてる……いいね、燃えるわ」
虫生は、過去の破綻仕様をまとめた“クライアント仕様矛盾カタログ”から類似パターンを抽出。
想定されうる爆発ポイントに対して、事前検証スクリプトを自動生成するシステムを組んでいた。
「全部、こっちの“定義”に落とし込んでしまえばいい。
相手がめちゃくちゃなら、アタシが“仕様の意味”を定義してやる」
「想定通り、リクエストが急増する設計か…
…よし、夜間リカバリ機構を1段階強化」
監視禁止の条件下で、電脳は自己修復機能を持つミドルウェア構成を適用していた。
さらに、アプリ側からのメトリクスを用いて、深夜帯の異常判定と遅延通知を可能にしていた。
「言われた通りに監視しないよ。
ただ、俺は“壊れないように設計してる”だけさ」
「“納品用ブランチに手を入れるな”とか、何それ、バグ誘発指令?」
新たな制約に対し、枝分は一時的ブランチ・シャドウ運用システムを即興で構築。
クリーンブランチとワーキングブランチを完全に分離し、任意の条件下で切り替え可能なCI/CD構成を編み上げる。
「こっちはもう、“構成そのものが可変”なんだよ。
条件が無理なら、条件の方を“吸収”してやる」
以前の気弱な姿がちらつく枝分は、もうどこにもいなかった。
「“ミーティングは週1、でも逐次進捗報告”って、明らかに釣りだろ……」
矛盾するコミュニケーション要件にも、早刷は慣れていた。
能木デッドラインズのSlack自動レポートbotを再設定し、進捗報告を“無言の可視化”で運用。
「仕様が変でも、報告が一貫してれば“信頼”は残る。それが俺の仕事だ」
「なるほど……全部“詰ませる”ための仕様か。
でもそれ、もう“成立しない”よ。
俺たちは、“変化ごと飲み込む構造”で動いてるから」
納男は、全仕様を機能単位に分解し、技術的整合性と実装優先度を再構成した要件マップをSlackで共有。
そのマップには、誰もが対応可否を即時判断できる視覚的インターフェースが並んでいた。
「情報が崩壊してるなら、“情報を再構成する”だけだ。
それがフルスタックエンジニアの走り方なんだよ」
「え、これで対応してるの……?」
「なんか逆に、あのチームの凄さが分かってきた」
「デスマッチの中で納品してるのヤバくない?」
難癖田が仕込んだはずの“炎上案件”が、いつの間にかフォーカードソリューションズ社内で「技術力の象徴」として注目され始めていた。
Slackの進捗チャネルに緑色のステータスが連続で投稿される中、
ひとつの通知が――静かに、だが確実に空気を変えた。
@hayazuri 太郎さんが「仕様要件逆マッピングシート(v5.4)」を更新しました
内容:対案付きでの代替案提示テンプレート付き。全不整合ポイントの明示。
そのドキュメントには、これまで早刷が社内外で蓄積してきた”裏ルートの交渉知見”が詰め込まれていた。
複数の曖昧仕様に対して、「はい/いいえ」ではなく、「この条件下ならYes」という柔軟な言語変換が網羅されていた。
納男がSlackでつぶやく。
「……すごい、これ。“対決するための資料”じゃなくて、“言い逃れできない資料”だ……」
その夜、能木デッドラインズの定例ボイスチャンネル。
早刷は珍しく、マイクをオンにしたまま言葉を噛みしめるように話していた。
「……ずっと、“我慢してた”んだよ、俺は。
現場が理不尽なのも、クライアントが二転三転するのも、仕方ないって。
でもさ――
“意図的に潰しに来てる”奴には、遠慮いらねぇよな」
その声には、普段の優しさも、調整の柔らかさもなかった。
ただ、燃えるような怒りと、仲間を守るという“意思”だけが宿っていた。
「俺は、言葉で戦う。仕様で潰す。書類で締める。
……それが、俺の“オーバーヒート”だ」
Slack の未読バッジが燻るように増えていく。
早刷はタスクボードの列を—緑(完了)と黄(進行中)が交互に伸びていく様子を—無意識にスクロールしていた。
・画面:可変 UI コンポーネント 90 %
・虫生:矛盾検証スクリプト 80 %
・電脳:夜間フェイルオーバー自動切替 100 %
・枝分:シャドウブランチ/CIゲート 95 %
・納戸:逆引き仕様マップ β版 リリース済
──数字だけ見れば、悪くない。
むしろ異常な速度だ。
けれど胸の奥がひりつくのは、ここまでやってもまだ「地雷原の入口」に過ぎないと分かっているからだ。
「いいぞ、もっと無理筋を追加しろ。
崩れるのを待ってやる」
難癖田のチャット履歴が脳裏を掠める。
SNSでは “事故チーム再炎上” の火種をばら撒きながら、本社には「能木に任せれば爆発する、証拠は過去の障害」とプレゼンしているらしい。
──目的は、俺たちの“評判”そのものを地面に叩きつけること。
納期を守っても、仕様を満たしても、「やっぱり不安定」とラベリングさえできれば勝ち。
テーブルをひっくり返す瞬間を、あの男は待っている。
画面の Figma からは更新通知が鳴り、虫生のスクリプトが次のバージョンを回し始める。
枝分のパイプラインは緑のチェックマークを灯し続け、電脳のダッシュボードは夜間負荷のシミュレーションを完走させていた。
こんなチーム、他にあるか?
――なのに外では「また炎上確定w」の大合唱。笑わせんな。
早刷はマイクをミュートのまま握り締めた。
声を出すと、怒りが滲んで止まらなくなりそうだったから。
調整役? いいさ。
けど今回は、調整じゃなく“決着”をつけてやる。
納男が前を走るなら、俺は背中を風圧で押し上げる。
難癖田——お前の狙いごと、書類で叩き潰す。
タスクボードの「報告」列に新しいカードを追加する。
タイトルはただ一行。
「逆仕様マッピング v6.0 — 抜け道ゼロ案」
エンターキーを叩く音が、夜のオフィスに硬く響いた。
翌朝。
難癖田が、進捗チャートを叩きつけるように示した。
「なんだこれ!? 緑が……緑が増えてる!?
こんなのリバースデスマッチじゃない!!
もっと無理筋を追加しろ!!
構成を逆に! デプロイのタイミングを前倒しにしろ!!」
会議室がピリつく。
そこに、静かに画面共有をはじめたのは――納男ではなく、早刷 太郎だった。
「その要望、無効です」
「はァ!? 何を――」
「“矛盾指摘済み”、“技術的説明済み”、そして“代替案提示済み”です。
あなたの社内向けSlackにも、この資料、転送してあります。
記録、残してますので」
冷たい静けさ。
だがそこに宿るのは、明確な怒り。
かつてない熱量――オーバーヒート。
難癖田の顔が強張った。
もう彼らは単なる納品チームではない。
交渉の場で“支配されることに慣れた顔”ではなかった。
特に能木デッドラインズの早刷太郎――
今、彼の“調整力”が、“最大火力”に転じていた。
「……やっぱり、この人がいてくれて良かった」
納男は隣で、思わず呟いた。