Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AI 時代のソフトウェア設計の学び方

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

AI 時代のソフトウェア設計の学び方

JJUG CCC 2026 Spring

①AI時代のソフトウェア開発:いろいろな方向性
②デジタル化の進展とソフトウェア開発の変容
③これからのソフトウェア開発にどう取り組むか
④AI時代の設計技能:何を学ぶと効果的か
 初級から中級へ
 上級を目指す

Avatar for 増田 亨

増田 亨 PRO

May 30, 2026

More Decks by 増田 亨

Other Decks in Programming

Transcript

  1. 自己紹介 専門領域 • 業務系アプリケーションの開発 最近の仕事 • 技術的負債を返済するお手伝い • エンジニアの設計スキル向上のお手伝い 2

    増田 亨(masuda220) 著書(2017) 訳書(2024) *1 *2 *1 増田 亨(2017) 『現場で役立つシステム設計の原則』技術評論社 *2 Vlad Khononov(著) 増田 亨、綿引 琢磨(訳) 2024 『ドメイン駆動設計をはじめよう』オライリージャパン
  2. 設計スタイルの選択 6 大きな事前設計 小さな設計の反復 BDUF: Big Design Up Front 建築や量産型製造業で一般的

    ウォーターフォール的なソフトウェア開発 IterativeでIncrementalな設計 最初に小さな設計を行い(Enough Design Up Front) その結果を観察し、小さな設計改善を行う これを繰り返す
  3. 14 事業環境 経済・社会の状況 変動性 VUCA: Volatility, Uncertain, Complex, Ambiguity 多くの要素が絡み合い

    複数の解釈が可能 予測が難しく 変化を繰り返し 不確実性 複雑性 多義性 事業活動を取り巻く環境
  4. 15 事業環境 経済・社会の状況 変動性 多くの要素が絡み合い 複数の解釈が可能 予測が難しく 変化を繰り返し 不確実性 複雑性

    多義性 事業活動を取り巻く環境 事業開発 組織開発 ソフトウエア開発 VUCA: Volatility, Uncertain, Complex, Ambiguity
  5. 16 事業環境 経済・社会の状況 変動性 多くの要素が絡み合い 複数の解釈が可能 予測が難しく 変化を繰り返し 不確実性 複雑性

    多義性 事業活動を取り巻く環境 事業開発 組織開発 ソフトウエア開発 あらかじめ用意された答えはない世界
  6. 事業環境、ソフトウェア開発、取り組み方 18 事業環境 変動性 不確実性 複雑性 多義性 事業開発 組織開発 ソフトウエア開発

    人と人との相互作用 学習と成長 観察-評価-設計-実装 ループ あらかじめ用意された答えのない世界 取り組み方
  7. 事業目的をざっくり理解する三つの公式 • 利益=売上 – 費用 • 安定した利益=競争優位 • 競争優位=差別化戦略の実行結果 ➢

    初級者はこの三つの公式をひとまず言葉として覚える ➢ 中級者になるために、コード全体の中で、どこがこの 三つの公式と強くつながるかを体験的に学ぶ 30
  8. 区分に焦点を合わせ効率的かつ効果的に学ぶ 35 準備運動 練習 実践 1章と2章を 完全に理解する 1章 最初のリファクタリングの例 switch文のリファクタリングを

    徹底的に練習する 実コードで、区分がらみの 乱雑なコードの設計改善と 事業目的との関係づけを 掘り下げてみる 実コードで 区分がらみの 乱雑なコードを 三つ特定する
  9. 視野を広げ、視点を増やし、 つながりで考えるための練習と実践 39 1章 事業活動を分析する 2章 事業活動の複雑さに立向かう 10章 設計の経験則 11章

    設計を進化させる 13章 現実世界のドメイン駆動設計 付録 ドメイン駆動設計実践の事例 差別化戦略を実行するためのソフトウェア設計を学ぶ この本の考え方とやり方を習得す ると、区分がらみの乱雑なコード の設計改善に取り組む優先順位を 事業目的適合性で判断できるよう になる
  10. 視野を広げ、視点を増やし、 つながりで考えるための練習と実践 40 1章 事業活動を分析する 2章 事業活動の複雑さに立向かう 10章 設計の経験則 11章

    設計を進化させる 13章 現実世界のドメイン駆動設計 付録 ドメイン駆動設計実践の事例 現実の 事業開発 組織開発 ソフトウエア開発 関連づける 差別化戦略を実行するためのソフトウェア設計を学ぶ
  11. 視野を広げ、視点を増やし、 つながりで考えるための練習と実践 41 1章 事業活動を分析する 2章 事業活動の複雑さに立向かう 10章 設計の経験則 11章

    設計を進化させる 13章 現実世界のドメイン駆動設計 付録 ドメイン駆動設計実践の事例 現実の 事業開発 組織開発 ソフトウエア開発 関連づける 時間をかけてなんども繰り返しながら学習し成長する 差別化戦略を実行するためのソフトウェア設計を学ぶ