「ピボットしよう」
CEOの長谷川がそう言ったとき、渡辺聡は自分の心拍数が上がるのを感じた。会議室の空気が変わった。五人の経営チームの視線が、長谷川に集まっている。
渡辺聡、三十四歳。SaaS企業「StackLine」の共同創業者兼CTO。シリーズBで三十億円を調達してから八ヶ月。ARRは十八億。前年比百六十パーセント。数字だけ見れば順調だ。
でも、投資家の顔色が変わり始めていた。市場環境が変わったのだ。
StackLineのプロダクトは、企業向けのデータ分析プラットフォーム。SQLを書けないビジネスユーザーでも、自然言語でデータにクエリを投げられる。聡が二年かけて設計したアーキテクチャの上に、チームが丹念にコードを積み上げてきた。
そこにChatGPTが来た。そしてGPT-4が来た。Claudeが来た。Geminiが来た。大手クラウドベンダーが、自然言語データ分析の機能を標準搭載し始めた。
StackLineの売り——「SQLを書かなくてもデータ分析ができる」は、もはや差別化要因ではなくなった。
「AI Agentに全振りする」と長谷川は続けた。「データ分析プラットフォームとしてのStackLineは、遅かれ早かれコモディティ化する。でも、AI Agentとしてのデータ分析は、まだ誰も確立できていない。そこを取りに行く」
聡はホワイトボードを見た。長谷川が描いた新しいアーキテクチャ図。LLMの上にマルチエージェントを載せ、データパイプラインを自動構築する。言葉にすれば美しい。投資家にも刺さるだろう。
ただ、聡の頭の中では、別の声が鳴っていた。
——俺たちが二年かけて作ったもの、捨てるのか。
聡は何も言わなかった。まだ。
会議が終わった後、聡はオフィスの屋上に出た。三月の夜風が冷たい。タバコは吸わないが、こういうとき屋上に来る癖がついた。
StackLineのコードベースは、約四十万行。聡がゼロから設計したクエリエンジンは、その中核をなしている。SQLの実行計画を最適化し、自然言語の曖昧さを吸収する独自のパーサー。業界でも類を見ない技術だと、聡は自負している。
ピボットすれば、そのコードの大部分は不要になる。LLMベースのAgent型アーキテクチャとは、設計思想が根本的に違う。聡が作ったクエリエンジンは、「ルールベースの正確さ」に最適化されている。LLMは「確率的な柔軟さ」で動く。水と油だ。
技術的に正しい判断は、「既存のアーキテクチャを活かしながら、段階的にLLM連携を強化する」ことだ。聡にはそれがわかっている。全面的なピボットではなく、漸進的な進化。
でも——それでは「物語」が弱い。投資家が求めているのは、「AI Agent」というバズワードに全力で乗った、エキサイティングなストーリーだ。段階的進化なんて言ったら、次のラウンドは閉じられない。
聡は、技術的誠実さと生存本能の間で、冷たい夜風に吹かれていた。
翌日、聡はエンジニアチームのリーダー・黒田を呼んだ。黒田は二十八歳。聡の次に古いメンバーで、クエリエンジンの実装を一緒にやってきた人間だ。
「黒田、率直に聞きたい。ピボットの話、どう思う?」
黒田はしばらく黙った。それから、慎重に言った。
「技術的には——リスクが大きいと思います。今のアーキテクチャを捨てるということは、チームが積み上げてきたドメイン知識も捨てるということです。LLMベースの新しいアーキテクチャを、ゼロから構築する。チームにその経験は——正直、ありません」
「だよな」
「渡辺さんは、どう思ってるんですか?」
聡は窓の外を見た。向かいのビルの窓に、夕日が反射している。
「俺は——わからない。技術的には、お前の言う通りだ。でも、市場が動いてる。投資家も動いてる。立ち止まってたら、死ぬかもしれない」
「死ぬのと、間違った方向に走るのと、どっちがましですか?」
聡は黒田を見た。黒田の目は真っ直ぐだった。
「——間違った方向でも、走ってれば方向転換できる。止まってたら、それすらできない」
その言葉は、聡自身を説得するために発せられたものだった。黒田に向けたというよりも。
一週間後、聡は経営チームの前でプレゼンした。「技術ロードマップ v2.0」。
内容は——ピボットへの全面賛成だった。LLMベースのAgent型アーキテクチャへの移行。既存のクエリエンジンは段階的に置き換え。チームの半数をAgent開発にシフト。外部からLLMエンジニアを三名採用。
長谷川は満面の笑みだった。「さすが聡。これでいこう」
聡は頷いた。プレゼンの間、聡の声は安定していた。スライドの内容は論理的で、技術的な裏付けもあった。移行計画のタイムラインも現実的に見えた。
ただ、一つだけ嘘があった。
「既存のクエリエンジンのコアロジックは、Agent型アーキテクチャの中でも活用できます」——そうスライドには書いた。実際には、聡にはそれが不可能であることがわかっていた。設計思想が違いすぎる。活用するよりも、ゼロから書いた方が早い。
でも「ゼロから書き直す」と正直に言ったら、チームの士気が崩壊する。自分たちが二年間かけて作ったものが「無駄だった」と言われるのと同じだから。
だから聡は、嘘をついた。技術的な嘘を。CTOが、技術に対して嘘をついた。
深夜。自宅のデスクで、聡はStackLineのGitHubリポジトリを開いた。クエリエンジンのコード。二年分のコミット履歴。聡と黒田が徹夜で書いた箇所、バグに苦しんだ夜の記録、リリース直前に発見した致命的な問題を深夜三時に修正したコミットメッセージ。
「fix: edge case in natural language parser - ようやく解決!」
聡はそのコミットメッセージを見て、少し笑った。あの夜のことを覚えている。黒田と二人で、Red Bullを飲みながら、パーサーのバグを追いかけた。朝方、テストが全部通ったとき、黒田が「やりましたね」と言って、聡は「ああ」と答えた。それだけの会話だった。でも、あの瞬間の充実感を、聡はまだ覚えている。
そのコードを、捨てる。
いや——「活用する」と言った。「活用できる」と。
聡はGitHubを閉じた。代わりにSlackを開き、「#engineering」チャンネルにメッセージを投稿した。
「みんな、来週から新しいフェーズに入ります。StackLineを次のレベルに持っていく。今までの技術の蓄積を活かしながら、新しい挑戦をしていきましょう。詳細は月曜の全体会議で」
「活かしながら」。
聡はその言葉を打ちながら、自分が何を失おうとしているのかを、正確に理解していた。
それでも送信ボタンを押した。生き残るために。
(最終話「何もつくらなかった人」へ続く)