しるろぐ

いろいろ書きます。

最近の開発フローの改善と、「スプリントおじさん」という取り組み

ここ最近、自分が見ているプロジェクトの1つで、うまくスケジュール通りに作業が進んでいなかったので、その対策をした。 その中でも特に効果があった2つを紹介する。

背景

簡単にプロジェクトの背景を説明する。

  1. スクラムっぽい開発をしている
  2. スプリントの期間は2週間
  3. スクラムマスターはいるが専任ではない
  4. すでにリリース済みで運用中のWebサービスである

基本的によくあるスクラムっぽい感じで、2週間というタイムボックスの中にチームが作業可能なストーリーを突っ込んで、ひたすら消化する。 スプリントの最後には、レビューをして、次のスプリントの計画を立てる。

スクラムマスターは、一応自分が担当しているが、専任ではないし、他のプロジェクトも見ているので、注意深くチームを見れていない。

課題

以下のような課題があった。

  1. バグの修正や問い合わせ対応など、計画時に含まれていなかったタスクがスプリント中に増えてしまう
  2. エンジニアやデザイナがこだわって必要以上の時間をかけてしまう
  3. スプリントの終わりになってようやく、かなりのストーリーが残っていることに気づく
  4. 優先順に作業ができていない

1. スプリント中の追加タスク

毎回差し込みタスクはあるので、それを含めて見積もりはしているのだけれど、メンバー的には「追加があったんだからもともと入っていた予定が終わらなくても良いよね」という言い訳の余地を与えてしまっていた。

2. 必要以上のこだわり

2週間のタイムボックスは、人によっては全体像が見えにくいらしく、10個タスクがあるのに1つのタスクに5日かけてしまうようなことが発生していた。 また、作業によっては要件以上の作業(あとで必要になるから、せっかくやるならこれもやりたい)に取り組み、見積もり時の作業より大分ファットなことをやってしまう傾向があった。

3. ギリギリになって焦る

理想的なグラフと現在の進捗グラフは、常に見れるようになっているが、大きなストーリーはスプリントの終わりになるまで解決しないことが多く、終わり頃に一気にグラフがガクンと下がる、という不健全な状態に慣れてしまっていた。

大きなストーリーを消化して満足していると、実は細かいストーリーがいくつも残っていて、「あれ実はこれ終わらないんじゃね?」って現状に気づく。

4. 優先順に作業できない

ストーリーは優先順に並んでいて基本的に順番に作業するようにしているが、

  • 同時に作業しづらい
  • 特定の人しかできない(その人がやったほうが明らかに早い)
  • 作業順の読み合いによるデッドロック

などのもろもろの理由により、いくつものストーリーが並行して走っていた。

そのせいもあり、どのストーリーも中途半端で、スプリントの最後にガクンとグラフが下がる、または下がらないというギャンブルを強いられていた。

作業順などはサブタスクの切り方で工夫はできるものの、逆に非効率になる場合があって難しい。

対策

新機能大臣と改善大臣

課題1の差し込みタスクに関しては、

  • できるだけ、スプリント中に追加はしない
  • スプリントごとにバグや問い合わせを優先的に対応するメンバーを決める

という対策をした。

とくに後者は、「新機能大臣と改善大臣」という名前でチームに定着し、細かな改善を行う改善大臣がバグや問い合わせの対応を行うことで、新機能などの大きなストーリーの遅延を防ぐことができた。

スプリントおじさん

課題2,3,4に関しては、チームメンバーにしっかりスプリントのタスクを把握してもらうのが良いかなと思ったので、「スプリントおじさん」という取り組みを考えて運用している。

フレーバーテキスト

スプリントおじさんは近年発見された妖精で、理想的なグラフに沿って実績を積むのが生きがい。そのためには手段も問わないらしい。口癖は「進捗が危機に陥った場合、おじさんは(グラフ維持の)目的のために有効ならば、手段を選ぶべきではない

仕組み

1週間単位でメンバーの誰かが「スプリントおじさん」になって、以下のことをやる。 おじさんは、毎週末にその週の総評をして、次のおじさんを指名する。

やること

  • 停滞している課題があったら「進捗どうですか」
  • 並行して作業が動いていた場合、それぞれの進捗を見つつ、スムーズに工程が進むようにする
  • 詰まっていそうなメンバーがいたら助け舟を出す/助けられそうな人にお願いする
  • 作業をふくらませているメンバーがいたら注意する。合言葉はYAGNI
  • 仕様や要件を削って作業ボリュームを減らす
  • (不思議な力によって)タスクを消滅させる

効果

今のところかなり良い。 メンバーによって、いろいろな動き方があり、今後の運用の参考になる。

また、一度おじさんを経験したメンバーは、作業のすすめ方や作業内容(これって今必要?的な)に気を使うようになり、おじさんの負担が減っていくように思えた。

おじさんをタイムボックスのサイズと合わせていないのは意図的で、スプリントと1:1にしてしまうと、綺麗に終わったらその人のおかげ、終わらなかったらその人のせい、になってしまうのを懸念した感じ。

まとめ

会社やチームによって、全然やり方違うし、うちのやりかたも詳細に書いているわけではないのでアレだけど、こういった様々な問題に他社ではどう取り組んでいるのかとても興味ある。

追記