1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LLM時代のソフトウェア開発思想と実務

Posted at

現実のエンジニアリングにとって最重要なのは、
「LLMを、今・実務としてどう活用すべきか?」
である。

この問いに対し、現代ソフトウェア工学の巨人と呼べる2人──Agile・リファクタリングの第一人者 Martin Fowler と、TDD(テスト駆動開発)の生みの親 Kent Beck ──へのインタビューが示唆に富む。

Martin Fowler:AIは“コード以前の世界”を変えてしまった

Agileマニフェスト作成者の一人で、ThoughtWorksのチーフサイエンティストであり、そして『リファクタリング』の著者でもあるMartin Fowlerは次のように述べている
https://youtu.be/aR20FWCCjAs

Fowler の指摘で最も重要なのは、AI は単にコーディングを自動化する道具ではなく、「設計前の思考プロセスそのものを変える技術である」 という点だ。

  1. 「どう書くか」から「何を作るか」へ
    従来の開発は「問題理解 → 設計 → 実装」というプロセスが前提だった。しかし、LLM はここを破壊する。Fowler は次のように述べる。
    「AI はエンジニアが“どうコードを書くか”ではなく、“何を作るべきか”に意識を向けさせる。」
    コードを書くこと自体が中心作業ではなくなり、エンジニアの主戦場は 「意図の明確化」 へとシフトする。

  2. 「非決定論」という新たな前提
    この記事の核心部分である。LLM は Non-deterministic(非決定論的) だ。同じプロンプトでも結果は変わる。
    「ソフトウェア工学は長年、決定論を前提として成立してきた。しかし LLM は根本的に非決定性である。」
    その結果、「仕様の固定点」が消え、「再現性」よりも 「ガバナンス(統制)」 が必要になる。Fowler は「だからこそ、従来の工学原則がこれまで以上に重要になる」と述べる。

  3. アセンブリから高級言語への転換に匹敵する
    Fowler は現在の変化を、かつての「アセンブリ言語から高級言語への転換」になぞらえる。 開発者は「より高レベルの意図」を扱い、コードは「仕様や制約の副産物」となる。つまり、Spec / Context / Workflow こそが価値の中心となる。

  4. "Vibe Coding" の危険性
    Fowler は、Andrej Karpathy が提唱した「Vibe Coding(詳細を気にせず、AIとノリで動くものを作るスタイル)」に対し、実務上の危険性を指摘する。 意図のない「なんとなく動くコード」は、一貫したアーキテクチャを欠き、デバッグ不能な振る舞いを埋め込む。「動いたからOK」は、AI時代では通用しない。

  5. AI の真価は“探索”と“理解”
    Fowler が挙げる AI の最適な用途は以下の3つだ。

    • レガシーコード解析(理解の補助)
    • プロトタイプ探索(アイデアの壁打ち)
    • リファクタリング方針の探索(構造改善の提案)
      AI は構造を作る主体ではなく、構造を理解するための道具として機能する。

Kent Beck:AI 時代、TDD は“仕様の固定点”になる

Martin Fowler が AI によって「ソフトウェア工学の前提が書き換わった」と指摘したのに対し、Kent Beck はより実務的で具体的な視点から、AI 時代のプログラミングがどのように変わるのかを語っている。
その中心にあるテーマは、AI がコードを大量に生成する時代こそ、TDD(テスト駆動開発)が“仕様の固定点” として決定的に重要になるという思想である。

  1. AI は「望んだもの」ではなく「要求したもの」を返す
    ― 設計責任は依然として人間に残る

    Beck は AI を “Genie(精霊)” に例えて説明する。
    この比喩が意味するのは、AI は入力された指示を表面的に満たすだけで、背景にある意図や文脈までは理解しないという点である。

    AI はコードを生成できるが、次のような本質的な設計責任は担わない。

    • システム全体の整合性をどう保つか
    • どの境界を明確に分けるべきか
    • 抽象化のレイヤーをどのように設計するか
    • 依存関係をどう整理し、どこで切り離すべきか

    AI が生成するのは「人が書く手間を省いた断片」であり、それを「ソフトウェアとして意味を持つ構造」に組み上げる責務は依然として人間の手に残っている。

  2. AI 生成コードは「局所的に正しい」だけであり、全体整合性を壊しやすい
    Beck が繰り返し示す重要な点は、AI の出力は局所最適であっても、システム全体との整合性は保証されないということである。
    AI 生成コードには次の傾向がある:

    • 部分的には “もっともらしい”
    • 単体では正しく動く
    • 目的のタスクだけを見ると整合している

    しかし、根本的問題がある。
    システム全体の文脈における意味や一貫性が欠落しやすい。
    そのため、AI を使えば使うほど「部分的には動くが全体では崩壊した設計」の危険性が高まる。これは Fowler の議論とも完全に合流するポイントである。
    Beck が AI を「予測不能な精霊」に例えるのは、まさにこの状況を端的に表している。

  3. TDD の価値は AI 時代にむしろ大きくなる
    ― テストこそが唯一の“動作の固定点”

    Beck の議論の中でもっとも本質的なのが、この「TDD の再評価」である。
    AI が生成するコードは流動的で、出力は揺らぎを持つ。
    しかしソフトウェアには 一貫した期待動作 が必要である。
    Beck はそこで、テストこそが唯一の安定した基準点になる と述べている。

    TDD のリズム(Red → Green → Refactor)は、AI を導入しても変わらない。
    むしろ次のような理由で、AI 時代にこそ適合している。

    • AI が生成したコードを迅速に検証できる
    • テストが“仕様”として振る舞いを固定する
    • AI の非決定性による回帰を即座に検出できる
    • コード全体に一貫性を強制できる

    つまり、AI がコードを大量に書くほど、テストが強制的に秩序を作り出す役割が強まるのである。

    Beck が強調する「テストは動作を定義し、コードが揺れようと変わらない」という立場は、AI 時代の最重要原則と言える。

  4. AI は“小さく刻む”ことで最も効果を発揮する
    ― TDD のステップと完全に同型
    Beck は「AI は小さく刻んで使うほど効果が高まる」と繰り返し述べている。
    これは TDD の基本思想と完全に一致している。

    • 小さな入力
    • 小さな生成
    • 小さな検証
    • 小さな改善

    大きなプロンプトを与えれば幻覚・破綻が増えるが、
    小さく区切って AI に問い、小さく生成させると精度が劇的に向上する。
    TDD と AI は、“小さく刻む”というリズムを共有している。
    このリズムを守ることで、AI の非決定性を弱め、実務に耐えうる品質を確保できる。

  5. AI エージェントの時代には「観測性」が必須インフラになる
    AI が人間の指示を離れ、より主体的にコード生成やタスク遂行を行う「エージェント化」が進むほど、挙動を観測し、制御し、問題を検出する仕組みが必要となる。

    Beck は、エージェントの実行環境には次のような能力が必須になると指摘する。

    • 振る舞いのログ
    • 実行トレース
    • 内部状態の可視化
    • 失敗時の復旧ポイント
    • 逸脱の検出と停止メカニズム

    AI は内部過程を説明しないため、
    観測性だけが唯一の“安全装置” になる。

    これは、Fowler の「非決定性の時代には観測性が重要になる」とする主張と強く符合している。

総括:AI × TDD が描く新しい開発パラダイム

まとめると、次のような新しい開発パラダイムが立ち上がる。

  • AI はコードを返すが、設計責任や構造化は担えない

  • AI の出力は局所的には正しいが、全体整合性を壊しやすい

  • TDD が動作を固定し、システム秩序を維持する唯一の基盤となる

  • AI は小さく刻んで使うことで最大の効果を発揮する

  • エージェント時代には観測性が不可欠な安全装置になる

Fowler が示した「工学原則への回帰」と、Beck が示した「TDD の再定義」は、
AI 時代におけるソフトウェア開発が “より抽象化される一方で、より強い構造的規律を必要とする” 方向へ進むことを示している。

AIがコードを書く時代だからこそ、人間は「構造」と「境界」と「仕様」と「観測性」を担う必要がある。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?