masayuki5160's diary

滋賀県大津市に住むソフトウェアエンジニアの雑多ブログ

ベロシティとは

本記事ではスクラムにおけるベロシティについてお話をします。書籍の情報も参考にしつつ僕自身の経験も踏まえてお話ししていきます。

なお本記事は以下書籍を参照し僕自身の経験も踏まえお話ししていきます。ぜひ書籍も合わせて読むことをオススメします。見積もりに関する本ですがベロシティに関する記載があります。

 

 

ベロシティとは

スクラムにおけるベロシティとは1スプリントにチームが消化したポイントの合計のことをさします。ポイントはタスクごとにつけられているためどれくらいの量の作業を1スプリントにそのチームができたかを示す数値になりますね。

 

ポイントについては本記事では詳細に記載しませんが、下記記事でお話ししていますので興味のある方はぜひ。

 

https://masaytan.com/entry/archives/702

 

ベロシティはどう使うのか

例えばこんなケースに利用します。

 

  • 次のスプリントでどれくらいの作業を対応できそうか検討する際の参考値として利用する
  • ある程度まとまった規模の案件の開発完了見込み時期を割り出すために利用する
  • チームの成長度合いを把握するため

 

それではそれぞれお話ししていきます。

 

次のスプリントでどれくらいの作業を対応できそうか検討する際の参考値として利用する

新しいスプリントを始める際にスプリントプランニングで実際に実施するストーリーを見ながら計画を立てます。

その際にこのスプリントで本当に予定しているストーリー、作業が完了するか、コミットラインを確認することになるでしょう。その際に参考になるのがベロシティです。

 

予定しているスプリントの合計ポイントはどれくらいかを確認し、それは前スプリントのベロシティと比べて達成可能なポイントかを比較します。

前スプリントだけではなく可能であれば直近3スプリント程度の平均ベロシティも比較するといいでしょう。なぜならベロシティはある程度スプリントを続けたチームなら安定してくるものですが稼働日が少ないスプリントや休んでいたメンバーがいたスプリントなどはどうしてもその影響を受けベロシティに波ができているからです。そのためある程度幅をとってならした値と比較するといいでしょう。

 

ということでまず1つ目のベロシティの利用方法は計画作りの際の参考値として利用する方法ですね。おそらくこれが最も身近でしょう。

ある程度まとまった規模の案件の開発完了見込み時期を割り出すために利用する

開発をしているとある程度まとまった案件を対応することがあるでしょう。その場合どうしても開発完了時期の見込みを出して欲しい、という話は出てきますよね。そういった場合にもベロシティは利用できます。

 

案件全体のリファインメントがほぼ完了していることが前提ですが、

 

  • 案件全体のストーリーの合計ポイント:500ポイント
  • チームのベロシティ:20ポイント

 

とすると 500/20 = 25スプリント という計算ができます。

1スプリントを1週間としているチームであれば25週で完了する見込みであるとお話をすることができます。

 

もちろんベロシティを使った方法で計算してみても見込み、予定ではありますが実際に直近のスプリントで完了した作業量(ベロシティ)をベースに算出していることから作業工数で算出する開発スケジュールよりは個人的には好みです。

誰か一人がざっと出した開発スケジュールよりも数値根拠がありますよね。

 

チームの成長度合いを把握するため

ベロシティはそのチームが1スプリントに実施できた作業量の値です。そのためベロシティが安定してきたり、上昇傾向にあるケースはチームが成長しているという数値根拠にもなりえます。

 

僕がスクラムを始めたとき一番感心したのがこのチームの状況を可視化できていることでした。

会社に所属していると事業の状況や様々な事情で別のプロジェクト、チームに移ることはありますよね。その際に新しい関係性の中でチームで開発をすると思いますがそのチームの状態を表す数値というのはなかなかありません。一方でベロシティを継続してとっていけばチームの状況が可視化されますし単純に業務がうまくいっていない状況もわかります。これは非常にいいことだと僕はスクラムをはじめて思いました。

スキルアップしよう、チームで成長しよう、などそういった話はよくあることと思いますがその際に参考にする数値としてはありでしょう。

ベロシティのよくない使い方

この章では逆によくない使い方をあげてみましょう。

 

  • 直近のスプリントのベロシティだけを見ている
  • 他のチームとベロシティを競争する
  • 無理にベロシティをあげようとする

 

直近のスプリントのベロシティだけを見ている

ベロシティは1スプリントのチームの作業量の数値です。もちろんこの数値を見ることは大切ですが直近1スプリントだけではなく例えば直近3スプリントの平均ベロシティを見るのがいいかなと思います。それは以下のような理由です。

 

  • 直近のスプリントだけだと稼働日が少ないスプリントなどはベロシティが少ないこともある
  • チームのメンバーが休みのスプリントはベロシティが少ないこともある
  • 見積もったポイントが甘いケースがありその影響でベロシティがブレていることもある

 

直近のスプリントはどうしてもこういった影響を受けやすいです。そのためある程度の期間のベロシティの平均を取ることで平均を見る方がいいでしょう。直近のスプリントだけをみてプランニングをすると予定通りにスプリントとなってしまうでしょう。

他のチームとベロシティを競争する

これはよく陥りがちなことだと思いますが、ベロシティは他のチームと比較するような指標ではありません。あくまでそのチーム、メンバーでできる作業量ということですので単純に比較するものではありません。また、競争するものでもありません。

ベロシティという数値を変に競うことでゲームのようになったり、チーム同士の関係性が悪くなったりということはありえるでしょう。

 

顧客に価値を届けるための方法としてスクラムという方法をとっているのだと思います。他のチームと比較するよりは一緒に価値を届け続けるための方法を模索するようなアプローチを考える方が大事かなと思います。ベロシティはあくまで参考のための数値ですので。

無理にベロシティをあげようとする

ベロシティはチームが1スプリントに実施する作業量を表す数値としては非常に参考になる数値です。ただ継続して計測しているとなんだか数値を上げたくなってきます(笑) ゲーミフィケーションのようなものでしょうか。

そうするとまさにゲームのように躍起になってベロシティをあげようとするケースがあります。

もちろん正しい努力によってベロシティを上げていくのであれば問題はありません。改善などを繰り返した結果、ベロシティを上げた、ということですね。

そうではなく例えばリファインメントの際にいつもよりポイントを多めにつけるようにするなど無理にベロシティをあげるようなことをしてしまう、ということです。これは極端な例ではありますがベロシティをあげることに夢中になってしまうとこのようなことをしてしまいがちです。こういったことにならないよう注意しましょう。

ベロシティはただの参考にするべき数値です、うまく付き合うようにしましょう。

まとめ

ベロシティについてお話ししてきました。

ベロシティについては実際にスクラムをはじめて継続して計測すると色々気づくことが多いと思います。下記アジャイルな見積もりと計画づくりでも詳しいですがまずは継続して計測することからはじめ、書籍を読んでより深く考えてみるのがいいでしょう。

 

 

それでは以上です。スクラムについてはより詳細に下記記事でまとめていますので参考になれば幸いです。

 

https://masaytan.com/entry/archives/663