Blog

目標ベロシティとベロシティのインフレ

 2010/07/03
このエントリーをはてなブックマークに追加

みなさんこんにちは。@ryuzeeです。

現実から得られるベロシティの実績値をもとに、次のスプリントでそれよりも大きい目標ベロシティを設定することはおすすめではありません。 それは以下の理由からです。

  • そもそもチームの実績としての指標データであるベロシティが目標値として設定されることによって、チームがその目標に到達しなかった場合にチームに何か問題が発生しているようにとらえてしまう
  • もちろん継続的な改善によってチームのベロシティは一般的には初期のスプリントから中盤にかけては向上する傾向にはあるけれど、それはあくまで結果としての指標データである
  • 目標ベロシティを決めて、かつ、それをコミットしてしまった場合、往々にして、数字を満たすために、テストの手抜きをしたりリファクタリングするのをやめて目先の数字を追ってしまうことが多い
  • いくつかのスプリントをこなせば、チームとしての生産力は見えてくるので、数字をコミットさせるのではなく、チームの人数やリリース計画についての再検討を行っていくべきである
  • 僕のおすすめは、スプリントにおけるベースとなるベロシティの値は、前のスプリントの結果と同じにするか、前の数スプリントの平均的な値を取ることだ。もちろんチームの成長曲線もあるので、スプリントの期間を残してすべてのストーリーが完了することもあるだろう。しかしそれはそれで十分であり、チームの精神衛生的にも非常に良い。人間は通常追われるとプレッシャーを抱え、作業効率や品質が低下しやすい(まったく期日が設定されないのも作業効率があがらないが・・・)。そして、あまった時間で次のスプリントで実施予定のストーリーのうち、残り期間で終わりそうなものに再度着手する(=おかわり)のが良い

また往々にして、ベロシティはインフレを起こしやすいです。これはどのチームでも起こる可能性があります。

  • インフレを起こす原因として、上記に書いたような、目標ベロシティが設定されているため、それを成し遂げようとすること
  • チームは成功している、と周りに思わせたい欲求があるので、達成したベロシティが水増しされやすい

ウォーターフォールがなぜ駄目なのか、というと、一番最初にたてた適当な計画が絶対的に正しいものとして扱われてしまうことです。 たとえそれがとてつもなく無理な計画であっても、目標値として設定されます。 目標として設定されてしまえば、後は数字を満たすためにはなんでもありの世界に突入してしまいます。 ウォーターフォールでの失敗をアジャイルな開発に持ち込んではいけません。

透明性を保ち、常に評価、調整を繰り返すためには、ベロシティを目標にしてはいけないのです。 目標にするのは顧客の価値を創出することである。

 2010/07/03
このエントリーをはてなブックマークに追加