Modern Agile 入門 #modernagile
完全に出遅れ感ありますが、モダンアジャイルが気になってきたのでちょこっと自分の中で理解のために整理をしてみました。モダンアジャイル自体にプラクティス厨やめろというメッセージが含まれているかとは思いますが、とは言え、本家 Modern Agile - Industrial Logic でもある程度はプラクティス風な記載はされているので同様にやるべきこと、やるとよいことをプロットして思考を整理しました。箇条書きで見にくいかとは思いますが、あくまで自分用なので。今後追記編集していくかもです。テキトーに自分用メモとして書いただけなので間違ってたら指摘ください。また、入門というタイトルは自分が入門しただけなので、入門者のために書いてるわけではないのであしからずw 各プラクティスや方法論は理解してる前提で箇条書きしてます。
Modern Agileの位置づけの理解
ここにプロットされている諸々の方法論については、アジャイルもDevOpsもリーンスタートアップも特定のスコープのスループットを最適化する話であり、以下の記述からもわかるようにModern Agileのスコープが従来の方法論のスコープを包含しにいった印象。ただ、ビジネス側への染み出しからいうと、人々を最高に輝かせる(Make People Awesome)というメッセージをどこまで視座高く理解しスコープを広げるかで、上記図中でのカバー領域はもっと左へ染み出していくかとは思います。
- 人々を最高に輝かせる / Make People Awesome
- 安全を必須条件にする / Make Safety a Prerequisite
- 継続的に価値を届ける / Deliver Value Continuously
- 高速に実験・学習する / Experiment & Learn Rapidly
となると、今までやってきたことの悪魔合体をしたくなる。というわけで、脳内整理メモ。基本的には過去に書いたポエム DevOpsはエンタープライズからスタートアップへの横恋慕 #devops #プロダクトマネージャー #leanstartup - @i2key のBlog の広義なDevOpsに近似しているけど。
人々を最高に輝かせる / Make People Awesome
プロセス
システム
人(スキル/スタンス)
- 人々を幸せにするものを作る
- カスタマーの理解
- クライアントの理解
- ビジネスの理解
- ビジネスモデル
- ビジネスフェーズ
- ビジネス戦略/戦術
- 開発者を幸せにする(Developer Experience)
- 適切な技術的チャレンジ
- 最新の技術ではなく、最適な技術の選択
- HRT文化
- コードを憎んで人を憎まず
- 適切な技術的チャレンジ
- 顧客開発の理解
安全を必須条件にする / Make Safety a Prerequisite
プロセス
- 早期失敗のハンドリングするプロセス
- コードレビュー
- 小さなプルリク
- 関連(CD & Feature Flag)
- 小さなプルリク
- ペアプログラミング
- コードレビュー
- 品質マネージメントプロセス
- 確立したテスト戦略・計画
- バグトリアージ
- バグマネージメント
- インシデントマネジメント
- 障害時運用フロー
- セキュリティ運用フロー
- 失敗を非難しない振り返り
システム
- 安全に失敗できる環境の構築
- SplitTest(ABtesting)
- CanaryTest
- FeatureToggle
- 事前に不具合を検出する仕組み
- 自動テスト&CI
- 自動テストの品質管理
- Mutation Testing
- Chaos Monkey
- 馬鹿でかい本番リリースの恐怖からの脱却
- Feature Flag
- Dark Launch
- 不安を取り除く
- リファクタリング
- TDD
人(スキル/スタンス)
- 一人前のエンジニアリングスキル
- 若手エンジニアの育成
- コード品質担保
- 機能要件、非機能要件の実現
- 開発プロセスの理解
- 若手エンジニアの育成
継続的に価値を届ける / Deliver Value Continuously
プロセス
- 組織構造
- スモールチーム
- クロスファンクショナルチーム
- マイクロサービス
- 継続的にデリバリー出来るためのプロセス
- リードタイムの削減
- VSMによるムダの可視化
- プロセスタイム、ValueAddTimeの可視化、定義
システム
- アーキテクチャ分離
- DevOpsプラクティス
- Infrastructure as code
- 自動テストの徹底
- 静的解析の徹底
- 複雑度、凝集度、コード解析
- CI/CD環境の構築
- 継続的インテグレーション
- 継続的デプロイ
- ビジネスチームへリリースボタンの提供
- いつでもリリース可能
- モニタリング
- Feature Probe
人(スキル/スタンス)
- TPS/LEAN/TOCの理解
- フロー効率性の理解
- DevOpsの理解
高速に実験・学習する / Experiment & Learn Rapidly
プロセス
- 仮説検証型プロセスの装着
- バックログ
- 仮説
- 仮説を実証するために必要な条件
- そのために必要なデータ
- データの収拾方法
- そのためのMVP
- そのためのコストと時間
- バックログ
システム
- (「安全を必須条件にする」がシステム面を担保)
- 実験結果を計測する環境の構築
- 実験が正しく行われるための調整
- ファネル分析
- 機能追加単位での検証結果モニタリング(マーケ施策の影響受けない)
- コホート分析
- 実験が正しく行われるための調整
- ダッシュボード
- 継続率|ChurnRate
- 機能単位利用率
- CVR
- CAC|LTV
- Leadtime to Learn
- Leadtime to Launch
- Leadtime to fix bug
- etc
人(スキル/スタンス)
- LEANSTARTUPの理解
- プロダクトマネージメントの理解
- PDCAを回すスキル
- MVP設計スキル(仮説を検証するための必要最低限の実装)