Slide 1

Slide 1 text

1 エンジニアを目指す 君たちはどう生きるか ~ ソフトウェアアーキテクトのすゝめ ~ 技育祭 2023 秋 10.21(土) HALL C 14:30 – 15:15

Slide 2

Slide 2 text

2 はじめに

Slide 3

Slide 3 text

3 ここは HALL C ですよ

Slide 4

Slide 4 text

4 ご視聴にあたって Zoom Chat/ SNS実況歓迎 質問は適宜OK 回答は最後 資料 公開あり Hashtag: #技育祭 #ホールC

Slide 5

Slide 5 text

5 whoami Takeda Hiroki Career: - Hitotsubashi Univ. ~2012/3 - Future Architect, Inc. 2012/4 ~ Favorite Languages: - Go - TypeScript Hobbies: - Kitchen Drinking - Programming Accounts: - Qiita : @rhumie - X : @rhumie_ MBTI: Logician(INTP-A)

Slide 6

Slide 6 text

6 IT consulting firm for the Geeks

Slide 7

Slide 7 text

7 私はどう生きてきたか Web API設計,開発リード (Java/SQL) バックエンド エンジニア マネージドサービスを 活用したインフラ設計,構築 AWS エンジニア SPA 設計,開発リード (React/Vue.js) WEBフロントエンド エンジニア アーキテクチャ設計 設計,開発リード (TypeScript/Golang) テックリード ソフトウェア アーキテクト テスター テスト実施 プログラマ 個別機能設計,開発 (Java/SQL) 学生 知識ゼロ Android/iOSアプリ 設計,開発リード (Flutter/Capacitor) モバイル エンジニア

Slide 8

Slide 8 text

8 本日のゴール(1/2) Web API設計,開発リード (Java/SQL) バックエンド エンジニア マネージドサービスを 活用したインフラ設計,構築 AWS エンジニア SPA 設計,開発リード (React/Vue.js) WEBフロントエンド エンジニア アーキテクチャ設計 設計,開発リード (TypeScript/Golang) テックリード テスター テスト実施 プログラマ 個別機能設計,開発 (Java/SQL) 学生 知識ゼロ Android/iOSアプリ 設計,開発リード (Flutter/Capacitor) モバイル エンジニア フルスタックに経験を積んだ先に行きついた ソフトウェアアーキテクトという「生き方」を知る/学ぶ そもそもアーキテクチャ/アーキテクトとは何なのか? 実際にどのようなことをやるのか? どのようなスキルが求められるか? ソフトウェア アーキテクト

Slide 9

Slide 9 text

9 ソフトウェア アーキテクト 本日のゴール(2/2) Web API設計,開発リード (Java/SQL) バックエンド エンジニア マネージドサービスを 活用したインフラ設計,構築 AWS エンジニア SPA 設計,開発リード (React/Vue.js) WEBフロントエンド エンジニア アーキテクチャ設計 設計,開発リード (TypeScript/Golang) テックリード テスター テスト実施 プログラマ 個別機能設計,開発 (Java/SQL) Android/iOSアプリ 設計,開発リード (Flutter/Capacitor) モバイル エンジニア アーキテクト思考 + 学生視点で考える これからのエンジニアとしての「生き方」のヒントを得る 学生 知識ゼロ どのような技術を身に付けるべきか? どのようなポジションを目指すべきか? どのような会社に入るべきか?

Slide 10

Slide 10 text

10 ソフトウェアアーキテクトという 「生き方」を知る/学ぶ そもそもアーキテクチャ/アーキテクトとは何なのか? 実際にどのようなことをやるのか? どのようなスキルが求められるか?

Slide 11

Slide 11 text

11 アーキテクト/アーキテクチャとは?

Slide 12

Slide 12 text

12 もともとは建築用語

Slide 13

Slide 13 text

13 ソフトウェアアーキテクト/ ソフトウェアアーキテクチャとは?

Slide 14

Slide 14 text

14 一意的な定義は存在しない 今までのところ「ソフトウェアアーキテクチャ」という用語に関して, 万人が合意した厳密な 定義は存在しない。 Wikipedia システムのソフトウェアアーキテクチャとは, 望まれる品質特性やその他の性質を促進するた めにソフトウェアをどう構成するかということに対する, 重要な設計判断が集まったものだ。 Michael Keeling (著), 島田 浩二 (翻訳) Design It! システムの構造, システムがサポートしなければならないアーキテクチャ特性, アーキテクチャ 決定, そして設計指針の組み合わせで構成されるもの。 Mark Richards, Neal Ford (著), 島田 浩二 (翻訳) ソフトウェアアーキテクチャの基礎 アーキテクチャとは, コンポーネント, コンポーネント間および環境との関係, またその設計と 進化の指針となる原理に体現されたシステムの基本構造である。 IEEE 1471

Slide 15

Slide 15 text

15 ソフトウェアアーキテクチャとは システムに求められる重要な特性を満たすための, 構造をはじめとするシステムの全体的な設計

Slide 16

Slide 16 text

16 システムに求められる重要な特性を満たすための, 構造をはじめとするシステムの全体的な設計 「システムに求められる重要な特性」とは?

Slide 17

Slide 17 text

17 「家づくり」で考えてみる 具体的な機能/リクエスト • 3つの寝室, リビング, ダイニング, キッチン, バスルームがある • 各部屋にはコンセントとアンテナ端 子がある • キッチンはアイランド型で, シンクは タッチレス水栓, コンロは3口で自動 調理機能付き, 収納は立体構造で大容 量で... 家の品質/住み心地 • 地震や火事に耐えられるためのつく りになっている • 将来子供が増えたときに, 部屋を拡張 できるようなつくりになっている • プライバシーを保護するために, 防音 性能が備わっている

Slide 18

Slide 18 text

18 「システム」も同じ(1/2) 機能要求 • ユーザが140文字以内のメッセージ を登録できる • ユーザが他のユーザをフォローする ことができ, フォローしたユーザの メッセージをタイムラインとして一 覧化して時系列で参照することがで きる • ユーザが他のユーザに直接メッセー ジを送信できる アーキテクチャ特性(*1) • 数億人のアクティブユーザのリクエ ストを高速で処理することができる • 24時間365日利用可能で, 障害時のダ ウンタイムが極力少ない • ユーザのアカウントが適切に保護さ れ, 不正アクセスや情報漏洩が発生し ない *1) 品質特性や非機能要件など様々な言い方があります

Slide 19

Slide 19 text

19 「システム」も同じ(2/2) 機能要求 • ユーザが140文字以内のメッセージ を登録できる • ユーザが他のユーザをフォローする ことができ, フォローしたユーザの メッセージをタイムラインとして一 覧化して時系列で参照することがで きる • ユーザが他のユーザに直接メッセー ジを送信できる アーキテクチャ特性(*1) • 数億人のアクティブユーザのリクエ ストを高速で処理することができる • 24時間365日利用可能で, 障害時のダ ウンタイムが極力少ない • ユーザのアカウントが適切に保護さ れ, 不正アクセスや情報漏洩が発生し ない *1) 品質特性や非機能要件など様々な言い方があります ソフトウェアアーキテクチャを 考えるときはこちらをより意識

Slide 20

Slide 20 text

20 アーキテクチャ特性(-ility) 可用性 (Availability) 信頼性 (Reliability) 回復性 (Recoverability) 耐障害性 (Fault Tolerance) 障害回避 (Fault Avoidance) 災害復旧 (Disaster Recovery) 性能 (Performance) 性能拡張性 (Scalability) 機能拡張性 (Extensibility) 弾力性 (Elasticity) アップグレード容易性 (Upgradability) 中立性 (Neutrality) 置換容易性 (Replaceability) 移行性 (Migratability) セキュリティ (Security) 合法性 (Legality) ユーザビリティ (Usability) アクセシビリティ (Accessibility) 運用性 (Operability) 可観測性 (Observability) 保守性 (Maintainability) モジュール性 (Modularity) 再利用性 (Reusability) 解析性 (Analyzability) 修正性 (Modifiability) テスト容易性 (Testability) デプロイ容易性 (Deployability) その他多数…

Slide 21

Slide 21 text

21 (参考)JIS X 25010:2013 システム/ソフトウェア製品品質 機能適合性 • 機能完全性 • 機能正確性 • 機能適切性 性能効率性 • 時間効率性 • 資源効率性 • 容量満足性 互換性 • 共存性 • 相互運用性 使用性 • 適切度認識 性 • 習得性 • 運用操作性 • ユーザエ ラー 防止性 • ユーザイン ターフェー ス快美性 • アクセシビ リティ 信頼性 • 成熟性 • 可用性 • 障害許容性 (耐故障 性) • 回復性 セキュリティ • 機密性 • インテグリ ティ • 否認防止性 • 責任追跡性 • 真正性 保守性 • モジュール 性 • 再利用性 • 解析性 • 修正性 • 試験性 移植性 • 適応性 • 設置性 • 置換性

Slide 22

Slide 22 text

22 (参考)IPA 非機能要求グレード 2018 非機能要求項目 可用性 • 継続性 • 耐障害性 (障害許容性) • 災害対策 • 回復性 性能・拡張性 • 業務処理量 • 性能目標値 • リソース拡張性 • 性能品質保証 運用・保守性 • 通常運用 • 保守運用 • 障害時運用 • 運用環境 • 運用・保守体制 • 運用管理方針 移行性 • 移行時期 • 移行方式 • 移行対象(機器) • 移行対象(デー タ) • 移行計画 セキュリティ • 前提条件・制約条件 • セキュリティリスク 対応 • セキュリティ診断 • セキュリティリスク 管理 • アクセス・利用制限 • データの秘匿 • 不正追跡・監視 • ネットワーク対策 • マルウェア対策 • Web対策 環境・エコロジー • システム 制約/前提条件 • システム特性 • 適合企画 • 機材設置環境条件 • 環境マネージメン ト

Slide 23

Slide 23 text

23 求められる重要な特性を明確し, 優先順位を付ける 可用性 (Availability) 信頼性 (Reliability) 回復性 (Recoverability) 耐障害性 (Fault Tolerance) 障害回避 (Fault Avoidance) 性能拡張性 (Scalability) 機能拡張性 (Extensibility) 弾力性 (Elasticity) アップグレード容易性 (Upgradability) 中立性 (Neutrality) 置換容易性 (Replaceability) 移行性 (Migratability) セキュリティ (Security) 合法性 (Legality) ユーザビリティ (Usability) アクセシビリティ (Accessibility) 運用性 (Operability) 可観測性 (Observability) 保守性 (Maintainability) モジュール性 (Modularity) 再利用性 (Reusability) 解析性 (Analyzability) 修正性 (Modifiability) その他多数… 性能 (Performance) 災害復旧 (Disaster Recovery) 日本において大規模な災害が発生した場合でも, XX時間以内に 災害発生前の状態に復旧し, サービスを提供し続けること テスト容易性 (Testability) デプロイ容易性 (Deployability)

Slide 24

Slide 24 text

24 システムに求められる重要な特性を満たすための, 構造をはじめとするシステムの全体的な設計 「システムの全体的な設計」とは?

Slide 25

Slide 25 text

25 実際にやっていること 構造設計 技術選定 処理方式 設計

Slide 26

Slide 26 text

26 実際にやっていること – 構造設計 – 構造設計 技術選定 処理方式 設計

Slide 27

Slide 27 text

27 構造設計 システムの単位(提供する機能, 保持するデータ)やシステム間 の連携, 依存関係を明確化 システムを構成する論理的なコ ンポーネントの役割やフロー (データの流れや制御の流れ) を明確化 論理構成を元に, システムを構 成する製品やサービスをマッピ ング システム構成(論理) API GW キュー ストア データ ストア ファイル ストレージ API Stream 機能配置/サービスカット ユーザ管理機能 (登録/更新/削除) ユーザ 情報 ブラ ウザ ユーザ管理システム メール配信システム メール 配信機能 配信 履歴 注文管理システム 注文機能 注文 履歴 〇〇システム 制御の流れ データの流れ システム構成(物理) 論理から物理へ/抽象から具体へ/概要から詳細へ AWS API Gateway Lambda DynamoDB S3 SQS Lambda 制御の流れ データの流れ ap-northeast-1

Slide 28

Slide 28 text

28 実際にやっていること – 技術選定 – 構造設計 技術選定 処理方式 設計

Slide 29

Slide 29 text

29 技術選定(1/2) クラウドサービスプロバイダ AWS, GCP, Azure, OCI, etc... クラウドサービス Amazon EC2, Amazon S3, etc... ミドルウェア Web Server(Apache, Nginx), etc... 開発言語 Java, Golang, TypeScript, etc... アプリケーションフレームワーク Spring Boot, React, etc... ライブラリ / ツール O/R Mapper, Logging, Utility, etc... 選定領域

Slide 30

Slide 30 text

30 技術選定(2/2) フィジビリティスタディ 調査 要件を満たし得る技術の調 査を行う。枯れている技術 から最新の技術まで網羅的 に調査を行う Non-Relational Relational NoSQL NewSQL KVS Document Column Graph OLTP OLAP as-a-Service Oracle, PostgreSQL, MySQL, SQL Server, etc... CockroachDB, VoltDB, ... Redis, ElastiCache MongoDB, DocumentDB Cassandra Aurora, RDS 例. データストアの整理 調査した技術の中から, 後 続の評価/検証の対象とな るいくつかの有力な選択肢 に絞る Aurora DynamoDB DocumentDB 例. 選択肢を絞る 検証/評価 対象の技術を評価軸にもと づいて, 机上評価やPoCを 行い, Pros&Consを整理す る ○ ○ … … … ○ ◎ ○ ○ △ ○ ○ 制約 ・・・ 性能/拡張性 コスト 例. データストアを検証/評価 選定 網羅的な観点から評価/検 証を行った結果, 現時点で 最適と考えられる技術を選 定する 例. データストアを選定 Architecture Decision Record (ADR) コンテキスト 技術選定の背景:XXXXXXXXX 評価・検証結果 :XXXXXXXXX 決定 時系列データのデータストアに○○○ を採用する。 要件. ○○データを永続化する。 データの読込みは秒間X回/秒, 書込みはY回/秒 データ量は△△TB/日 選定プロセス

Slide 31

Slide 31 text

31 実際にやっていること – 処理方式設計 – 構造設計 技術選定 処理方式 設計

Slide 32

Slide 32 text

32 処理方式設計 逐次/並行/並列 同期/非同期 リクエストに対して同期で処理 するか, 非同期で処理するかの 判断基準を明確化し, 実現方式 を設計 タスクを制御するための方式に ついて, どのパターンを適用す るかの判断基準を明確化し, パ ターン毎の実現方式を設計 システム間連携 システム間の連携方式について, どのパターンを適用するかの判 断基準を明確化し, パターン毎 の実現方式を設計 システムA システムB {...} Web API(REST, gRPC, etc...) データベース共有 メッセージング ファイル転送 注文受付 会計 調理 非同期(Async) 注文受付 会計 調理 同期(Sync) タスクA タスクB 逐次(Sequential) 並行(Concurrent) タスクB1 A2 B2 タスクA1 並列(Parallel) タスクA タスクB1

Slide 33

Slide 33 text

33 その他いろいろ • アプリケーション構造設計(Layered Architecture, Clean Architecture, etc...) • 設計標準化 • 画面設計, API設計, 帳票設計などにおけるパターン定義 • 設計ガイドラインの策定 • 開発標準化 • 開発ガイドラインの策定 • コーディング規約の策定 • コードジェネレーターの整備 • フレームワーク, 共通機能, 共通コンポーネントの開発 • 設計レビュー, コードレビュー • 設計者, 開発者のコーチング etc... ※ 一般的に, 設計/開発の推進はテックリードの役割かもしれません。会社や組織によりその役割は様々です。

Slide 34

Slide 34 text

34 【再掲】ソフトウェアアーキテクチャとは システムに求められる重要な特性を満たすための, = 機能要求 + アーキテクチャ特性 構造をはじめとするシステムの全体的な設計 構造設計, 技術選定, 処理方式設計 など

Slide 35

Slide 35 text

35 アーキテクティングを行う上での心得は?

Slide 36

Slide 36 text

36 分母と分子のクオリティの追求 分母 = アーキテクチャ案 質の高い複数のソリューションを いかに検討できるか 分子 = 採用アーキテクチャ なぜそのアーキテクチャか?を いかに語れるか ✓ 多面的なトレードオフ分析 ✓ 論より動くもの ✓ 目的と手段の再認識 ✓ 技術の幅 ✓ 原理原則の理解 ✓ トレンドの理解 ✓ ゼロベース思考 アーキテクチャには正解も不正解もない。あるのはトレードオフだけだ。 Mark Richards, Neal Ford (著), 島田 浩二 (翻訳) ソフトウェアアーキテクチャの基礎

Slide 37

Slide 37 text

37 ソフトウェアアーキテクトに必要なスキルは?

Slide 38

Slide 38 text

38 4つのスキル • 自ら具現化する力 • 書けない/書かないアーキテクトはただの評論家 • アーキテクティングとコーディングを「戦略的に」両立すること • 継続的に技術の幅を広げる力 • レイヤ問わず様々な技術を知り, 経験すること • 最新の技術トレンドを楽しみながら学び続けること • 意思決定を行う力 • 目的, 根拠を明確にしてアーキテクチャを「決断する」こと • アーキテクチャを「語り」ステークホルダを「納得させられる」こと • 継続的にアーキテクチャを「分析する」こと • 経営やビジネスの視点で考える力

Slide 39

Slide 39 text

39 ソフトウェアアーキテクトの魅力は?

Slide 40

Slide 40 text

40 3つの魅力 0からの全体設計 • 全体像を見据えたディレク ション • プロジェクトの成功/失敗に 対する大きな影響力 • 自らの「作品」を創る感覚 テクノロジ最前線 • 新しい技術による新しい チャレンジ • 技術でビジネスをドライブ • 自身のスキルや思想の 継続的なアップデート 最適解の探求 • 正解が1つではない面白さ • 未来予測と答え合わせ • パズルを解くような創造性 • 成功も失敗も全てが学び アーキテクティングしたものを, 自ら具現化(構築)することが最大の醍醐味

Slide 41

Slide 41 text

41 私にとってのソフトウェアアーキテクトとは アーキテクチャを設計し, 自ら具現化する

Slide 42

Slide 42 text

42 ここまでのまとめ – 前編 –

Slide 43

Slide 43 text

43 【再掲】 本日のゴール(1/2) Web API設計,開発リード (Java/SQL) バックエンド エンジニア マネージドサービスを 活用したインフラ設計,構築 AWS エンジニア SPA 設計,開発リード (React/Vue.js) WEBフロントエンド エンジニア アーキテクチャ設計 設計,開発リード (TypeScript/Golang) テックリード テスター テスト実施 プログラマ 個別機能設計,開発 (Java/SQL) 学生 知識ゼロ Android/iOSアプリ 設計,開発リード (Flutter/Capacitor) モバイル エンジニア フルスタックに経験を積んだ先に行きついた ソフトウェアアーキテクトという「生き方」を知る/学ぶ そもそもアーキテクチャ/アーキテクトとは何なのか? 実際にどのようなことをやるのか? どのようなスキルが求められるか? ソフトウェア アーキテクト

Slide 44

Slide 44 text

44 これからのエンジニアとしての 「生き方」のヒントを得る どのような技術を身に付けるべきか? どのようなポジションを目指すべきか? どのような会社に入るべきか?

Slide 45

Slide 45 text

45 エンジニアのキャリアパスは何通りある?

Slide 46

Slide 46 text

46 選択肢は無限大? 企業 職種 技術 • Web系 • 内製系 • 外製系 ... • SIer系 • ユーザー系 • メーカー系 • 独立系 ... • コンサル系 • 戦略系 • IT系 ... • 通信・インフラ系 • ハードウェア系 • ソフトウェア系 ... • プログラマ • テスター • プロジェクトマネージャー • システムエンジニア • セールスエンジニア • データサイエンティスト • ソフトウェアアーキテクト • テックリード • ネットワークエンジニア • セキュリティエンジニア • データベースエンジニア • クラウドエンジニア • インフラエンジニア • CTO ... • Language • C++ • Java • Golang • Rust ... • Database • PostgreSQL • MySQL ... • Cloud • AWS • GCP • Azure • Oracle ... • AI ...

Slide 47

Slide 47 text

47 3つの観点で考えてみる 技術 どのような技術/スキル を身に付けるべきか? 役割 どのような職種/役割を 目指すべきか? 環境 どのような環境/会社で 働くべきか?

Slide 48

Slide 48 text

48 3つの観点で考えてみる – 技術 – 技術 どのような技術/スキル を身に付けるべきか? 役割 どのような職種/役割を 目指すべきか? 環境 どのような環境/会社で 働くべきか?

Slide 49

Slide 49 text

49 技術は変わりやすい? 実行環境: VMs コンテナ, サーバレス アーキテクチャスタイル: モノリス マイクロサービス プロセス ウォーターフォール アジャイル, DevOps WEB Frontend MPA JavaScript CSR-SPA, SSR-SPA Modern JavaScript WEB API RPC, SOAP REST, GraphQL, gRPC データベース RDBMS NoSQL, NewSQL インフラ構築 Mutable IaC Immutable IaC

Slide 50

Slide 50 text

50 具体と抽象で全体を捉える(1/2) 抽象 具体 変わり にくい トレンド がある アプリケーション データベース … オブジェクト指向, 関数 型, リアクティブ, etc... パラダイム Singleton, Observer, Pub-Sub, DI, etc... デザインパターン DRY, KISS, YAGNI, SOLID, etc... プログラミング原則 Go, Java, JavaScript, Ruby, Swift, Kotlin, etc... 開発言語 Ruby on Rails, Spring Boot, React, Vue.js, Django, etc... アプリFW/ツール MySQL, PostgreSQL, MongoDB, TiDB, etc... DBプロダクト ACID, BASE, CAP定理, etc... DB特性 分散型システム, 集中型 システム, etc... システムの原理 ネットワークやセキュリティ, クラウドをはじめとし, 数多 くの軸がある ※ 図中の各要素はあくまで一例です。

Slide 51

Slide 51 text

51 具体と抽象で全体を捉える(2/2) 抽象 具体 変わり にくい トレンド がある アプリケーション データベース … オブジェクト指向, 関数 型, リアクティブ, etc... パラダイム Singleton, Observer, Pub-Sub, DI, etc... デザインパターン DRY, KISS, YAGNI, SOLID, etc... プログラミング原則 Go, Java, JavaScript, Ruby, Swift, Kotlin, etc... 開発言語 Ruby on Rails, Spring Boot, React, Vue.js, Django, etc... アプリFW/ツール MySQL, PostgreSQL, MongoDB, TiDB, etc... DBプロダクト ACID, BASE, CAP定理, etc... DB特性 分散型システム, 集中型 システム, etc... システムの原理 ネットワークやセキュリティ, クラウドをはじめとし, 数多 くの軸がある ※ 図中の各要素はあくまで一例です。 原理原則をはじめとし, 抽象度の高い領域を 押さえることで変化対応力が付く

Slide 52

Slide 52 text

52 実践のヒント 抽象化 具体化 古典的名著やいわゆるパターン本を はじめとし,書籍に学べることは多い 原理原則やパターンを学ぶ 色々な技術に触れる 異なる技術や方法で同じモノを作ってみる (悩む前にやってみることも大事) 歴史を学ぶ その技術が生まれた背景や問題を知り, どう進化してきたのかを理解する

Slide 53

Slide 53 text

53 3つの観点で考えてみる – 役割 – 技術 どのような技術/スキル を身に付けるべきか? 役割 どのような職種/役割を 目指すべきか? 環境 どのような環境/会社で 働くべきか?

Slide 54

Slide 54 text

54 当然, 正解はないし 状況によって変わる 興味や情熱 スキル 最終的な ゴール 市場や会社 のニーズ 会社やチーム の文化や環境 … 目指すべき役割/ポジション

Slide 55

Slide 55 text

55 技術だけでなくビジネスの流れを意識してみる 関わりたい領域(幅と深さ)とステップをイメージしておく ギャップが生じる例 • 自社サービスの企画から開発までやりたかったが, 企画部署と開発部署が縦割りだった • 技術選定を担当したかったが, 決められたものを開発/テストすることがメインだった • 開発に携わりながらキャリアアップするパスが無かった 未来を描く 計画に落とす 具現化する 価値を生み出す 戦略立案 グランドデザイン 要件定義 設計 開発/テスト 運用/保守 …

Slide 56

Slide 56 text

56 3つの観点で考えてみる – 環境 – 技術 どのような技術/スキル を身に付けるべきか? 役割 どのような職種/役割を 目指すべきか? 環境 どのような環境/会社で 働くべきか?

Slide 57

Slide 57 text

57 会社や組織の影響は大きい エンジニアとしての「成長速度」は 環境によって加速も減速もする 会社/組織 あなた 組織文化 メンターシップ プロダクト/プロジェ クトの規模や質 教育リソース … 同僚 部下 上司

Slide 58

Slide 58 text

58 会社に強くロックインされないという考え方 市場 会社 溝 市場の技術トレンドや思想に 敏感であり, 社内でもそれら を適用した技術的な挑戦がで きる 勉強会の登壇/参加, 技術ブロ グや書籍の執筆, OSSコント リビュートなど, エンジニア が社外に発信できる 市場と会社の溝が少ないほど「社内価値」 と「市場価値」のギャップが生じにくい

Slide 59

Slide 59 text

59 ここまでのまとめ – 後編 –

Slide 60

Slide 60 text

60 ソフトウェア アーキテクト 【再掲】本日のゴール(2/2) Web API設計,開発リード (Java/SQL) バックエンド エンジニア マネージドサービスを 活用したインフラ設計,構築 AWS エンジニア SPA 設計,開発リード (React/Vue.js) WEBフロントエンド エンジニア アーキテクチャ設計 設計,開発リード (TypeScript/Golang) テックリード テスター テスト実施 プログラマ 個別機能設計,開発 (Java/SQL) Android/iOSアプリ 設計,開発リード (Flutter/Capacitor) モバイル エンジニア アーキテクト思考 + 学生視点で考える これからのエンジニアとしての「生き方」のヒントを得る 学生 知識ゼロ どのような技術を身に付けるべきか? どのようなポジションを目指すべきか? どのような会社に入るべきか?

Slide 61

Slide 61 text

61 おわりに

Slide 62

Slide 62 text

62 About Future 未来報: https://note.future.co.jp/ フューチャーのオウンドメディアです。 人, カルチャー, 仕事などが知れる! Tech Cast: https://open.spotify.com/show/6ntaBQ28GSDaOztBphH6oi 社員が有志で運営しているラジオ放送です。 今話題になっていることから社員が語りたいことをひたすら 語る会まで様々なラインナップがございます! テックブログ: https://future-architect.github.io/ 最新の技術トピックから初心者向けのおすすめ記事まで 技術視点でFutureの魅力がわかる!

Slide 63

Slide 63 text

63 Enjoy Tech!!!