Slide 1

Slide 1 text

ソフトウェアエンジニアの成長 2025年2月21日 有限会社システム設計 増田 亨 1 関ジャバ2025年2月度

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 学びによる成長(変化)を意識できた 時、実際は、その10倍以上の変化が 意識できない領域で生まれている • 練習による無意識領域の変化 • 経験による無意識領域の変化 • もがきによる無意識領域の変化 意識できる領域 意識できない領域 記憶 知覚

Slide 7

Slide 7 text

7 複雑さを扱うエキスパート

Slide 8

Slide 8 text

複雑さを扱うための二つの基本原則 関心を分離する • あらゆる設計原則、設計パターン、アーキテクチャスタイルは、関心 の分離のための技法(の一般化) 優先順位をつける • ソフトウェア開発の基本制約は、使える時間 • 限られた時間を有効に使うための鉄則 8

Slide 9

Slide 9 text

関心の分離と優先順位 ドメイン駆動設計のアプローチ 9 ⚫ ソフトウェアシステムの対象領域(事業活動)の観 点で関心を分離し、優先順位を決める ⚫ 競争優位を生み出す業務領域(中核の業務領域)に 優先的に取り組む ⚫ 競争優位を生まない業務領域(一般的な業務領域と 補完的な業務領域)は、既成の解決策(SaaS、ロー コードノーコード、一般モデルの模倣)で済ませる

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

業務領域の分類と設計方針 中核 一般 補完 競争優位 ◎ × × 複雑さ 〇 〇 × 変化 〇 × × 設計方針 ドメインモデル イベント履歴 既成の解決策 CRUD/ETL 調達方法 内製 購入?模倣? 外注 11

Slide 12

Slide 12 text

競争優位を生み出す差別化戦略とは? 12 ソフトウェアエンジニアにも(ビジネスに興味 があれば)読みやすい内容 なぜ、同じ業界で、高業績を持続できる企業と、 そうでない企業の差が生まれるのか 膨大な事例研究の成果を、具体的にわかりやす くまとめなおした本 【エッセンシャル版】

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

14 ソフトウェアエンジニアの成長 事業視点を持つ?

Slide 15

Slide 15 text

ソフトウェアエンジニアが 事業視点を持つことはよいことだ a. ビジネス要件の理解度があがり、よいプロダクトを効果的に 開発できる b. ビジネス価値でタスクの重要度や優先度を判断して、時間を 有効に使える c. ビジネス部門との意思疎通が円滑になり、認識齟齬が減る d. ビジネスと技術のバランスが取れた判断ができる e. エンジニアとしてキャリアパスの選択肢が広がる 15

Slide 16

Slide 16 text

ソフトウェアエンジニアが 事業視点を持つことは時間のムダだ a. 技術的なスキルの向上や深い専門知識の習得の時間が減る b. 開発者としての本来の業務ではない余計な仕事が増えて、生 産性が下がる c. 技術的な問題解決や新たな技術の習得に集中できなくなる d. 他部門とのかかわりが増え、よけいなストレスがたまる e. 誰が何に責任を持つか責任範囲があいまいなり、その結果、 全体の質が下がり、開発スピードが落ちる 16

Slide 17

Slide 17 text

17 まとめ

Slide 18

Slide 18 text

ソフトウェアエンジニアの成長 学習のエキスパート • 『私たちはどう学んでいるのか』 • 学習による成長 氷山モデル 複雑さを扱うエキスパート • 関心の分離と優先順位 • 『ドメイン駆動設計をはじめよう』 • 『エッセンシャル版 マイケル・ポーターの競争戦略』 ソフトウェアエンジニアが事業視点を持つ • よいこと?、それとも時間のムダ? 18