Slide 1

Slide 1 text

Whyで駆動する ソフトウェア開発 2025年2月19日 有限会社システム設計 増田 亨 1 ビジネスモデリング道場のご案内

Slide 2

Slide 2 text

自己紹介 業務系アプリケーションソフトウェアの開発者 モデル駆動設計 Java/Spring Boot/IntelliJ IDEA/JIG 有限会社システム設計 代表 since 2003 コミューン株式会社 技術アドバイザ since 2023 2 増田 亨(ますだ とおる) 著書(2017) 訳書(2024)

Slide 3

Slide 3 text

本日お話する内容 ◆ どんどん複雑になるソフトウェア開発 ◆ 従来のアプローチの問題点 ◆ 予測しづらい状況でどう設計していくか ◆ 事業活動の当事者として設計に取り組む ◆ 設計の知識と技能をどう習得するか 3

Slide 4

Slide 4 text

どんどん複雑になる ソフトウェア開発 4

Slide 5

Slide 5 text

デジタル化の進展(技術視点) • モバイルデータ通信とクラウドの普及 • データの量と種類が爆発 • そのデータを扱うためのソフトウェアの数と種類が増加 • ソフトウェア開発はますます複雑になってきている 5

Slide 6

Slide 6 text

「複雑さ」がますます複雑に 6 複雑性 曖昧性 不確実性 変動性 予測しづらい状況でソフトウェア開発に取り組む

Slide 7

Slide 7 text

予測しづらい状況でのソフトウェア開発 変動性 状況が安定しない(変化し続ける) 不確実性 どう変化するか予測しにくい要素が多い 複雑性 構成要素の多元化、多様化、つながりの煩雑化 曖昧性 変化の影響範囲、変化の因果関係がはっきりしない 7

Slide 8

Slide 8 text

なぜソフトウェア開発が 予測しづらくなったか? 8

Slide 9

Slide 9 text

デジタル化の進展(事業視点) • 事業のあらゆる活動がデジタル化の対象 • つまり事業活動とソフトウェアシステムが一体化 • その結果、ソフトウェアシステムの開発と運用は 競争優位を強化し高業績を持続させる直接の手段 同時に競争優位を失う直接の原因となった 9

Slide 10

Slide 10 text

デジタル化の進展(事業視点) • 事業活動は、昔も今も、予測しづらい状況での取り組み • 変動性、不確実性、複雑性、曖昧性は事業活動の前提 コンピュータやデータ通信がない時代、おそらく五千年前から、ずっと そうだった • 事業のあらゆる活動がデジタル化することで ソフトウェアエンジニアが事業活動の当事者になった 10

Slide 11

Slide 11 text

事業活動の当事者 • 自分たちの行動と判断は売上を左右する • 自分たちの行動と判断は費用を発生させる • 自分たちの行動と判断は利益(売上-費用)を決定する • ソフトウェアシステムは、事業活動の業績に 広範囲にかつ持続的に影響を与える • ソフトウェアエンジニアの日々の行動と判断の積み重ねが、 高業績を持続できるかどうかを決定する 11

Slide 12

Slide 12 text

従来のアプローチの問題点 12

Slide 13

Slide 13 text

さまざまなモデリング技法 13 非機能要件 ロバストネス図 機能要件 情報モデル オブジェクト ロールモデル CRUD図 機能一覧 ユースケース モデル 画面定義書 データモデル データフロー図 画面遷移 クラス図 画面 ワイヤフレーム 状態遷移モデル 業務フロー アクティビティ図 用語集 シーケンス図 イベント ストーミング

Slide 14

Slide 14 text

モデルの着眼点と構成要素 14 ヒト モノ コト プロ セス 変動属性 固定属性 変動属性 固定属性 約束した 実行した 固定属性 変動属性 活動手順 How What How What Where Where When When When Who When Where Why(事業視点)が欠けている

Slide 15

Slide 15 text

予測しづらい状況で 事業活動の当事者として どう設計していくか? 15

Slide 16

Slide 16 text

事業活動の当事者として設計する ➢事業成果=持続的な高業績=競争優位の獲得と維持を 理解する ➢ソフトウェアの開発運用を事業視点でとらえる ソフトウェアシステムは高業績を生み出し持続させる直接的な手段 ➢どう設計すれば、持続的に競争優位を生み出し、競争劣位を緩 和できるかを考える 16

Slide 17

Slide 17 text

予測しづらい状況で事業視点で設計するための ソフトウェア設計の三つの評価基準 17 発展性 合目的性 経済性

Slide 18

Slide 18 text

ソフトウェア設計の三つの評価基準 18 評価基準 事業課題 設計判断 合目的性 競争優位の確保と維持 差別化戦略 差別化戦略への適合 経済性 利益 = 売上 - 費用 利益を生み出す構造を ソフトウェアで実現 発展性 競争優位の確保と維持の ために行動を変える 変更容易性と相互運用性で 事業活動の変化に適応する 整合させる

Slide 19

Slide 19 text

事業活動の当事者として 設計の取り組む 19

Slide 20

Slide 20 text

事業活動の当事者として ➢ 行動モデルを変える ➢ 差別化戦略の分析に基づき設計判断する 20

Slide 21

Slide 21 text

行動モデルを変える 21

Slide 22

Slide 22 text

予測しづらい状況でどう行動するか 22 現在の状況を観察 (新たな材料) 経験知を取り出す (手持ちの材料) 行動 目 標 状況が変化する 経験知が増える 状況の判断 仮説の立案 状況を観察し、行動しながら、学習と成長を繰り返す

Slide 23

Slide 23 text

自社の差別化戦略を理解した ソフトウェア設計 23

Slide 24

Slide 24 text

Whyに着眼したビジネスモデリング 24 事業戦略 事業目標 活動方針 活動規則 高業績を 持続させる 競争優位の 差別化戦略 自社独自の 排他的選択 業務ルール 活動の刺激 活動の制約 計画の立案と 幅広い活動の調整 時間のかかる取り組み 戦略の実行手段として ソフトウェアシステム に組み込む

Slide 25

Slide 25 text

購買物流 生産 出荷物流 販売促進 販売 顧客支援 技術開発 人的資源の管理 調 達 差別化戦略を分析する技法 25 事業活動を9つの領域に分類して差別化戦略を分析(価値連鎖モデル) 競争優位を確保し維持するために ・差別化する仕組みは? ・コスト優位を生み出す仕組みは? ・各活動の連動方法は?

Slide 26

Slide 26 text

差別化戦略を評価する5条件 ① 自社独自の特徴のある価値提案ができている ② 自社独自の価値提供を、自社独自にあつらえた活動体系(競合 他社とは異なる活動や競合他社とは異なるやり方)で実現でき ている ③ 独自性を実現するために、戦略的な分岐点で排他的選択(ト レードオフ)をしっかりできている ④ 事業を構成するさまざまな活動を戦略に適合させている ⑤ 自社独自の活動体系、戦略的分岐点での排他的選択、さまざ まな活動の戦略適合に持続的に取り組んでいる 26 すべてがうまくできている企業は少ない=多くの企業は伸びしろだらけ

Slide 27

Slide 27 text

差別化戦略とソフトウェア設計方針 27 競合他社との差別化 中核 業務ロジックの複雑さ 対象領域を二軸で分類

Slide 28

Slide 28 text

業務領域の特徴と設計方針 中核 一般 補完 差別化 ◎ × × 複雑さ 〇 〇 × 変化 〇 × × 設計方針 ドメインモデル イベント履歴 外部製品評価 CRUD/ETL 調達方法 内製 購入? 外注 28

Slide 29

Slide 29 text

設計の知識と技能を どう習得するか 29

Slide 30

Slide 30 text

終わりのない学習活動 • ソフトウェア設計にあらかじめ決まった答えはない • 予測しづらい状況で、場面に応じて探索と発見を繰り返す つまり • ソフトウェア設計とは継続的で終わりのない学習活動 30

Slide 31

Slide 31 text

学びによる成長(認知の変化)氷山モデル 31 学びによる成長(変化)を意識できた 時、実際は、その10倍以上の変化が 意識できない領域で生まれている • 練習による無意識領域の変化 • 経験による無意識領域の変化 • もがきによる無意識領域の変化 意識できる領域 意識できない領域 記憶 知覚

Slide 32

Slide 32 text

継続的な学習:三つの基本行動 観察する • 選択的注意(何を、なぜ観察するかを意識する) • 多様性:異なる経験と視点を持つ複数メンバーで協働観察する • 一般化されたモデルと関係づける 仮説を立案する • 目的地までのあらすじを考える • あらすじ(予測)と実際の進行(行動の結果)との差分から学ぶ 行動から学ぶ • 行動によって、経験知を増やして、手持ちの判断材料を増やす • 行動によって、状況を変化させて、新たな判断材料を増やす 32

Slide 33

Slide 33 text

事業視点で設計判断するための推薦図書 33

Slide 34

Slide 34 text

まとめ ◆ 複雑になるソフトウェア開発、事業活動との一体化 ◆ 予測しづらい状況で事業視点で設計する ◆ 競争優位分析とソフトウェア設計を整合させる ◆ 事業視点の設計判断に習熟する ◆ 継続的な探索と発見(観察・仮説・行動) 34