Talked at Cloud Native Lounge #2「クラウドネイティブなシステムの継続的改善と企業文化」.
https://forkwell.connpass.com/event/215798/
twitter.com/toricls緩やかに死んでいくシステムToriJune. 30, 2021
View Slide
twitter.com/toriclsTori Hara /Sr. Product Developer AdvocateElastic Containers, AWS❤ AWS Fargate, AWS App Runer, AWS LambdatoriclsNew!
twitter.com/toriclshttps://speakerdeck.com/toricls/for-whom-that-platform-runshttps://speakerdeck.com/toricls/the-debtMar. 12, 2021Sep. 9, 2020
twitter.com/toriclsシステムの継続的改善
twitter.com/toriclsなぜシステムを改善していくのか実装当時に最適解と考えられたものが時間の経過とともに最適とは評価され得なくなるからhttps://speakerdeck.com/toricls/the-debt
twitter.com/toricls『時間の経過』がもたらすもの▶︎ビジネスを取り巻く状況の変化▶︎⾃⾝の持つ知識や理解、洞察⼒の深化▶︎システムに関わる組織・チームの規模や役割の変化▶︎テクノロジの進歩や進化、新たな技術的選択肢の登場https://speakerdeck.com/toricls/the-debt
twitter.com/toricls『時間の経過』がもたらすもの▶︎ビジネスを取り巻く状況の変化▶︎⾃⾝の持つ知識や理解、洞察⼒の深化▶︎システムに関わる組織・チームの規模や役割の変化▶︎テクノロジの進歩や進化、新たな技術的選択肢の登場→『最適』が変化していくから、継続的改善が必要https://speakerdeck.com/toricls/the-debt
twitter.com/toriclsシステムの継続的改善可能性と容易性
twitter.com/toriclsシステムの継続的改善可能性と容易性▶︎ビジネスが⾦を稼いでいる、あるいは稼ぎそうである▶︎適切な戦略に基づく優先順位▶︎疎結合なビルディング・ブロックの組み合わせ≒ システム構成要素の⼊れ替え・追加可能性と容易性↔︎フルスクラッチ💸▶︎ etc., etc.
twitter.com/toricls『⼈間による』システムの継続的改善可能性▶︎継続的改善の必要性を理解するリーダー層▶︎ステークホルダのシステムへのオーナーシップ▶︎適切な粒度のゴール設定と効果測定、やり切る⼼▶︎そのシステムのアーキテクチャ(とビジネスドメイン)への知⾒▶︎AWS を使っているなら AWS 各サービスへの知⾒も▶︎ etc., etc.
twitter.com/toricls“今⽇から新しい会社で働くことになりました!”✨✨✨
twitter.com/toricls今⽇から新しい会社で働くあなた🙋ユーザー🕵リクエストレスポンス謎の⼒
twitter.com/toricls🕵今⽇から新しい会社で働くあなた🙋ユーザーリクエストレスポンス謎の⼒Needs to be a “Detective”🕵▶︎⻑⽼への(度重なる)ヒアリング▶︎コードの読み込み▶︎(もしあれば)過去イシューやプルリクからの解きほぐし▶︎(もしあれば)過去の障害情報や対応履歴からの解きほぐし▶︎ etc., etc.
twitter.com/toricls継続的な改善を殺すもの
twitter.com/toricls継続的な改善を殺すもの (の⼀例)▶︎主体的思考の⽋如と緩慢なオーナーシップ▶︎「そうなっている理由」を説明できない▶︎e.g. 事情もサイズも能⼒も違うキラキラ他社事例を鵜呑みにしたコピー▶︎肥⼤化した組織やチームによる緩慢かつ遅い(あるいは存在しない)意思決定▶︎チーム開発意識の⽋如▶︎永遠に⾃分が開発・運⽤することが前提になってはいませんか▶︎個⼈で開発しているつもりになってはいませんか▶︎組織内で知⾒の共有ではなく、安易に “Wrap” していませんか▶︎⻑⽼だけが知るシステム全体概要と退職・異動済みの⻑⽼たち▶︎ etc., etc.
twitter.com/toricls継続的な改善を⽌めないために
twitter.com/toricls継続的な改善を⽌めないために at AWS▶︎組織のスピードとスケーラビリティ▶︎チームを⼩さく保つ / 2-pizza team▶︎チーム内あるいは他チームとの依存関係を減らし、各チームが主体的かつ迅速に意思決定と改善を⾏うことを可能にする(≒マイクロサービス)▶︎デザインドキュメント▶︎ etc., etc.
twitter.com/toriclsデザインドキュメント - Amazon ECS アーキテクチャ全体概要
twitter.com/toriclsデザインドキュメント - Amazon ECS Exec
twitter.com/toriclsなぜデザインドキュメントを書き、更新していくのか at AWS▶︎改善の適切なアプローチを最短パスで発⾒するため▶︎既存システムや仕組みがなぜそうなっているのか?を理解せずに適切なアプローチでの改善は難しい▶︎⻑⽼への不必要な依存度を減らし、⾃律的に改善タスクを進めたい▶︎コードから分からないことの情報としての重要性▶︎(そもそも)初期デザイン時に適切なレビューを実施するため▶︎コラム: AWS における Principal Engineer の役割▶︎e.g. 2019 年 CloudWatch での⽉あたりの観測メトリクス 1,000 兆、イベントのトリガー 3.9 兆、受け取りログ 100 ペタバイト
twitter.com/toriclsデザインドキュメントに何を書くか
twitter.com/toriclsデザインドキュメントの項⽬例▶︎プロダクト開発・機能開発・改善の背景▶︎課題は何か = 何を解決するのか▶︎システムの技術的全体概要やアーキテクチャー図▶︎スコープ▶︎⽤語集▶︎選定した解決⼿段について▶︎選定の根拠、トレードオフ▶︎詳細なアーキテクチャー図など▶︎PoC の内容と結果▶︎選定しなかった解決⼿段 x N について▶︎⼿段の概要と不採⽤の根拠▶︎外部依存の概要▶︎機能そのもの、解決⼿段についてセキュリティ観点からの考察▶︎現時点で考えられるリスク x N▶︎リスクの概要▶︎考えられるリスクへの対応策▶︎現時点で対応策をとらない理由▶︎テスト観点からの考察▶︎運⽤観点からの考察▶︎ References▶︎ etc., etc.
twitter.com/toriclsこのセッションでは、システムの継続的改善を殺すものとして主に「ドキュメンテーションの⽋如」に⾔及しました
twitter.com/toricls『継続的に改善できる』システムにしていくためにいま着⼿すべきことは何か?あらためて、考えてはみませんか?\ thank you🙌/