Slide 1

Slide 1 text

Evolutionary Architecture @uzzu

Slide 2

Slide 2 text

Evolutionary Architecture(進化的アーキテクチャ)は まだ定義が固まっているものではありません。 このスライドは私個⼈の⾒解です。

Slide 3

Slide 3 text

Evolutionary Architectureって何?

Slide 4

Slide 4 text

https://www.thoughtworks.com/radar/techniques/evolutionary-architecture

Slide 5

Slide 5 text

https://www.thoughtworks.com/radar/techniques/evolutionary-architecture

Slide 6

Slide 6 text

“An evolutionary architecture supports continual and incremental change as a first principle along multiple dimentions.” 第⼀原則として、複数の次元で継続的かつ漸進的な変更を⽀援する

Slide 7

Slide 7 text

複数の次元で継続的かつ漸進的な変更...?

Slide 8

Slide 8 text

Traditional Architecture 要求(次元) 変更

Slide 9

Slide 9 text

Traditional Architecture 要求(次元) 変更

Slide 10

Slide 10 text

Traditional Architecture 要求(次元) 変更

Slide 11

Slide 11 text

Traditional Architecture 要求(次元) 変更

Slide 12

Slide 12 text

Traditional Architecture 要求(次元) 変更

Slide 13

Slide 13 text

Traditional Architecture 要求(次元) 変更

Slide 14

Slide 14 text

Traditional Architecture 要求(次元) 変更

Slide 15

Slide 15 text

要求(次元) 変更 Traditional Architecture

Slide 16

Slide 16 text

Big ball of mud architecture

Slide 17

Slide 17 text

Traditional Architecture 要求(次元) 変更

Slide 18

Slide 18 text

Evolutionary Architecture 要求(次元) 変更

Slide 19

Slide 19 text

Evolutionary Architecture Pain-Driven 要求(次元) 変更

Slide 20

Slide 20 text

Evolutionary Architecture Last Responsible Moment 要求(次元) 変更

Slide 21

Slide 21 text

Evolutionary Architecture Pain-Driven Last Responsible Moment 要求(次元) 変更

Slide 22

Slide 22 text

複数の次元で継続的かつ漸進的な変更を⽀援する 要求(次元) 変更

Slide 23

Slide 23 text

Charstaristics Modularity and Coupling Organized Around Buisiness Capabilities Experimentation (Possible to Hypothesis-Driven Development)

Slide 24

Slide 24 text

Charstaristics Modularity and Coupling Organized Around Buisiness Capabilities Experimentation (Possible to Hypothesis-Driven Development)

Slide 25

Slide 25 text

Charstaristics Modularity and Coupling Organized Around Buisiness Capabilities Experimentation (Possible to Hypothesis-Driven Development)

Slide 26

Slide 26 text

Charstaristics Modularity and Coupling Organized Around Buisiness Capabilities Experimentation (Possible to Hypothesis-Driven Development)

Slide 27

Slide 27 text

そもそも、なぜ⼿軽に差し替える必要があるかといえば、以下の様な 理由があります。 • 依存している基盤実装(レガシーコード、3rd-party製のライブラ リ)に問題が発覚した時に、利⽤者に影響なく別の基盤実装に差し 替えられるようにする為 • パッと基盤実装を捨てる事ができるのはライブラリ開発者の 精神的負荷を⼤きく軽減します

Slide 28

Slide 28 text

そもそも、なぜ⼿軽に差し替える必要があるかといえば、以下の様な 理由があります。 • 新しい技術や導⼊したい技術を積極的に導⼊・検証できるように する為 • 利⽤者のスピード感に追いつく必要があります。依存ライブ ラリが⾜を引きずってはいけません

Slide 29

Slide 29 text

・ Fitness Functions (Ignore) ・ Pain-Driven ・ Last Responsible Moment

Slide 30

Slide 30 text

Evolutionary Architecture Pain-Driven Last Responsible Moment 要求(次元) 変更

Slide 31

Slide 31 text

? Fitness Functions (Ignore) ✔ Pain-Driven ✔ Last Responsible Moment

Slide 32

Slide 32 text

Summary

Slide 33

Slide 33 text

・Evolutionary Architectureは、第⼀原則として、複数の次元で継 続的かつ漸進的な変更を⽀援する ・第⼀原則から概観できる設計⼿法の特徴は... Fitness Functions ※今回は説明しませんでした Pain-Driven (痛みを⽣みそうなものから) Last Responsible Moment (最終責任時点の前までに決定) ・Evolutionary Architectureの特徴は... Modularity and Coupling (モジュール化とコンポーネント分離) Organized Around Business Capabilities (ビジネス能⼒に沿った組織化) Experimentation (ビジネスに「実験」の⼒を与える)

Slide 34

Slide 34 text

https://www.thoughtworks.com/insights/blog/microservices-evolutionary-architecture

Slide 35

Slide 35 text

https://www.thoughtworks.com/radar/techniques/evolutionary-architecture

Slide 36

Slide 36 text

https://www.infoq.com/jp/news/2016/04/evolutionary-architectures

Slide 37

Slide 37 text

https://www.thoughtworks.com/books/building-evolutionary-architectures

Slide 38

Slide 38 text

End Evolutionary Architecture