Pro🛴ベロシティの安定ってなんで大事なのか考えたえび2024/10/04に公開アジャイルスクラムベロシティideaはじめに先日、同僚がベロシティについて登壇するに当たって資料のレビューを依頼されました。その時に考えてみたことを雑にまとめます。一般的にまず、一般的にベロシティの安定は下記の理由で大事と言われています。1スプリントでどのくらいのアイテムを完成できるか予測を立てるため数スプリント後にどのくらいのアイテムを完成できていそうか予測を立てるため要するに、今後の見通しを立てるために使えという訳ですね。同時に評価など、過剰な使い方はやめるように言われていることも多い印象です。参考https://www.ryuzee.com/faq/0096/ベロシティはプランニングの際の道具としても使えるし、チームの状態を把握する指標としても使える。ベロシティはパフォーマンスの指標としては使えない。チームの生産性をベロシティで判断してはならない。ベロシティをそんなふうに誤用すると、ムダの多い危険な振る舞いをうながしてしまう。(書籍エッセンシャルスクラム7.10ベロシティの誤用より引用)なぜベロシティの安定が大事なのか個人的な考えそれでは、なぜベロシティを安定させることが大事なのか考えてみます。!前提として、この話は10スプリントくらいの中期的な視点で考えており、前のスプリントよりベロシティが「上がる」「下がる」ということではないことをご留意くださいベロシティを落としてはいけない理由まず一般的に言われている、ベロシティを安定させることで今後の見通しに使えるということは間違いないと思います。システムは開発が進むと規模が大きくなる規模が大きくなると認知負荷が高まる(負債が溜まるとも言える)認知負荷が高まると一般的には開発スピード(=ベロシティ)が落ちるといった傾向があります。!2番のところで雑に認知負荷が高まると言っていますが、実態はシステム品質特性の変化だったりします。本題と逸れるのでここでは便宜上、認知負荷と言っています。「継続的な内部品質改善をしてスピードを落とさないようにしろよ」ということかと思います。これはベロシティを落としてはいけない理由なので、安定させることの説明にはまだ不十分です。続いてベロシティを上げてはいけない理由を考えてみます。前述した考え方に従うと、以下のようになります。増加↗この場合、ベロシティが上がってる状態は内部品質改善ができているからいいんじゃないの?と思うかもしれません。機能開発をする余力があるのに改善を進めている状態だからです。機能開発の状態では当然ベロシティは上がりますが、システム開発の目的はベロシティを上げることでも早くリリースすることでもなく、多くの価値を顧客に届けることです。そのためには機能開発を最大効率で進める必要があり、その最大効率が一定期間に渡って維持されている状態がベロシティが安定している状態です。ベロシティは上げることも下げることもせず、安定させることが重要です。!そもそもベロシティやストーリーポイントはXPのプラクティスですが、XPをはじめとしたアジャイルでは効率性よりも価値提供に重きが置かれています。ベロシティを扱うときにも価値に着目して考える必要があるのではないかと私は思っています。いえ例外はあるベロシティは安定させることが大事と言いましたが例外もあります。それは個人のスキル向上によるベロシティの向上です。どんなチームでもそうですが、特にジュニアが多いチームではスキル向上はマストな課題となります。スキル向上に成功すると1人当たりの消化ストーリーポイントは増えるので自然とベロシティは上がります。ベロシティは安定させるべきと上述しましたが、チームによっては本当の理想状態はメンバーのスキル習熟度に合わせて微増していく状態かと思います。負債が溜まりに溜まってしまったシステムに対するリプレースなども内部品質改善の一つですが、例外的に扱って品質改善に重きを置くべきであるかと思います。終わりに今回はベロシティの安定が大事だと言われる理由について個人的な考えを提示してみました。Proよくある質問LinksX(Twitter)GitHubメディアキットLegal利用規約プライバシーポリシ。