設計の本質:コード、システム、そして組織へ / The Essence of Design: To Code, Systems, and Organizations
by
nrs
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
nrs 設計の本質:コード、システム、そして組織へ
Slide 2
Slide 2 text
2 Profile nrs(成瀬 允宣) @nrslib 株式会社コドモン 執行役員CTO 趣味: カンファレンス講演 学生支援 小学校支援 写真
Slide 3
Slide 3 text
3 Profile nrs(成瀬 允宣) @nrslib 株式会社コドモン 執行役員CTO 趣味: カンファレンス講演 学生支援 小学校支援 写真
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
設計とは いろんな計画行為の確認 個人史から学ぶ計画行為 まとめ 設計の本質:コード、システム、そして組織へ
Slide 10
Slide 10 text
設計とは いろんな計画行為の確認 個人史から学ぶ計画行為 まとめ 設計の本質:コード、システム、そして組織へ
Slide 11
Slide 11 text
設計とは
Slide 12
Slide 12 text
12 ● 設計とは…… 言葉の定義を確認する
Slide 13
Slide 13 text
13 ● 設計とは…… 言葉の定義を確認する 審美性を根源とする計画的行為
Slide 14
Slide 14 text
14 ● 審美性とは…… 言葉の定義を確認する
Slide 15
Slide 15 text
15 ● 審美性とは…… 言葉の定義を確認する 美に関する感覚や判断の性質を指す概念
Slide 16
Slide 16 text
美しさはとっても便利
Slide 17
Slide 17 text
17 ● 美しさの便利なところを因数分解 なぜ美しさが? 1.感情的な共鳴と魅力 2.コミュニケーションの効率化 3.価値の付加 4.機能性との補完 5.人間の本能的な特性
Slide 18
Slide 18 text
18 ● 1. 感情的な共鳴と魅力 美しさの便利さを解説
Slide 19
Slide 19 text
19 ● 2. コミュニケーションの効率化 美しさの便利さを解説
Slide 20
Slide 20 text
20 ● 3. 価値の付加 美しさの便利さを解説
Slide 21
Slide 21 text
21 ● 4. 機能美との補完 美しさの便利さを解説
Slide 22
Slide 22 text
22 ● 5. 人間の本能と特性 美しさの便利さを解説
Slide 23
Slide 23 text
23 ● 美しさは効率性と持続性の鍵 美しさがもつ効果
Slide 24
Slide 24 text
24 美しいものがもつ持続性の例 システィーナの聖母 ラファエロ・サンティ キリストの復活 ピエロ・デラ・フランチェスカ 牧場の聖母 ラファエロ・サンティ
Slide 25
Slide 25 text
設計とは いろんな計画行為の確認 個人史から学ぶ計画行為 まとめ 設計の本質:コード、システム、そして組織へ
Slide 26
Slide 26 text
26 ● 設計とは…… 言葉の定義を再確認 審美性を根源とする計画的行為
Slide 27
Slide 27 text
27 ● わかりやすいもの いろんな計画的行為 ウェブデザイン
Slide 28
Slide 28 text
28 ● わかりやすいもの いろんな計画的行為 UX デザイン
Slide 29
Slide 29 text
29 ● わかりづらいもの いろんな計画的行為 オブジェクト指向設計
Slide 30
Slide 30 text
30 ● わかりづらいもの いろんな計画的行為 ドメイン駆動設計
Slide 31
Slide 31 text
31 ● わかりづらいもの いろんな計画的行為 組織設計
Slide 32
Slide 32 text
設計とは いろんな計画行為の確認 個人史から学ぶ計画行為 まとめ 設計の本質:コード、システム、そして組織へ
Slide 33
Slide 33 text
33 ● よくあるキャリアラダーを登ってきました コンフォートゾーン脱却の歴史
Slide 34
Slide 34 text
34 ● よくあるキャリアラダーを登ってきました コンフォートゾーン脱却の歴史 メンバー →リーダー →アーキテクト →スタッフエンジニア →CTO
Slide 35
Slide 35 text
メンバー
Slide 36
Slide 36 text
36 ● 自問自答 メンバー 良いコードはどうすれば作れるのか
Slide 37
Slide 37 text
37 ● コードの将来を計画 コードレベルの計画 後続の開発者にどう読み解いてほしいか 改修の影響範囲をどう定めるか 予期された拡張にどのように備えるか
Slide 38
Slide 38 text
38 ● オブジェクト指向プログラミングに拘泥 コードレベルの計画 コードの意図を深く考える(読むとき/書くとき) テクニックや原則の背景を学ぶ デザインパターンの真意を学ぶ
Slide 39
Slide 39 text
リーダー
Slide 40
Slide 40 text
40 ● 自問自答 リーダー システムの持続可能性を高めるには どのような手段があるか
Slide 41
Slide 41 text
41 ● システムの将来を計画 システムレベルの計画 プロダクトの方向性に合わせる計画 ビジネスと開発のギャップを埋めるための計画
Slide 42
Slide 42 text
42 ● この出会いは運命だったのかもしれない ドメイン駆動設計との出会い この本に出会ったとき これこそが……! まさに……! ポエムかな? と思った
Slide 43
Slide 43 text
43 ● この出会いは運命だったのかもしれない ドメイン駆動設計との出会い この本に出会ったとき これこそが……! まさに……! ポエムかな? と思った
Slide 44
Slide 44 text
44 ● この出会いは運命だったのかもしれない ドメイン駆動設計との出会い この本に出会ったとき これこそが……! まさに……! ポエムかな? と思った
Slide 45
Slide 45 text
45 ● しばらく積んだのち…… ドメイン駆動設計との出会い 読み方がわかると ソフトウェア開発と設計全般を 取り扱っていることがわかる
Slide 46
Slide 46 text
46 ● 優れた構造の計画 アーキテクチャレベルの計画 過度の複雑性から脱却し拡張性や優れた構造を計画 ソフトウェアアーキテクチャの文脈では システム全体の構成やコンポーネント間の関係を計画
Slide 47
Slide 47 text
47 ● ぱっと思いつくだけでも さまざまなアーキテクチャとの出会い レイヤードアーキテクチャ ヘキサゴナルアーキテクチャ オニオンアーキテクチャ GUIアーキテクチャパターン マイクロサービスアーキテクチャ イベント駆動アーキテクチャ :
Slide 48
Slide 48 text
48 ● 個人的な当時の感想 さまざまなアーキテクチャとの出会い 思いついたものは大抵名前がついてる 先人の知恵ってスゲー
Slide 49
Slide 49 text
49 ● コンセプトは異なるが相対する課題は同じであることも多い ソフトウェアアーキテクチャの学び方 伝統的なレイヤードアーキテクチャよりも 洗練されたヘキサゴナルアーキテクチャ ↓ この裏を読むと レイヤードアーキテクチャがやりたかったことを ヘキサゴナルアーキテクチャはシンプルに実現
Slide 50
Slide 50 text
50 ● コンセプトは異なるが相対する課題は同じであることも多い ソフトウェアアーキテクチャの学び方 伝統的なレイヤードアーキテクチャよりも 洗練されたヘキサゴナルアーキテクチャ ↓ この裏を読むと レイヤードアーキテクチャがやりたかったことを ヘキサゴナルアーキテクチャはシンプルに実現
Slide 51
Slide 51 text
51 ● コンセプトは異なるが相対する課題は同じであることも多い ソフトウェアアーキテクチャの学び方 伝統的なレイヤードアーキテクチャよりも 洗練されたヘキサゴナルアーキテクチャ ↓ この裏を読むと レイヤードアーキテクチャがやりたかったことを ヘキサゴナルアーキテクチャはシンプルに実現
Slide 52
Slide 52 text
52 ● コンセプトは異なるが相対する課題は同じであることも多い ソフトウェアアーキテクチャの学び方 伝統的なレイヤードアーキテクチャよりも 洗練されたヘキサゴナルアーキテクチャ ↓ この裏を読むと レイヤードアーキテクチャがやりたかったことを ヘキサゴナルアーキテクチャはシンプルに実現
Slide 53
Slide 53 text
53 ● コンセプトは異なるが相対する課題は同じであることも多い ソフトウェアアーキテクチャの学び方 MVC, MVC2, MVP, MVVMなどの乱立後にMVWの考え方
Slide 54
Slide 54 text
アーキテクト
Slide 55
Slide 55 text
55 ● 自問自答 アーキテクト これまでなんだかんだでうまくいったけど 再現性あるのかな
Slide 56
Slide 56 text
56 ● 必要な取り組み 再現性の計画 共有と教育による標準化 ツールによる標準化 プロセスによる標準化
Slide 57
Slide 57 text
57 ● 共有と教育による標準化 再現性のための取り組み 伝える場・共有する場を作る
Slide 58
Slide 58 text
58 ● ツールによる標準化 再現性のための取り組み 開発/運用 ツール
Slide 59
Slide 59 text
59 ● プロセスによる標準化 再現性のための取り組み コードレビュー レトロスペクティブ
Slide 60
Slide 60 text
スタッフエンジニア
Slide 61
Slide 61 text
61 ● 自問自答 スタッフエンジニア 今私は何をすべきか
Slide 62
Slide 62 text
62 ● 抽象的で壮大な課題 高次元の計画 リソースをスケーラブルに 開発組織をスケーラブルに データの利活用を柔軟に
Slide 63
Slide 63 text
63 ● スケーラブルサービスの実現 抽象的で壮大な課題を解決するために リアクティブなシステム クラウドネイティブなシステム 処理レベルで分散可能な マイクロサービス https://www.reactivemanifesto.org/ja
Slide 64
Slide 64 text
64 ● 水の低きに就くが如し 抽象的で壮大な課題を解決するために 組織のコントロールは 川をイメージ 自分ならどう流れたいかな? 人の気持ちを考える日々
Slide 65
Slide 65 text
65 ● データはあればいいってもんじゃない 抽象的で壮大な課題を解決するために 利活用しやすいデータの模索 欠落を防ぐアーキテクチャ 参照のための仕組み
Slide 66
Slide 66 text
CTO
Slide 67
Slide 67 text
67 ● 自問自答 CTOになることを決める前 ●私はなにがしたいのか ●より高次元のエンジニアリングに到達するには?
Slide 68
Slide 68 text
68 ● アプローチすべきは 高次元への到達を計画 経営戦略と技術戦略
Slide 69
Slide 69 text
69 ● 詳しく語ると1時間ぐらいかかるからここを見てくれ! 高次元への到達を計画
Slide 70
Slide 70 text
70 ● 経営戦略が計画するもの(特に開発に関わる部分) 高次元への到達を計画 組織の目標達成への計画 リソースの配分 組織文化の形成
Slide 71
Slide 71 text
71 ● なにをベースに考えるのか 中長期目線の計画 その柱となるのは ミッションとヴィジョン
Slide 72
Slide 72 text
72 ● コドモンのミッションとヴィジョン 参考までに ◆ Mission ◆ 子どもを取り巻く環境をテクノロジーの力でよりよいものに ◆ Vision ◆ 子どもの育ちや学びを社会全体で支えられる世の中へ
Slide 73
Slide 73 text
73 え? そんなCTOはあんまり見たことないけど…‥?
Slide 74
Slide 74 text
74 ● 0->1 CTOの役割 スーパープログラマ
Slide 75
Slide 75 text
75 ● 1->10 CTOの役割 コードを書きながら 開発チームをリード
Slide 76
Slide 76 text
76 ● 10->100 CTOの役割 組織構築 マネジメント
Slide 77
Slide 77 text
77 ● 100->1000(コドモンはココ) CTOの役割 長期的な技術戦略 投資判断
Slide 78
Slide 78 text
78 ● なにをすべきか 100->1000のCTOをまっとうするために 「ビジネスのわかる開発者」になること
Slide 79
Slide 79 text
79 続きはWebで イベントやります! 成瀬の発表:ドメイン駆動設計とXPで支える子どもの未来〜保育の暗黙知を活かすシステム開発〜
Slide 80
Slide 80 text
設計とは いろんな計画行為の確認 個人史から学ぶ計画行為 まとめ 設計の本質:コード、システム、そして組織へ
Slide 81
Slide 81 text
81 ● 設計は計画だ! まとめ 再現可能で持続性のある力=美しさを使った 計画行為
Slide 82
Slide 82 text
82 ● このセッションも計画しました! 自己例証 あなたがいつでもコンフォートゾーンを脱却して 新たな挑戦へと勇気をもって踏み出せますように
Slide 83
Slide 83 text
83 仲間を探しています 子どもを取り巻く環境をテクノロジーの力でよりよいものにしていく仲間を大募集! ● 子育てしやすい環境です ○ 子育てにドメイン知識がありすぎるメンバー ○ フレックス/フルリモート可 ● 開発者体験が最高です ○ アジャイル(XP) ○ バーチャルオフィス(Gather) ○ コンフォートゾーンを抜け出せるような環境 ○ CTOが財布
Slide 84
Slide 84 text
てんぷれーと