3週間のスプリントが5週間になる。誰も理由を説明できない。AIコンポーネント単体は動作する。インテグレーションは壊れ続ける。1ページのコンテキスト文書があれば防げた問題を、2人のエンジニアが4日かけてデバッグした。
これが壊れた引き継ぎだ。AIプロジェクトにおける遅延の最も一般的な原因であり、根本原因として追跡されることはほぼない。
壊れた引き継ぎの実際のコスト
損失の単位は時間ではない。スプリントのリセットだ。
スプリントのリセットとは、すでに承認された作業が再開されることを意味する。すでに下された決定が再び議論される。先に進んでいたエンジニアが引き戻される。この複利効果は、最初の遅延よりも深刻だ。
具体的なパターンを示す。エンジニアAがデータパイプラインを構築する。エンジニアBがそれを引き継ぎ、推論レイヤーを接続する。BはどのフィールドがNullableか、どのアップストリームソースが信頼できないか、なぜAが3つの特定のスキーマ選択をしたかを知らない。Bは仮定を立てる。そのうち2つが間違っている。推論レイヤーはサイレントエラーを抱えたままリリースされる。QAが4週目にそれを検出する。
修正に2日かかる。調査に3日かかる。スプリントがリセットされる。書面による成果物がなかった引き継ぎから生じた5日間の損失だ。
これを8人のエンジニアによる6ヶ月のプロジェクト全体に掛け合わせると、9ヶ月でデリバリーするプロジェクトになる。AIが難しかったからではなく、コンテキストが人と人の間で蒸発し続けたからだ。
AIシステムが引き継ぎ失敗を悪化させる理由
従来のソフトウェアは大きな音を立てて失敗する。壊れたAPI呼び出しは例外をスローする。フィールドの欠落はnullポインタを引き起こす。失敗の表面は可視化されている。
AIシステムは静かに失敗する。設定ミスのあるプロンプトは、もっともらしい出力を返す。検索ステップはエラーなしに誤ったドキュメントを取得する。埋め込みモデルは誤ってクラスタリングされたベクトルを生成し、下流のモデルはそれをそのまま使う。
これはAIプロジェクトにおける引き継ぎ失敗が、必ずしも即座に表面化しないことを意味する。それらは蓄積される。エンジニアがコンポーネントを引き継ぎ、合理的に見える変更を加え、本番負荷と実データの下でシステムが動作するまで現れない微妙な劣化を引き起こす。
3つの具体的な失敗パターンが繰り返し現れる:
- 文書化されていないモデルの前提。 元のエンジニアはモデルが入力長に敏感であることを知っていた。次のエンジニアは知らなかった。90日後にエッジケースが失敗し始めた。
- 評価ベースラインの欠如。 引き継ぎ前に「良い」状態がどのようなものかを誰も書き留めなかった。新しいエンジニアは自分の変更が動作を改善したか劣化させたかを判断する方法がなかった。
- 暗黙のデータコントラクト。 パイプラインは特定のフィールド形式を前提としていた。その前提は1人のエンジニアの頭の中にあった。彼らが去ると、前提も一緒に消えた。
これらはそれぞれプロセスの失敗であり、技術的な失敗ではない。AIが問題を引き起こしたのではない。成果物の欠如が引き起こした。
運用原則:英雄的行為よりプロセス成果物
DK1.AIのルールはシンプルだ。書き留められていなければ、存在しない。
これは文化的な価値観ではない。運用上の制約だ。AI Brand Presence向けに構築されたシステムは継続的に稼働する。エンジニアはローテーションする。コンテキストは劣化なしに人員交代を乗り越えなければならない。
AIコンポーネントの引き継ぎに必要な成果物セットには以下が含まれる:
- 決定ログ。 このアプローチを選んだ理由と、検討した代替案。日付入り。
- 障害インベントリ。 開発中に何が壊れ、なぜ壊れたか。sanitizeしない。
- 評価ベースライン。 具体的な入力、期待される出力、許容される分散。説明ではなく数値。
- データコントラクト。 すべてのアップストリーム依存関係、その信頼性評価、および失敗時の挙動。
- 既知の限界。 コンポーネントが劣化する箇所。うまく処理できない入力。設計されていない用途。
これを作成するには時間がかかる。それが要点だ。成果物の作成に費やした時間は、誰かが3時間の口頭ブリーフィングなしにコンポーネントを引き継ぐ最初の機会に回収される。
英雄的行為——すべてを頭の中に保持し、常に質問に答えられるエンジニア——はリスクだ。単一障害点を生み出す。システムをプロセスではなく人に依存させる。その人が不在のとき、プロジェクトは止まる。
プロセス成果物は退屈だ。しかし、スケールする唯一のものでもある。
実際にはどのような形になるか
コンポーネントは、その成果物セットが完成したときに完了とみなされる——コードがテストをパスしたときではない。コードレビューには成果物レビューが含まれる。非自明な選択に対する決定ログのエントリがないPRはマージされない。
引き継ぎはアドホックではなく、スケジュールされる。担当を外れるエンジニアと引き継ぐエンジニアが一緒に成果物セットを確認する。引き継ぎが完了する前にギャップが埋められる。引き継ぐエンジニアは、コンポーネントを所有するのに十分なコンテキストがあることを確認してサインオフする。
これにより、主要な引き継ぎごとに約4時間が追加される。スプリントのリセットはなくなる。計算は単純だ。
根本的な問題
AIプロジェクトは、技術の中心ではなく、人と人の間の継ぎ目で失敗する。モデルは動作する。パイプラインは動作する。引き継ぎが機能しない。
引き継ぎプロセスを修正すれば、AIプロジェクトの遅延のほとんどは消える。AIが改善されたからではなく、その周囲のシステムがより規律正しくなったからだ。
退屈なプロセスは英雄的なエンジニアに勝る。常に。