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

てんぷれーと