スクラムと負債とClean dayと

タイトルの元ネタ

Tl;Dr;

  • ストーリーベースでスクラムをやっていると技術的負債の返済や他チームからの問い合わせ対応などが後回しになりがち
  • 優先度は低いがやったほうが良いタスクを入れる箱を用意し、デイリースクラムで優先度を確認する
  • それらを消化する日を定めてリズムを設け、リスクが放置される可能性を減らした

チームとスクラムについて

今のチームの構成とスクラムの進め方は以下のようになっている。

メンバー

  • Product Manager: 2人
  • Engineer: 5人
  • QA: 1人

スプリントの長さ

  • 2 week

行っているセレモニー

  • デイリースクラム (毎日)
  • バックログリファインメント (スプリントの第一金曜日)
  • スプリントプランニング (スプリントの第二金曜日)
  • レトロスペクティブ (スプリントの第二金曜日)

チームの主な業務

このチームでは主にCustomer Support(CS) member が使用する社内サービスの開発・メンテナンスを行っているため下記のような業務がある。

  1. 社内サービスの開発・リプレース
  2. CS memberからのサービスについての問い合わせ・バグフィックス対応
  3. 他チームからのDB -> micro serviceへの移行に伴うデータ取得先のマイグレーション対応

チームとしては1が主な目的なのでこれを積極的に推進したいが、2.3.のタスクも定常的に発生し、放っておくと他チームの業務を阻害してしまうものなので対応しなくてはならない。ただしこれらに時間を取られすぎるのもよろしくないというジレンマが発生する。

Chore Box (雑務ボックス) の用意と優先度確認のリズム

こういったタスクを放置するとのちのち大きな事故に繋がったりするリスクを恐れて、バックログとは別にChore Boxという箱を用意した。Chore という名前は弊社に来ている外部のアジャイルコーチから教えてもらった言葉で、顧客の価値に直結しないタスクやストーリーのことを指すとのこと*1 *2

上記の2. 3. のようなタスクが発生したらこのChore Boxにいれ、翌日のデイリースクラムスクラムメンバーにシェアする。そこで緊急性や優先度をディスカッションし、急ぎのようなら今のスプリントに差し込む。そうでなければChore Boxの中に置いといて後述のClean dayで解消するということにした。

Clean day

Chore Boxに溜まったタスクを解消する日をスプリントの最初の金曜日とし Clean dayと呼ぶことにした。その日のデイリースクラム後にChore Boxの中身を振り返り、Product Ownerも交えて優先度を確認・各エンジニアにその日実施するタスクをアサインする。

金曜日とした理由はいくつかあり、まず弊社は金曜リリースが原則禁止なのでメインタスクのリリース間近などで左右されないこと、チームのミーティングが金曜に集中しているためスキマ時間を活用したい、などがある。

金曜がリリース禁止なのでClean dayで行った改修や施策もリリースできないが、それは翌週のどこかでリリースするということにした。とうぜんClean dayの1日だけでは終わらないタスクに当たることもあるが、それをClean day以外で引き続きやるかどうかは各メンバーに任せることにしている。これは一律禁止にせず、各々が考えたタスク間の優先度を尊重したい、という思いからである。

実施したみた感想

3回ほどClean dayを実施してみて良かった感じたことは以下のとおり

  • 問い合わせなどを気づいた人ベースで消化していたものが、一旦チームで優先度を話し合い方針を定めるタイミングができた
  • いつまでもスプリントに入ってるけど消化されず引き継がれ続けるタスクをChore BoxにいれClean dayでやってしまう、などの活用が生まれた
  • Clean dayを定めたことでメインのタスクの進行を阻害せず計画的に進められるリズムができた

割り込み作業などで時間を取られ本来の優先度を見失うことやリスクが放置されることを防止したい、という本来の狙いからするとこの結果は概ねうまくいったと思っている。

Chore Box 第二のバックログ化問題

今抱えている課題としては、便利だからとあらゆるものを放り込んでいった結果Chore Boxが雑然としたタスクだらけになり管理が困難になるというところがある。今はまだそこまで健在化していないのでルールなどは定めていないが、厳しくなってきたら以下のようなことも考えていきたい。

  • Chore Boxに入れる上限は10までとし、入らない場合は既にあるものをバックログに移すかクローズする*3
  • タスクが発生して1ヶ月経過しバックログに移すかクローズする

なお本来であればプロダクトバックログをもっときちんと棚卸しするべきだが歴史が長いので確認の手が回っていない状況はある。一旦は回り始めたChore Boxの秩序を保っていきたい。

まとめ

弊チームの特徴と、それにまつわる現場の課題・解決策をまとめてみた。あまり綺麗なスクラムとは言えないと思うし改善するべき点もまだまだありそうだけどやっていき。

*1:Pivotal Trackerではサポートされているらしい

*2:別に他チームの仕事を雑務と呼んでいるわけでない。念の為。

*3:ボドゲーマーとしてこの辺は手札上限のルールを考えるようでちょっと楽しい