Upgrade to Pro — share decks privately, control downloads, hide ads and more …

緩やかに死んでいくシステム / You won't be in the team forever

緩やかに死んでいくシステム / You won't be in the team forever

Talked at Cloud Native Lounge #2「クラウドネイティブなシステムの継続的改善と企業文化」.

https://forkwell.connpass.com/event/215798/

Tori Hara

June 30, 2021
Tweet

More Decks by Tori Hara

Other Decks in Technology

Transcript

  1. twitter.com/toricls Tori Hara / Sr. Product Developer Advocate Elastic Containers,

    AWS ❤ AWS Fargate, AWS App Runer, AWS Lambda toricls New!
  2. twitter.com/toricls 🕵 今⽇から新しい会社で働くあなた 🙋 ユーザー リクエスト レスポンス 謎の⼒ Needs to

    be a “Detective” 🕵 ▶︎ ⻑⽼への(度重なる)ヒアリング ▶︎ コードの読み込み ▶︎ (もしあれば)過去イシューやプルリクからの解きほぐし ▶︎ (もしあれば)過去の障害情報や対応履歴からの解きほぐし ▶︎ etc., etc.
  3. twitter.com/toricls 継続的な改善を殺すもの (の⼀例) ▶︎ 主体的思考の⽋如と緩慢なオーナーシップ ▶︎ 「そうなっている理由」を説明できない ▶︎ e.g. 事情もサイズも能⼒も違うキラキラ他社事例を鵜呑みにしたコピー

    ▶︎ 肥⼤化した組織やチームによる緩慢かつ遅い(あるいは存在しない)意思決定 ▶︎ チーム開発意識の⽋如 ▶︎ 永遠に⾃分が開発・運⽤することが前提になってはいませんか ▶︎ 個⼈で開発しているつもりになってはいませんか ▶︎ 組織内で知⾒の共有ではなく、安易に “Wrap” していませんか ▶︎ ⻑⽼だけが知るシステム全体概要と退職・異動済みの⻑⽼たち ▶︎ etc., etc.
  4. twitter.com/toricls 継続的な改善を⽌めないために at AWS ▶︎ 組織のスピードとスケーラビリティ ▶︎ チームを⼩さく保つ / 2-pizza

    team ▶︎ チーム内あるいは他チームとの依存関係を減らし、各チームが 主体的かつ迅速に意思決定と改善を⾏うことを可能にする (≒マイクロサービス) ▶︎ デザインドキュメント ▶︎ etc., etc.
  5. twitter.com/toricls なぜデザインドキュメントを書き、更新していくのか at AWS ▶︎ 改善の適切なアプローチを最短パスで発⾒するため ▶︎ 既存システムや仕組みがなぜそうなっているのか?を理解せずに適切なアプローチでの改善は 難しい ▶︎

    ⻑⽼への不必要な依存度を減らし、⾃律的に改善タスクを進めたい ▶︎ コードから分からないことの情報としての重要性 ▶︎ (そもそも)初期デザイン時に適切なレビューを実施するため ▶︎ コラム: AWS における Principal Engineer の役割 ▶︎ e.g. 2019 年 CloudWatch での⽉あたりの観測メトリクス 1,000 兆、イベントのトリガー 3.9 兆、 受け取りログ 100 ペタバイト
  6. twitter.com/toricls デザインドキュメントの項⽬例 ▶︎ プロダクト開発・機能開発・改善の背景 ▶︎ 課題は何か = 何を解決するのか ▶︎ システムの技術的全体概要やアーキテクチャー図

    ▶︎ スコープ ▶︎ ⽤語集 ▶︎ 選定した解決⼿段について ▶︎ 選定の根拠、トレードオフ ▶︎ 詳細なアーキテクチャー図など ▶︎ PoC の内容と結果 ▶︎ 選定しなかった解決⼿段 x N について ▶︎ ⼿段の概要と不採⽤の根拠 ▶︎ 外部依存の概要 ▶︎ 機能そのもの、解決⼿段についてセキュリティ観点 からの考察 ▶︎ 現時点で考えられるリスク x N ▶︎ リスクの概要 ▶︎ 考えられるリスクへの対応策 ▶︎ 現時点で対応策をとらない理由 ▶︎ テスト観点からの考察 ▶︎ 運⽤観点からの考察 ▶︎ References ▶︎ etc., etc.
  7. twitter.com/toricls デザインドキュメントの項⽬例 ▶︎ プロダクト開発・機能開発・改善の背景 ▶︎ 課題は何か = 何を解決するのか ▶︎ システムの技術的全体概要やアーキテクチャー図

    ▶︎ スコープ ▶︎ ⽤語集 ▶︎ 選定した解決⼿段について ▶︎ 選定の根拠、トレードオフ ▶︎ 詳細なアーキテクチャー図など ▶︎ PoC の内容と結果 ▶︎ 選定しなかった解決⼿段 x N について ▶︎ ⼿段の概要と不採⽤の根拠 ▶︎ 外部依存の概要 ▶︎ 機能そのもの、解決⼿段についてセキュリティ観点 からの考察 ▶︎ 現時点で考えられるリスク x N ▶︎ リスクの概要 ▶︎ 考えられるリスクへの対応策 ▶︎ 現時点で対応策をとらない理由 ▶︎ テスト観点からの考察 ▶︎ 運⽤観点からの考察 ▶︎ References ▶︎ etc., etc.