Slide 1

Slide 1 text

設計は最強のプロンプト - AI時代に武器にすべきスキルとは?- 2025/11/08 PHPカンファレンス福岡 木村健一郎 / @show_m001 Copyright © Alterbooth Inc. All Rights Reserved. 1

Slide 2

Slide 2 text

自己紹介 株式会社オルターブース クラウドソリューション部 副部長 木村 健一郎(Kenichiro KIMURA) (@show_m001) 2020年にオルターブースにジョイン。 テックリードとしてAzureやGitHubを 武器に、お客様の支援やプロダクトの 開発に従事している。 Copyright © Alterbooth Inc. All Rights Reserved. 2

Slide 3

Slide 3 text

• 設計は最強のプロンプト • 壊れにくくメンテしやすいコードに導く • AIに簡潔に正しく意図を伝えられる • AIの試行回数を減らし確率を収束させる • AIの出力の評価 • AIとの協業を支えるツールの例 • 設計の学び方 本日のまとめ Copyright © Alterbooth Inc. All Rights Reserved. 3

Slide 4

Slide 4 text

• AI時代に設計力が求められる理由 • 設計が最強のプロンプトになる • ターゲットは商用の(仕事としての)ソフト ウェア開発 本日お話すること Copyright © Alterbooth Inc. All Rights Reserved. 4

Slide 5

Slide 5 text

• 個人プロダクト・趣味の開発のお話 • 個々のツールの詳細なお話 • 個々の設計手法のお話 本日お話しないこと Copyright © Alterbooth Inc. All Rights Reserved. 5

Slide 6

Slide 6 text

• 個人プロダクト・趣味の開発のお話 • 個々のツールの詳細なお話 • 個々の設計手法のお話 • PHPのこと 本日お話しないこと Copyright © Alterbooth Inc. All Rights Reserved. 6

Slide 7

Slide 7 text

AI、特にAIエージェントが自律的にコード を書く時代の到来 • コーディングの単純な速度や単位時間の処 理量(スループット)でAIに勝つのは不可能 • ならばこれから人にはどんなスキルが求め られるのか? AI時代に求められるスキルとは? Copyright © Alterbooth Inc. All Rights Reserved. 7

Slide 8

Slide 8 text

よく言われること • AIの書くコードは品質が悪い • 品質が悪いコードを量産されてレビュー 負荷ばかり高まる • とりあえず動いてはいるが、後の修正に 耐えられずほぼ書き直しになる AI vs 人間のエンジニア Copyright © Alterbooth Inc. All Rights Reserved. 8

Slide 9

Slide 9 text

ものづくりの対比構造 Copyright © Alterbooth Inc. All Rights Reserved. 9 • 産業革命時の機械工業化 による大量生産と職人の ものづくり • 近年の中国製品と日本の ものづくり

Slide 10

Slide 10 text

• いずれも、圧倒的なスケールとスピード は「世界の価値観の変革」を起こした • 職人のものづくり(≒高品質な仕事)は必要 だが、世界のルールが変わってしまった • ゲームチェンジが起こった スケールが起こすゲームチェンジ Copyright © Alterbooth Inc. All Rights Reserved. 10

Slide 11

Slide 11 text

ソフトウェアエンジニアの仕事は「ソフト ウェアを書くこと」ではなく「価値を提供/ 創造する」こと • 社会や誰かの課題を解決する • 課題を解決するための生産性を向上させる • 新しい価値を生み出す ソフトウェアエンジニアの仕事とは Copyright © Alterbooth Inc. All Rights Reserved. 11

Slide 12

Slide 12 text

コーディングはあくまでも価値を提供/創造 するための手段 • 手段の領域でAIに対抗する意味はありま すか? • 手段ならばAIもうまく使うべきではない ですか? コーディングでAIと闘う? Copyright © Alterbooth Inc. All Rights Reserved. 12

Slide 13

Slide 13 text

品質 x スループット Copyright © Alterbooth Inc. All Rights Reserved. 13 品質 スループット

Slide 14

Slide 14 text

品質 x スループット Copyright © Alterbooth Inc. All Rights Reserved. 14 品質 スループット 普通の人

Slide 15

Slide 15 text

品質 x スループット Copyright © Alterbooth Inc. All Rights Reserved. 15 品質 スループット 普通の人 凄い人

Slide 16

Slide 16 text

品質 x スループット Copyright © Alterbooth Inc. All Rights Reserved. 16 品質 スループット 凄い人 超凄い人 普通の人

Slide 17

Slide 17 text

品質 x スループット Copyright © Alterbooth Inc. All Rights Reserved. 17 品質 スループット 凄い人 超凄い人 普通の人 AI

Slide 18

Slide 18 text

品質 x スループット Copyright © Alterbooth Inc. All Rights Reserved. 18 品質 スループット 凄い人 超凄い人 普通の人 AI

Slide 19

Slide 19 text

品質 x スループット Copyright © Alterbooth Inc. All Rights Reserved. 19 品質 スループット 凄い人 超凄い人 普通の人 人間だけでも AIだけでも 到達できない 領域 AI

Slide 20

Slide 20 text

• 人間だけでは到達できない領域がある • AIだけでは到達できない領域がある • 協業して初めて到達できる領域がある 圧倒的スケールと品質を両立させるために は、AIと「協業」する必要がある AIとの協業 Copyright © Alterbooth Inc. All Rights Reserved. 20

Slide 21

Slide 21 text

• 「超凄い人」を1000人は集められない • AIは1000並列にできるが、制御しないと ごみの山を量産しかねない • AIと協業できる人を1000人集めることは できるかもしれない 協業の橋渡しになるのが「設計」という共 通言語 AIと協業できる人を増やす Copyright © Alterbooth Inc. All Rights Reserved. 21

Slide 22

Slide 22 text

品質 x スループット Copyright © Alterbooth Inc. All Rights Reserved. 22 品質 スループット 凄い人 超凄い人 AI AI協業 設計 普通の人

Slide 23

Slide 23 text

• 壊れにくくメンテしやすいコードに導く • AIに簡潔に正しく意図を伝えられる • AIの試行回数を減らし確率を収束させる • AIの出力の評価 設計は最強のプロンプト Copyright © Alterbooth Inc. All Rights Reserved. 24

Slide 24

Slide 24 text

• 壊れにくくメンテしやすいコードに導く • AIに簡潔に正しく意図を伝えられる • AIの試行回数を減らし確率を収束させる • AIの出力の評価 設計は最強のプロンプト Copyright © Alterbooth Inc. All Rights Reserved. 25

Slide 25

Slide 25 text

AIを使ったとしても、ソフトウェア開発ラ イフサイクルは変化しない • 基本的に「作ったものを改善し続ける」 • 人は欲しいものを1回で100%言語化できない • 人の要求もソフトウェアが利用される環境も 変わり続ける ソフトウェア開発ライフサイクル Copyright © Alterbooth Inc. All Rights Reserved. 26

Slide 26

Slide 26 text

ハードウェアと比較して「変化に強い」と いうのがソフトウェアの重要な特徴 =変化するのが前提 =本質的に「変更に強く、壊れにくいよう にしたい」という要求が存在する ソフトウェア開発ライフサイクル Copyright © Alterbooth Inc. All Rights Reserved. 27

Slide 27

Slide 27 text

変更に強く、壊れにくいソフトウェアを支 えるのは「良い設計」 ソフトウェア設計 Copyright © Alterbooth Inc. All Rights Reserved. 28 • 要件定義 • アーキテクチャ設計 • モデリング • テスト設計 • ドメイン指向設計 • クリーンアーキテクチャ • オブジェクト指向 • テスト駆動開発

Slide 28

Slide 28 text

• 壊れにくくメンテしやすいコードに導く • AIに簡潔に正しく意図を伝えられる • AIの試行回数を減らし確率を収束させる • AIの出力の評価 設計は最強のプロンプト Copyright © Alterbooth Inc. All Rights Reserved. 29

Slide 29

Slide 29 text

データストアへのアクセスを抽象化して、 差し替え可能な状態にしてください。まず は実装はメモリ上のモックで・・・ 設計の言語で説明する Copyright © Alterbooth Inc. All Rights Reserved. 30

Slide 30

Slide 30 text

データストアへのアクセスを抽象化して、 差し替え可能な状態にしてください。まず は実装はメモリ上のモックで・・・ リポジトリパターンで 設計の言語で説明する Copyright © Alterbooth Inc. All Rights Reserved. 31

Slide 31

Slide 31 text

全体の処理は変わりませんが、条件判定部 分がケースに応じて多種多様に変化します。 後日そのケースを簡単に追加できるように し、コードの変更を最小限に・・・ 設計の言語で説明する Copyright © Alterbooth Inc. All Rights Reserved. 32

Slide 32

Slide 32 text

全体の処理は変わりませんが、条件判定部 分がケースに応じて多種多様に変化します。 後日そのケースを簡単に追加できるように し、コードの変更を最小限に・・・ ストラテジーパターンで 設計の言語で説明する Copyright © Alterbooth Inc. All Rights Reserved. 33

Slide 33

Slide 33 text

分散システムA,B,Cがあり、これらを順に呼 び出す分散トランザクションを考えます。 データストアが個別なので全体のロックが 困難な場合・・・ 設計の言語で説明する Copyright © Alterbooth Inc. All Rights Reserved. 34

Slide 34

Slide 34 text

分散システムA,B,Cがあり、これらを順に呼 び出す分散トランザクションを考えます。 データストアが個別なので全体のロックが 困難な場合・・・ Sagaオーケストレーションパターンで 設計の言語で説明する Copyright © Alterbooth Inc. All Rights Reserved. 35

Slide 35

Slide 35 text

• 壊れにくくメンテしやすいコードに導く • AIに簡潔に正しく意図を伝えられる • AIの試行回数を減らし確率を収束させる • AIの出力の評価 設計は最強のプロンプト Copyright © Alterbooth Inc. All Rights Reserved. 36

Slide 36

Slide 36 text

確率で推移するAI(LLM)の思考の収束可能 性を高める AI(LLM)の思考を縛る Copyright © Alterbooth Inc. All Rights Reserved. 37

Slide 37

Slide 37 text

• 壊れにくくメンテしやすいコードに導く • AIに簡潔に正しく意図を伝えられる • AIの試行回数を減らし確率を収束させる • AIの出力の評価 設計は最強のプロンプト Copyright © Alterbooth Inc. All Rights Reserved. 38

Slide 38

Slide 38 text

AIの出力は必ず人間が評価する • 現状ではAI(LLM)の出力は非決定的 • 常に完全な品質を求めることは現実的で はない AIの出力を評価する Copyright © Alterbooth Inc. All Rights Reserved. 39

Slide 39

Slide 39 text

AIの高スループットをどう評価するか? • 設計や開発計画で、コードの変更範囲(= 評価範囲)を制限する • 自動テストで品質を担保する • AIに評価を手伝ってもらう • GitHub Copilot PR Review 良い設計と自動テストで評価する Copyright © Alterbooth Inc. All Rights Reserved. 40

Slide 40

Slide 40 text

設計の言葉をプロンプトに盛り込むだけで なく、より積極的にAIと協業するための手 法の1つ • 設計をドキュメントとして書き、それに 基づいてAIに作業してもらう • ドキュメント自身もAIに書いてもらう • Kiro(AWS)、Spec Kit(GitHub)など Spec Driven Development Copyright © Alterbooth Inc. All Rights Reserved. 41

Slide 41

Slide 41 text

「人との協業」でも品質や試行回数や齟齬 のないコミュニケーションといった同じ課 題は発生します。 設計はAIだけでなく「自分以外の誰か」と 協業する際の共通言語です。 人との協業 Copyright © Alterbooth Inc. All Rights Reserved. 42

Slide 42

Slide 42 text

生成AIは既存の設計論の知識をよく知って いるので、AIをメンターとして使う • 「このコードをSOLID原則に沿ってるか レビューして」 • 「XXパターンに沿うようにリファクタリ ングして」 • 「リファクタリングの意図を説明して」 どうやって設計を学ぶのか Copyright © Alterbooth Inc. All Rights Reserved. 43

Slide 43

Slide 43 text

理解できたと思ったら、自身の言葉で言語 化し、AIに説明してフィードバックを受け る • 「xxパターンの利点はこういうことだと 理解したが合っているか?」 • 「つまり、xxxによってyyyとなるので zzzが解決するという理解でいいのか?」 言語化とAIからのフィードバック Copyright © Alterbooth Inc. All Rights Reserved. 44

Slide 44

Slide 44 text

そもそも単語と概要も分からない状態だと どうにもならないので、まずは頑張って勉 強しましょう とはいえ Copyright © Alterbooth Inc. All Rights Reserved. 45

Slide 45

Slide 45 text

• 設計は最強のプロンプト • 壊れにくくメンテしやすいコードに導く • AIに簡潔に正しく意図を伝えられる • AIの試行回数を減らし確率を収束させる • AIの出力の評価 • AIとの協業を支えるツールの例 • 設計の学び方 本日のまとめ Copyright © Alterbooth Inc. All Rights Reserved. 46