
いずれもAI-drivenという点では共通しており、広義にはAI-DLC(AI駆動開発ライフサイクル)の実践手法と捉えられるが、その内実は三者三様だ。複雑なコードの改修に焦点をあてるRPI, よく練られた仕様に基づいてコードを組み上げるSDD, そして組織全体のプロセス変革を目指すAWSのAI-DLC。課題解決の主眼も成果物の位置づけも大きく異なる。
本稿ではまず、“AI-native” な手法と “非AI-native” な手法の違いを明らかにする。そのうえで、前者の最新アプローチであるRPI/SDD/AI-DLCが持つ思想の違いを整理していく。
🎧 本記事のAI音声解説版をポッドキャストで公開中
【ご視聴時の注意点】AI生成解説のため、内容には一部、原文から逸脱した軽微な誤りや、不自然な表現が含まれる可能性があります。大筋の理解には役立ちますが、詳細や正確な情報については、引き続き本ブログ記事をご確認ください。
- AIネイティブ(AI-native)と非AIネイティブ(AI-assisted, AI-first)
- AI-firstが限界を迎える3つの構造的理由
- AI-nativeなフロー: ワーク&ハンドオフからインタラクティブAIフローへ
- RPI/SDD/AI-DLCの実践がもたらすAI-native化
- どれを導入するかより、どう使い分けるか
- おわりに: 成熟を待つより、まずやってみる
- 参考文献
AIネイティブ(AI-native)と非AIネイティブ(AI-assisted, AI-first)
現状のAI活用状況は、まだまだLiftの域を越えず、Shiftに至っていない、というのが私の印象だ。
この「Lift」と「Shift」という言葉は、ソフトウェアシステムのクラウド化が進み始めた2010年代によく使われた。オンプレミスのシステムをそのままクラウドに移行するのがLift、アーキテクチャや構成をクラウド前提で最適化する方式がShiftである。
クラウドのポテンシャルを最大限に引き出すには、Liftだけでは不十分であり、Shiftしなければならなかった。そうすることで、システムがはじめて “クラウドネイティブ” と呼ばれるものになった。
AIを活用したSDLC/PDLCも同様であり、現状はまだLiftであってShiftに至っていない。すなわち、AIネイティブ化されておらず、AIエージェントのポテンシャルを完全には引き出せていないということだ。
AI導入によるワークフローの変化には、次の3段階がある。なお、これらの用語に統一化された明確な定義があるわけではなさそうなので、多分に私の解釈に基づいていることに留意してほしい。
- AI-assisted: 既存のワークフローをそのままに、部分的な作業をAIで効率化するアプローチ
- AI-first: 既存のワークフローの中で、AIの活用を最優先に置くアプローチ
- AI-native: ワークフローそのものを、AIエージェント前提に構築するアプローチ
つまり、“組織を動かすシステム” の最適化を “既存のワークフローの延長線上” で実現するか(1や2)、“AIエージェントを基盤として” 再構築するか(3)で、AIネイティブかどうかが分かれる。無論、後者がAIネイティブである。DORAレポート2025では前者を「Augmenting」, 後者を「Evolving」と呼んでいる*1。
GitHub Copilotを振り返れば、コード補完は典型的なAI-assistedであり、Chatもまた、その延長線上に位置づけられる。いずれも、従来のままのワークフローを前提とした支援にとどまっている。
しかし、2025年5月から6月にかけて、Claude Codeの正式リリースやGitHub Copilot ChatへのAgent modeの搭載などが進んだことで状況は変わり始めた。これにより、AI-firstな運用が現実的な選択肢となり、さらにAI-nativeへと向かう可能性も視野に入った。
とはいえ、実際の現場では、多くがAI-firstの段階にとどまっていたのではないだろうか。その背景には、AIエージェントの活用が、依然として個人単位のワークフローに閉じており、組織やプロセス全体の再設計にまでは踏み込めていない、という構造的な要因がある。
「個人の生産性は高まったが、チーム・組織の生産性は大きく変わらない」という声を耳にすることがある。これこそ、“個人単位のワークフローに閉じた現状” を、端的に言い表している。
AI-firstが限界を迎える3つの構造的理由
AI-firstという言葉自体には、大きな解釈の幅が存在する。本節ではその中でも、明示的なプロセス設計を伴わず、アドホックにプロンプトを与えながら、AIエージェントと協働で成果物を作り上げていく開発スタイルをAI-firstとして扱う。
そのうえで、このスタイルには本質的な限界がある。いくつかの問題を抱えているからだ。
そのなかでも特に次の3点が大きい。これらに共通しているのは、“人間が頭の中で管理しているコンテキスト” を、そのままAIエージェントに丸投げする点にある。
- コードが複雑になりやすい / 複雑なコード相手ではうまく機能しない:
- AIは「シンプル」化より「簡単」に実現する方法*2を好む。結果として複雑化が進行する。
- スペックドリフトが生じやすい:
- 仕様の漏れや曖昧さをAIが勝手に “それっぽく” 補完してしまう。人間がそれに気づけない。
- チーム・組織の生産性が、個人のAI活用スキルに大きく依存する:
- AIを使いこなす技術が「個人の職人技」に留まり、チーム・組織全体を底上げする仕組みが欠如している。
1について補足すると、こうなる理由の1つは、AIエージェントが、本質的複雑性と偶有的複雑性を区別できないことで生じる*3。コードベース上でこれらが絡み合って存在するからだ。
ソフトウェアには、解決すべき問題そのものに起因する「本質的複雑性」と、過去の回避策や古いフレームワークによる「偶有的複雑性」を内在している*4。後者は技術的負債にもなり得る。
AIはこの二つが絡み合った状態から「どこでビジネスロジックが終わり、どこからが古い仕組みなのか」という境界線を見出すことができず、単に古いロジックの上に新しい層を重ねてしまう。つまり、“簡単に実現する方法” を選択しがちだ。結果、コード設計はシンプルにならず、より複雑化する。
これが、AIエージェントに「リファクタリングして」と投げても、うまくいかないことがある理由の1つなのだろう。
AIで加速した世界では、こうして複雑化したコードの蓄積も加速する。あっという間に、追加開発や保守が困難な状況に陥ってしまうのだ。
1の複雑性の話だけでなく、2や3についても、対策として採用されやすいのは、人間の介入を増やす方向性だろう。つまり、AIによる最終成果物を、人間が “後から” 丹念に “レビュー” することでカバーするアプローチである。
しかし、これでは時間もかかる上に、手戻りも大きい。これが、AI導入効果の制約となる。AIによる加速が、そのままレビューという “人間のボトルネック” を肥大化させる結果となり、組織としての真の導入効果を損なってしまうのだ。
AI-nativeなフロー: ワーク&ハンドオフからインタラクティブAIフローへ
AI-nativeな手法の特徴は、最終的な実装(コード生成)の前に、コンテキストを構造化し、実行の指針となる中間成果物を段階的に確定させる開発プロセスにある。これらを、“AIエージェントが駆動” して、人間と協働でフローを進める。
こうすることで、AIの非決定性の削減に注力し、期待する成果物を得ようとする。つまり、後ではなく、先に手間をかけるのだ。そこで作成された中間成果物が、AIエージェントに対する制約となる。
一見するとウォーターフォールモデルへの回帰のようでもあるが、そうではない。フィードバックサイクルの長さが違う*5。AI-nativeなワークフロー/プロセスのサイクルは、数時間から数日レベルだ。これは、アジャイル手法による数週間レベルよりもはるかに短い。
また、工程単位での分業ではない点も異なる。特に、SDDや、AWSのAI-DLCは、クロスファンクショナルやペア・モブで全工程を進めることを想定されたものだ。
従来のような、“ワーク&ハンドオフ” の連続によるフローは、AI時代には適さない。着手した個々のワーク(WIP)がAIで加速するほど、ハンドオフでの待ち時間が最大のボトルネックとなるからだ。
そのうえ、工程をまたぐたびに生じる「引き継ぎのムダ*6」によって情報劣化が生じる。すなわち、コンテキストが欠落することでAIによる “勝手な推論” が混入し、スペックドリフトなどを誘発する。
だからこそ、全工程をクロスファンクショナルに進め、コンテキストをシームレスに繋ぎ、共有し続けることが合理的となる。

その最適解が、AIエージェントが情報の構造化をリードし、人間がその場で判断を下す「インタラクティブAIフロー」とでも言うべきスタイルだ。これは、Human-in-the-loopのもとで、人間が高速にOODAループを回し続けるプロセス*7に他ならない。
人間はパイロットであり、AIエージェントは航空機の制御システムだとイメージするとよいだろう。

RPI/SDD/AI-DLCの実践がもたらすAI-native化
RPI, SDD, そしてAWSのAI-DLC。これらは呼称こそ異なるが、いずれもインタラクティブAIフローを体現する、紛れもないAI-nativeな開発アプローチである。
少々ややこしいのは、RPIをSDDと呼ぶこともでき*8、SDDをAI-DLCの一形態として定義する見方もある*9という点だ。これらを包括的に捉えるならば、すべては AI-DLC(AI-Driven Development Life Cycle, AI駆動開発ライフサイクル) という大きな概念に集約される。
では、なぜ複数のモデル名が存在するのか。
それは、それぞれが解決しようとする “課題の重点” が異なっているからだ。本節では、そこに焦点をあてる。
RPI(Research, Plan, Implement)
RPIが目指すのは、“複雑なコードベースに対する適切な変更を可能にする” ことだ。AIによる技術的負債予備軍の大量生産を防ぐため、人間がリサーチ結果をレビューし、アーキテクチャ上の決定を計画に固定するプロセスである。
このモデルは、オープンソースのAIエージェントであるgooseで用いられていることでも知られており、ドキュメントにはこう記されている。
多くの人は、AIエージェントを「このコードをリファクタリングする」、「この機能を削除する」、「この新機能を追加する」といった形で直接実行に移します。これは、特に小さな変更やコードベースではうまく機能する場合もありますが、複雑な変更ではうまくいかないことがよくあります。
引用: 「Research → Plan → Implement Pattern | goose」ページ内の文章をGoogle翻訳
gooseでは、複雑なコードベースの変更を体系的に処理するために、レシピを用いた構造化されたRPIワークフローを採用しています。
引用: 「Research → Plan → Implement Pattern | goose」ページ内の文章をGoogle翻訳
ワークフローは、その名が示す通りだ。
Research(調査) → Plan(実装計画) → Implement(実装実行)
gooseのRPIでは、このPlanによる成果物を「Source of Truth」としている。徹底的なResearchに基づき、Planが精緻に組み上がれば、AIによるImplementの再現性と成功率は飛躍的に高まる。

RPIは、コンテキストウィンドウを適切に活用するための戦略である点にも注目したい。
AIエージェントは、巨大すぎるコードベースや大量のドキュメントといった膨大な情報を前にすると、推論精度が著しく低下する傾向がある。そのため、人間がアドホックなプロンプトで直接的にImplementを命じるのは迷走を招くおそれがある。だからこそ、事前にResearch, Planという段階を経て、情報の絞り込みを行う。
実際、gooseのRPIレシピでは、Research工程においてサブエージェントを活用し、メインのコンテキストウィンドウをノイズで圧迫させない工夫も見られる。
AIにとってのコンテキストウィンドウは、人間の脳で言うところの「ワーキングメモリ」だ。それはすなわち、AIにとっての「認知負荷」を考慮に作業を進める必要性を示している。たとえ巨大なコンテキストウィンドウを持っていても、溢れてしまうこともあれば、迷子(Lost in the Middle)になることもある。
つまりRPIとは、AIエージェントの “認知負荷” を適切に管理する設計プロセスなのだ。情報の海から必要なコンテキストだけをすくい上げ、純度の高い “Plan” に昇華させることで、最終的な “Implement” の成功確率を決定論的なレベルへと近づけるための戦略なのだ。
SDD(Spec-Driven Development)
RPIが「手順の合意」に重点を置くのに対し、SDDは “振る舞いの合意” に重点を置く。仕様書の中に “期待される入出力” や “満たすべき制約” を明文化し、それを人間とAIの間での “検証可能な契約” へと昇華させるのが、その本質的な狙いである。
これにより、AIが実装時に行う恣意的な補完(スペックドリフト)を抑止し、成果物が要件を満たしているかを客観的に評価可能な状態にする。
ワークフローは、各フレームワークの実装に準じるが、概ね次の3ステップで構成される。
Specify(仕様策定) → Plan(実装計画) → Implement(実装実行)
Kiroのモデルに寄せたcc-sddでのスラッシュコマンド*10では、次のようになる。
- Specify: /spec-init, /spec-requirements
- Plan: /spec-design, /spec-tasks
- Implement: /spec-impl
GitHubのSpac Kitではこうだ。
- Specify: /specify
- Plan: /plan, /tasks
- Implement: /implement
RPIでは、Planの成果物を「Source of Truth(SoT)」としていたが、SDDではその位置づけにおいて思想が分かれる。
ひとつは、Specifyによる成果物を永続的なSoTとする思想だ。従来の開発ではコードをSoTとしていた。しかしこの思想では、コードを一種の副産物とみなす*11。従って、エンジニアがコードを直接変更することはなく、仕様を変更し、AIに再生成させることでコードを追随させる。
もうひとつは、Specifyによる成果物を「コードを正しく生成するためのガイド」と位置づける思想だ。ここでのSoTは、従来通りあくまでもコードである。仕様書はAIとの合意形成を加速させ、実装の精度を高めるための中間成果物として機能する。

これらのことから、SDDには3つのレベルがあるとされる*12。
- Spec-first: 熟考された仕様を最初に書き、それをガイドとしてAIが開発を行う。あくまでその場のタスクを完結させるための手法。
- Spec-anchored: タスク完了後も仕様を保持し続ける。機能の拡張やメンテナンスの際にも常にその仕様を起点とし、継続的に活用する。
- Spec-as-source: 仕様をSoTとする究極の形。人間は仕様のみを編集し、コードには一切触れない。コードは仕様から生成される副産物。
先に挙げたcc-sddやSpec Kitは、1のSpec-firstに位置づけられるだろう。2のSpec-anchoredを目指している可能性もある。
いずれにしても、実装根拠となるドキュメントがコードと共にリポジトリに管理されることで、コンテキストの完全なトレーサビリティが確保される点は、極めて大きな恩恵だ。これにより、将来の拡張時においても、AIは過去の意図を正確に踏まえた推論が可能になる。
また、SDDはこれらのワークフローをペアやモブで実施することも意識している。AIが構造化を駆動し、人間がその場で判断を下す。この同期的な協働こそが、従来の「ワーク&ハンドオフ」型のフローから脱却し、待機時間をゼロに抑え、情報の劣化を最小化する解なのである。
AWSのAI-DLC(AI-Driven Development Life Cycle):
AWSが定義するAI-DLCは、AIの自律性とスピードを最大限に引き出すためのプロセス・体制を定義し、組織全体をAIネイティブ化するための方法論(メソドロジー)である。
ここで重視されるのは、AIとの共生を前提に再構築された「儀式」そのものだ。特に、AIがファシリテーターとして人間に問いを投げかけ、作業を誘導する「会話の方向の逆転(Reverse the Conversation Direction)」を基本原則とする。
ワークフローは以下の3段階で構成される(日本語訳はAWSドキュメント*13に準拠)。
Inception(開始) → Construction(構築) → Operations(運用)
Inception: ビジネス上の「Intent(意図)」を、開発可能な最小単位である「Unit」へと分解するフェーズ。AIが「モブ・エラボレーション」の進行役となり、ユーザーストーリーや非機能要件、テスト基準を提案。チーム全員がその場で検証・修正を行うことで、認識の齟齬を瞬時に解消する。これはRPIやSDDにおけるResearch/Specifyを、より組織レベルへ昇華させたものといえる。
Construction: Unitをデプロイ可能な成果物へと変換するフェーズ。AIがモデリングからコード生成、ユニットテストまでを連続的に実行する。人間は「モブ・プログラミング」や「モブ・テスティング」を通じて成果物を即座に評価し、品質とビジネス目標への整合性をリアルタイムで担保する。
Operations: システムのデプロイ、監視、および保守を行うフェーズ。AIがテレメトリデータを分析して異常検知やSLA違反の予測を自動化し、解決アクションを提案する。人間は提案の検証と承認に専念することで、運用の圧倒的な効率化を実現する。
“DLC” と名乗るだけあって、Operationsまでカバーしている点が、RPIやSDDとは大きく異なる。

AWSのAI-DLCもまた、SDDと同様に実装根拠のトレーサビリティ確保を意図している。AIが生成したすべてのUnitと決定プロセスが記録されることで、ブラックボックス化を防ぐ設計となっている。
ホワイトペーパーのAppendix Aとして付属されたプロンプトを試すことで、その片鱗に触れることができる。また、AWS LabsのGitHubに、aidlc-workflowsというリポジトリもあるので、こちらを試してみるのもよいだろう。これらはKiroやAmazon Q Developerへの導入が可能だ。
どれを導入するかより、どう使い分けるか
AI-nativeなアプローチ(RPI, SDD, AI-DLC)と、非AI-nativeなアプローチ(AI-assisted / AI-first)は、択一問題ではない。いずれも銀の弾丸ではなく、少なくとも現時点では、解決すべき課題の性質に応じて戦略的に使い分けることこそが肝要だろう。
まず、RPI, SDD, AI-DLCは、先述した次の3つの問題を解消・軽減する対策として位置づけられる。ここから、選択の基準が見えてくる。
- コードが複雑になりやすい / 複雑なコード相手ではうまく機能しない → RPI
- スペックドリフトが生じやすい → SDD
- チーム・組織の生産性が、個人のAI活用スキルに大きく依存する → AI-DLC(SDD)
これを踏まえたうえで検討するなら、それぞれの用途を以下のように基準化できる。
小規模なバグ修正、定型的なリファクタリング
- アプローチ: 非AI-native
- 判断基準: 前提知識が限定的で、AIが迷走するリスクが低いとき。ドキュメントを生成・レビューするオーバーヘッドを避け、AIへの直接的な指示で手軽さと速度を優先するシーン。
影響範囲が不明瞭、技術的に複雑性の高い既存コードの変更
- アプローチ: RPI
- 判断基準: 巨大なコードベースや古い負債に手を入れる際、いきなりコードを書かせるとAIが破壊的な変更を行うリスクがあるとき。事前の調査と計画によって、AIの認知負荷を制御する必要があるシーン。
- 補足: 現時点で言えば、非常に複雑なものについては、非AI-nativeなアプローチや人手に頼る手法が効果的な場合もある。
単機能の開発
- アプローチ: SDD
- 判断基準: リファインメントによって既に最小単位に分割されたプロダクトバックログアイテムを扱うとき。実装前に「振る舞いの契約」を交わし、スペックドリフトを抑止したいシーン。
抽象度が高く、分割・詳細化前の開発
- アプローチ: AI-DLC(InceptionからConstructionまで)
- 判断基準: ビジネス上の意図がまだ抽象的で、それを開発可能な単位(Unit)へ分解する段階からAIを介入させたいとき。AIをファシリテーターとして、チーム全体の合意形成を加速させたいシーン。
おわりに: 成熟を待つより、まずやってみる
AIエージェントによるSDLC/PDLCの変容は未だ過渡期の真っ只中にあり、今後も変化が続くだろう。今日採用した技術や方法論が明日には別のものに置き換わっている、といった事態も珍しくはない。
こうした状況下では、新しいツールや手法への着手を億劫に感じるのも無理はない。導入に要した労力が、技術の陳腐化によって無駄になることを避けたいという心理は、合理的ですらある。
これは、RPIやSDD, AWSのAI-DLCも例外ではない。実際、SDDは、Technology Radarにおいて未だ「Assess」のフェーズにある(2026年1月時点)。
しかし、成熟を待っていては、その間に個人や組織の成長は止まってしまう。たとえ成熟期が訪れたとしても、そこに至るまでの試行錯誤や変遷を知らぬままでは、技術の “本質” を見抜き、使いこなすことは困難だろう。
変化の激しい今だからこそ、あえて荒削りな技術に触れ、その違いや進化の経緯を肌で感じるべきだ。その実戦的な理解の積み重ねこそが、次の新しい波を最大限に活用する力を養い、ひいては個人としても組織としても、競争優位を生む源泉になるのではないだろうか。
参考文献
*1:2025 DORA State of AI-assisted Software Development Report」DORA, 2025年, P82-P83
*2:Rich Hickey「Simple Made Easy」InfoQ, 2011年10月20日
*3:Jake Nations(Netflix)「The Infinite Software Crisis」AI Engineer, 2025年12月21日, 「Simple vs. Easy (Rich Hickey’s Definition) 」07:40~
*4:フレデリック・P・ブルックス,Jr. 著, 滝沢 徹, 牧野 祐子, 富澤 昇 訳『人月の神話【新装版】』丸善出版, 2014年, 第16章
*5:Liu Shangqi「Spec-driven development: Unpacking one of 2025’s key new AI-assisted engineering practices」Thoughtworks United States, 2025年12月4日, 「Is spec-driven development just a return to waterfall?」
*6:メアリー・ポッペンディーク, トム・ポッペンディーク 著/平鍋健児 監訳/高嶋優子, 天野勝 訳『リーン開発の本質 ソフトウエア開発に活かす7つの原則』日経BP, 2008年, 第4章
*7:mtx2s「AI導入により生じる“自動化のパラドックス”と“デスキリング”に打ち勝つ」mtx2s on note, 2025年12月1日
*8:Jake Nations(Netflix)「The Infinite Software Crisis」AI Engineer, 2025年12月21日, 「Simple vs. Easy (Rich Hickey’s Definition) 」11:08~
*9:「GitHub - gotalab/cc-sdd: Spec-driven development (SDD) for your team's workflow. Kiro style commands that enforce structured requirements→design→tasks workflow and steering, transforming how you build with AI. Support Claude Code, Codex, Cursor, Github Copilot, Gemini CLI and Windsurf.」
*10:「cc-sdd/docs/guides/ja/command-reference.md at main · gotalab/cc-sdd · GitHub」
*11:Liu Shangqi「Spec-driven development: Unpacking one of 2025’s key new AI-assisted engineering practices」Thoughtworks United States, 2025年12月4日, 「Defining spec-driven development and competing interpretations of it」
*12:Birgitta Böckeler「Understanding Spec-Driven-Development: Kiro, spec-kit, and Tessl」martinfowler.com, 2025年10月15日
*13:Masao Kanamori 訳「AI 駆動開発ライフサイクル:ソフトウェアエンジニアリングの再構築」Amazon Web Services ブログ, 2025年8月8日






























