![[セッションレポート]Al Agent 時代のソフトウェア開発の型 ~Everything as Codeで智を伝える〜 #AWSSummit](https://images.ctfassets.net/ct0aopd36mqt/IpyxwdJt9befE2LRbgxQg/028ee4834e885c77086d6c53a87f1c10/eyecatch_awssummitjapan2025_sessionj_1200x630.jpg)
[セッションレポート]Al Agent 時代のソフトウェア開発の型 ~Everything as Codeで智を伝える〜 #AWSSummit
開発に関する人間の考えをAIに伝えるには
おのやんです。
AWS Summit Japan 2025で、次のセッションを聴講してきましたので、内容をまとめます。
AI Agent 時代のソフトウェア開発の型 ~ Everything as Code で叡智を伝える ~
ソフトウェア開発に AI を活用するのは当たり前になりました。しかし AI に開発のコンテキストやエンジニアの意図を十分に伝えるにはどうすればよいでしょうか? Everything as Code のプラクティスは、アプリやインフラだけでなく運用やドキュメントなどあらゆるものをコードとして扱うことで、メンテナンス性を高め、人と AI 双方のために整理されたコードベースを構築します。このセッションでは、Everything as Code をソフトウェア開発における基本の型として踏まえ、AWS Cloud Development Kit (CDK) を使ったアプリ構築を例に AI エージェント時代の実践的な開発テクニックを学びます。
公演内容
近年では、AI駆動開発が爆発的に普及していっています。この流れの中で、開発プロセスは人間中心からAI中心のものに変わっています。AIエージェントに開発やテスト・デプロイをサポートしてもらうことで、非常に早いサイクルでの開発が可能になっています。
しかし、プロジェクト固有の問題はいまだに人間が考えている側面があります。セッションタイトルでいう「叡智」を伝える、とは、生成AIに人間の考え・開発手法やプラクティスをどう伝えるかということです。
また、AIが意図した通りに動かない場面も多いかと思います。特定の文脈に応じて確立的にコードを生成する仕組み上、曖昧な指示だとランダムなコードを生成する可能性が高くなります。ですので、AIがコードを生成する上の確率的な選択のリスクを避ける必要が出てきます。
どうすればAIにエンジニアの意図を伝えられるか?
AI駆動開発では、今までの開発の習熟の上にAIの操作が乗っかってくるので、経験があればあるほどいいとされています。意図の伝わりにくさの本質は、スキルセットやバックグラウンドの際によるアプローチの違いによるものです。
このエンジニアの考えを、コードをつかってコンテキストの差異をなくす考えが、Everything as Codeです。Everything as Codeでは、ネットワークインフラも、コードも、Gitで管理できるプレーンドキュメントも、全て含みます。あらゆる情報をテキストファイルに記録することで、人間しか知らない情報を減らします。
Everything as Codeでは、Gitをみればすべてわかる状態が理想です。Gitの情報というのは、課題管理やCICDの結果も含めます。このアプローチではオープンソースの開発では一般的らしく、Issueでの議論の途中経過も記録して参考情報にするそうです。
Everything as Codeの第一歩としては、CDKで、インフラからアプリまで同じコンテキストを共有するのがおすすめとのことです。
CDKを使えば、インフラからアプリまでAmazon Q Developerで開発を進めることができます。デプロイ前に型チェックやリンター、組み込みバリデーションなどのフィードバックを得られます。ポリシーの記述もシンプルなので、コードレビューが簡単という特徴もあります。
個人的に印象だったのが、Documentation as Codeですね。チームの文化・納品先の特性によっては、ExcelやWordでドキュメントを作成している場合もあるかと思います。ここのアプローチは結構な努力が必要とのことです。急な変化が難しいなら、Excelツールで変換とのこと
インフラやアプリが複数のコンポーネントに跨ぐなら、先にドキュメントを書くのがいいとのことです。ドキュメントを整備しておいても、プレーンテキストなので推論コストも低く、かつ表現力も十分です。
どうすれば組織としてAI駆動開発の能力を身につけられるか?
AI駆動ができる、というのはあくまで手段で、どれだけのビジネス価値を届けられるかが重要です。登壇者の方も投資利益率(Return On Investment:ROI)をよく聞かれるそうで、どのくらい開発時間を減らせるか?など気にされる方も多いです。しかし、重要なのはそこではなく、ユーザーに届けた価値です。
AI駆動開発の評価はさまざまです。組織においてはメンバーごとに考えが違うため、AI駆動に対する受け止め方も多様性があります。その中で、AI駆動開発の価値を伝える必要があります。価値を届けるためには、言葉だけはどうしてもムリがあります。Vimキーバインドは効率的ですが、実際に使い込まないとその良さはわかりません。
ここで重要な概念が、型です。スライドの言葉を借りると、「「型」に含まれる叡智は、学習者にとって当初は未知であり、学習過程で内在化することで把握できるものである。」とのことです。
型は、身につけなければ分からないという性質を持ちます。習得を要するのは型的と表現でき、外から型を眺める(見て学ぶ)のはNGとのことです。手を動かすことで初めて内在化でき、これらは人によって異なる結果をもたらすので、それを許容する、というアプローチをとります。
今までの歴史のある分野の型とは違い、AI駆動開発にはまだこれといった型はありません。黎明期ということもあり、確立的なものはあまりありません。ですので、基本の型をもとに、自身の型を生み出すことが重要です。型を生み出す人は、自分ならではの新しい型に拡張できます。
型を習得するには、反復練習による内在化が不可欠です。外部から強制的にトレーニングするのは効果がなく、モチベ・内発的な動機が重要です。そして、反復によって得られた叡智が発露する場を提供することも、組織では大切になってきます。型的な方法論の共通認識をもち、失敗を受け入れ、多様性を受け入れることが必要です
AWSのテックロールのメンバー間では、社内でチャットツールが作成され、そこでさまざまなナレッジが共有されているらしいです。これらはそれぞれひとつの型であり、手を動かして身につけることができる、とのことです。
まとめ
以上2点、Everything as CodeでAIに意図を伝え、AI駆動開発を「型」として捉えて組織で習熟することが、激動のAI時代では重要です。すべてをコードで記述することで、AIができることが広がりますし、共通認識を醸成してコミュニティ的な場を用意することで、AI駆動開発のやり方を組織に広げることができます。Everything as Code、実際の筆者の仕事でも積極的に取り組んでいきたいですね...!