Slide 1

Slide 1 text

”Design It!” のすゝめ Aug 22, 2020 | #WESinVR 案件が始まる時、終わる時に読み直したくなる一冊 脱脂綿 ( @anchor_cable )

Slide 2

Slide 2 text

#WESinVR 2 About Me 脱脂綿 ( @anchor_cable ) 東京都内に住む脱脂綿(=Twitter名)系エンジニア ● 株式会社ゆめみ ○ サーバーサイドエンジニア ● 新米ソフトウェアアーキテクト ○ 1つの案件でメインのアーキテクトを担当 ○ 別案件ではメンバーの1人として口出し役

Slide 3

Slide 3 text

3 今日紹介する本 : Design It! #WESinVR タイトル: Design It! プログラマーのためのアーキテクティング入門 著者: Michael Keeling

Slide 4

Slide 4 text

4 アジェンダ Design It! から学んだこと #WESinVR 本を閉じた後に 誰にこの本を勧めたいのか 1 2 3

Slide 5

Slide 5 text

誰にこの本を勧めたいのか 1

Slide 6

Slide 6 text

6 誰にこの本を勧めたいのか アーキテクトを指向するITエンジニア よい設計について知識を身に着けてきたが、 どのように実践の場に活かしていくべきなのか悩んでいる人 現場でアーキテクトとして活躍しているが、 上手くいっていないと感じている人 #WESinVR

Slide 7

Slide 7 text

7 誰にこの本を勧めたいのか 設計について学ぶ最初の1冊目ではない 抽象度の高い話が続くため、 設計について最初に学ぶにはデザインパターン寄りの本が良い 個人的オススメ↓ ● Clean Architecture ● ドメイン駆動設計入門 ● 現場で役立つシステム設計の原則 #WESinVR

Slide 8

Slide 8 text

Design It! から学んだこと 2

Slide 9

Slide 9 text

9 Design It! から学んだこと アーキテクトがやるべきこと ● エンジニアリングの観点から問題を定義する ● システムを分割し、要素とチームに責任を割り当てる ● 全体に目を向け続け、設計の一貫性を保ち続ける ● 品質特性間のトレードオフを決定する ● 技術的負債を管理する ● チームのアーキテクチャスキルを高める #WESinVR

Slide 10

Slide 10 text

10 Design It! から学んだこと アーキテクトがやるべきこと 強く印象に残るふたつについて紹介します ● 設計判断を可能な限り先延ばしにする ● チームがアーキテクチャを設計できるようにする #WESinVR

Slide 11

Slide 11 text

11 Design It! から学んだこと 設計判断を可能な限り先延ばしにする 簡単に元に戻せない決定を先延ばしにする事で、変化に対応可能にする また、判断に必要な探求を十分な時間を取って行う #WESinVR ※Design It! P.82 図6-1参考

Slide 12

Slide 12 text

12 Design It! から学んだこと いつ設計判断を下せばよいのか? ● 判断しないことが進捗を妨げるか? ● 判断は後回しにできない問題を解決するか? ● 判断はより多くの選択肢や新しい機会を生み出すか? ● 判断を遅らせることで、はるかに大きなリスクが発生するか? ● 判断の意味を理解し受け入れるか? ● 今この判断を下す理由について明確な根拠があるか? ● 判断が間違っていた場合に、それを取り消す時間があるか。失敗を許容できる だけのゆとりがあるか? #WESinVR ※Design It! P.96 より抜粋

Slide 13

Slide 13 text

13 Design It! から学んだこと チームがアーキテクチャを設計できるようにする 設計をする人がリーダーで、メンバーは設計に従うべきか? あまり最近はそんな仕事の進め方を好んでやる人はいない であればアーキテクトひとりが全ての設計判断をやるのではない メンバーも設計判断に積極的に関与していくべき #WESinVR

Slide 14

Slide 14 text

14 Design It! から学んだこと アーキテクトは考え方 メンバー全員がアーキテクチャを設計できるようになると、メンバーのアーキテク チャ設計に対する共同所有の意識は高いものとなる。ソフトウェアはただのシステ ムから自分たちのシステムになる。 (中略) 所有意識の高まりは幸福感を増し、それはソフトウェア開発プロセス全体への関与 を拡大することに繋がる。そして、共にソフトウェアを設計することで、素晴らし いソフトウェアを出荷する力を何倍にも加速させる。 #WESinVR ※Design It! P.214 より抜粋

Slide 15

Slide 15 text

15 Design It! から学んだこと 設計判断をメンバーに移譲していく ● ペア設計 ● 良い設計と悪い設計の例を紹介する ● 既存の設計についての説明会を行う 設計判断を行う準備のできているメンバーに徐々に権限を移譲していく アーキテクト側がそのように考えられるようメンバーから働きかけていく 積極的に設計判断に関与していく必要がある #WESinVR

Slide 16

Slide 16 text

本を閉じた後に 3

Slide 17

Slide 17 text

17 本を閉じた後に アーキテクトを実践する ある案件でアーキテクトを担当している チームメンバーへの教育を含めて、できる限りのことを実践中 「アーキテクチャに通知表をつける」という章があり、 落ち着いたらこれを参考にアーキテクチャの振り返りを行う予定 #WESinVR

Slide 18

Slide 18 text

18 本を閉じた後に #WESinVR こんな時に読み直す ● 案件が始まる前、終わった後 ● ソフトウェアアーキテクトとしての自身の働き方 を振り返りたくなった時

Slide 19

Slide 19 text

19 まとめ ● Design It! はアーキテクチャに興味関心のある人全員にオススメ ○ アーキテクト志望は必読 ● アーキテクトがやるべきこと ○ 曖昧さを保つ ○ チームがアーキテクチャを設計できるようにする ● 定期的に働き方を見直すために読み返す本 #WESinVR

Slide 20

Slide 20 text

ご清聴ありがとうございました