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

2,500万ユーザーを支えるSREチームの6年間のスクラムのカイゼン

 2,500万ユーザーを支えるSREチームの6年間のスクラムのカイゼン

HonMarkHunt

January 25, 2025
Tweet

More Decks by HonMarkHunt

Other Decks in Programming

Transcript

  1. ©MIXI Agneda ❏ スクラム失敗の歴史 ❏ SRE x スクラム の難しさ ❏

    みてねでの対応 ❏ 現在のスクラム ❏ まとめ
  2. ©MIXI 前提   スクラム ❏ みてねSREは6年前のチーム発足時から スクラムを採用 ❏ プロダクトチームで採用されていたの でそのまま流用される形で導入

    ❏ 2年ほど前から組織全体でアジャイル/ スクラムの導入促進 ❏ みてねのエンジニアリング組織のこれ までとこれから ❏ 組織のVisionに“Be Agile”   組織 ❏ 6人 ❏ Embedded SREではなく 独立チームで支援するSRE ❏ Platform Engineeringも兼ねている SRE A B C プロダクトチーム 支援
  3. ©MIXI   昔のスクラムの流れ Spring Review Spring Planning Sprint : 1week

    1day SRE Team Daily Scrum Product Backlog Backlog Refinement ❏ SREとしてやるべきことをProduct Backlogに まとめる ❏ 優先度順に並んでいる ❏ 上から順番に着手 ❏ Backlog Refinement ❏ Backlog Itemの作成 ❏ Story Pointの付与 ❏ 優先度の並び替え ❏ Pivotal Trackerを使用 Retrospective
  4. ©MIXI   昔のスクラムの流れ Product Backlog Backlog Refinement Spring Review Retro

    Spective Sprint Planning Sprint : 1week 1day SRE Team Daily Scrum ❏ Sprint Planning ❏ 開始時に今Sprintでどこまでやるかを設定す る ❏ 概ね個人ごとにBacklog Itemがアサインされ ているので実質終わるまでやるのであまり 意味はなしてなかった ❏ Sprint Backlogまでは 作成していなかった ❏ Sprint Goalも未設定
  5. ©MIXI   昔のスクラムの流れ Product Backlog Backlog Refinemnet Sprint Review Spring

    Planning Sprint : 1week 1day SRE Team Daily Scrum ❏ Sprintは1week ❏ 2wになったりもしたが 今は1wで落ち着いている ❏ 期間中は個人にアサインされて るタスクを各自消化していく ❏ Daily Scrum ❏ やる/やったなどの共有 ❏ 思わず長くなることも Retrospective
  6. ©MIXI   昔のスクラムの流れ Product Backlog Backlog Refinement Sprint Review Spring

    Planning Sprint : 1week 1day SRE Team Daily Scrum ❏ Sprint Review ❏ ステークホルダーにSprintの成果を共有 ❏ Product Ownerは1名 ❏ 部長数名 ❏ Velocityの変化も共有 ❏ チーム内でやったことの共有も 別の時間で行う ❏ PRを見たり ❏ 仕様の質問したり Retrospective
  7. ©MIXI   昔のスクラムの流れ Product Backlog Backlog Refinement Spring Review Sprint

    Planning Sprint : 1week 1day SRE Team Daily Scrum ❏ Retro Spective ❏ Sprintの終わりに実施 ❏ KPT ❏ Pivotal Tracker Retrospective
  8. ©MIXI   差し込みが多い Product Backlog Backlog Refinement Sprint Review Sprint

    Planning Sprint : 1week 1day SRE Team Daily Scrum Alert対応 問い合わせ対応 他チームとの連携 Sprint開始時に 立てた計画 何も全うできない Retrospective
  9. ©MIXI   Backlogがわんぱくになる Product Backlog Backlog Refinement Sprint Review Sprint

    Planning Sprint : 1week 1day SRE Team Daily Scrum アラートや 問い合わせも管理 課題とタスクが両立 SREのタスク ユーザーストーリー にしにくい! Retrospective
  10. ©MIXI   補足: わんぱくBacklogによる属人化 8P 1P 13P 1P 1P Product

    Backlog 1. せっかくなのでやるべきことは全部Backlogにまとめる 2. 元々持っていた大きな課題を追加する 3. アラートの恒久対応やポストモーテム後の対応なども追加する 4. 結果Backlogに細かいタスクと大きな課題が共存する
  11. ©MIXI   補足: わんぱくBacklogによる属人化 8P 1P 13P 1P 1P Product

    Backlog 5. Backlogの上から順に着手していく 6. 細かい課題は即消化されていくので最終的にみんなでかいタスクを   取ったところで止まる
  12. ©MIXI   中長期目標が描きづらい Product Backlog Backlog Refinement Sprint Review Sprint

    Planning Sprint : 1week 1day SRE Team Daily Scrum 気づいたら アップデート ばっかりしてた 中長期的に 物事を成し遂げるのが 難しい Retrospective
  13. ©MIXI   細かいこと言うともっとあるが.... Product Backlog Backlog Refinement Sprint Review Sprint

    Planning Sprint : 1week 1day SRE Team Daily Scrum Sprint Goalって なんだっけ! SREの ステークホルダー is 誰? Retrospective
  14. ©MIXI 差し込みが多い 差し込み(計画外)は全ての職種で発生している ❏ デザイン「POに見せたら毎回想定と違う手直しが...」 ❏ フロントエンド 「デザインやバックエンドの変更に左右される...」 ❏ バックエンド

    「ユーザー問い合わせの調査が...」 一般論だとSprint期間中に発生した計画外の出来事は減らす or コントロールする。 SREの「差し込み」はPlatformerとしてのホスピタリティ担保のため減らすのが 難しかったり、アラートなど外部起因でコントロールが難しいものが多いのでSREには 一般論が当てはまらない難しさがある。
  15. ©MIXI ❏ 差し込み業務はあるものと割り切る ❏ サポートや相談を減らそうとすることで聞きづらい雰囲気になるならいっそ割り切る ❏ toilの文脈とは別 ❏ Velocityを計測しない ❏

    他職種に比べマーケットプレッシャーが少ない ❏ Sprint Goalを設定しない ❏ とはいえ目標は必要なので月単位で目標を設定し、Sprint単位で達成率の確認 差し込みが多い 対策
  16. ©MIXI Backlogがわんぱくになる なぜわんぱくBacklogが生まれるのか? ❏ PO/PdMの不在 ❏ SREチームには本来Backlogを見てくれるはずのPO/PdMがいないケースが多いため自ら管理する必要が有る ❏ チームが成熟してBacklogを委譲されるのではなく、最初から自分たちだと難しい ❏

    アップデート系のタスクなど定常業務がユーザーストーリーベースのBacklogアイテムと相性が悪い ❏ Backlogを整理しようとしてユーザーストーリーベースの書き方をしようとしても アップグレードやEOL対応などの取り扱いが難しい ❏ 課題ベースでBacklogアイテムを作りたいが「xx.xへアップグレード」以外書く事がない
  17. ©MIXI Backlogがわんぱくになる 対策 ❏ Backlogで管理するものとその他を切り分ける ❏ 「Backlogが複数できる問題」はあるが、所謂差し込みはTODOとしてBacklogとは別で管理 ❏ 一番恐ろしいのは「属人化」 ❏

    数週間以上かかる/属人性の高くなる恐れのあるタスクのみBacklogで管理する ❏ Backlogに追加するかどうかはRefinement以外でも常に会話 ❏ ベースの会話の回数を増やすことも重要
  18. ©MIXI   現在のスクラム Product Backlog Backlog Refinement Sprint Review 月目標

    設定 Sprint : 1week 1day SRE Team1 SRE Team2 Daily Scrum Retrospective
  19. ©MIXI   現在のスクラム Product Backlog Backlog Refinement Spring Review Retro

    Spective 月目標 設定 Sprint : 1week 1day SRE Team1 SRE Team2 Daily Scrum ❏ Backlog Refinement ❏ 事前に必要なフォーマットを記入しておく ❏ アップデートなどのタスクもBacklogアイテム として扱う ❏ 時間が短く再実行などの懸念がないものは 個人タスクとして取り扱う ❏ 全員でStory Point, 事業インパクトの 見積もりを実施 ❏ 優先度の並び替えを実施 ❏ Pivotal Tracker → Spread Sheat
  20. ©MIXI   現在のスクラム Product Backlog Backlog Refinement Spring Review Retro

    Spective 月目標 設定 Sprint : 1week 1day SRE Team1 SRE Team2 Daily Scrum ❏
  21. ©MIXI   現在のスクラム Product Backlog Backlog Refinement Spring Review Retro

    Spective 月目標 設定 Sprint : 1week 1day SRE Team1 SRE Team2 Daily Scrum ❏ Sprint Planningは廃止 ❏ 月単位で着手する Backlogに目標設定 ❏ Backlog着手時に Planning(タスク分解)を実施 ❏ Notion ❏ Backlogは大きいまま取り 扱う ❏ 属人化を防ぐためチームを 2つに分解 ❏ 1チームが1つのBacklogに 着手している状態 ❏ リソース効率とフロー効率 ❏ チームは毎月ランダムに1 名を交換
  22. ©MIXI   現在のスクラム Product Backlog Backlog Refinement Sprint Review 月目標

    設定 Sprint : 1week 1day SRE Team1 SRE Team2 Daily Scrum ❏ Sprint Review ❏ 達成した価値のみを共有 ❏ Velocityの計測はやめたので共有も廃止 ❏ チーム内のReview ❏ 2チーム制にしたため細かいコードの 共有は廃止 ❏ 同じチームのメンバーは細かいこ とまで理解できているので属人化 を回避できるようになった ❏ 価値とは別で共有したいことは 別のタイムボックスを用意して共有 Retrospective
  23. ©MIXI   現在のスクラム Product Backlog Backlog Refinement Spring Review 月目標

    設定 Sprint : 1week 1day SRE Team1 SRE Team2 Daily Scrum ❏ Retrospective ❏ 変わらずにSprint 毎に実施 ❏ KPT → Good/Bad/Fact/Emotion ❏ Pivotal Tracker → Miro ❏ Sprintとは別のタイムボックスの振り返りを実施 ❏ 数ヶ月に一回スクラムそのものの 振り返りを実施 ❏ 普段の振り返りとは別でスクラムそのものの カイゼンのアイディア出し Retrospective
  24. ©MIXI   現在のスクラム Product Backlog Backlog Refinement Spring Review 月目標

    設定 Sprint : 1week 1day SRE Team1 SRE Team2 Daily Scrum ❏ Retrospective ❏ 変わらずにSprint 毎に実施 ❏ KPT → Good/Bad/Fact/Emotion ❏ Pivotal Tracker → Miro ❏ Sprintとは別のタイムボックスの振り返りを実施 ❏ 数ヶ月に一回スクラムそのものの 振り返りを実施 ❏ 普段の振り返りとは別でスクラムそのものの カイゼンのアイディア出し Retrospective
  25. ©MIXI   現在のスクラム Product Backlog Backlog Refinement Spring Review 月目標

    設定 Sprint : 1week 1day SRE Team1 SRE Team2 Daily Scrum ❏ Retro Spective ❏ 変わらずにSprint 毎に実施 ❏ KPT → Good/Bad/Fact/Emotion ❏ Pivotal Tracker → Miro ❏ Sprintとは別のタイムボックスの振り返りを実施 ❏ 数ヶ月に一回スクラムそのものの 振り返りを実施 ❏ 普段の振り返りとは別でスクラムそのものの カイゼンのアイディア出し Retrospective