TL;DR
- TFS/VSTSのScrum/Agileプロセステンプレートはどちらを選んでも大きな差はない
- カスタマイズできるので、ない項目の追加もできる
- しいて言えば、工数関係の項目があるので、ウォーターフォールになれた人ならAgileが違和感ないかも
はじめに
世界のやまさがこんなことをつぶやいていました。
アジャイルテンプレートとスクラムテンプレートも何が違うのかなーとみてました。 https://t.co/hd55tp1RXw を見てて分かったようなわからないような。
— YAMAMOTO Masaki (@nnasaki) 2018年6月21日
確かにさもありなんということで、ちょこっとまとめてみます。VSTSおよびTFSでプロジェクトを作るとき、プロセステンプレートの選択があります。
- Agile
- Scrum
- CMMI
VSTSではこの三種類以外のプロセステンプレートを作ることはできません。TFSでは独自のテンプレートを作ったり、不要であれば削除したりすることもできます。詳細はCustomize a process templateを見てください。既存の項目を追加/削除するだけであれば、VSTSでも可能です。詳細はこちらを見てください。
CMMIはちょっと性格が違うので、のぞくとScrumかAgileになります。この二つは非常によく似ていて、どちらを選ぶのか悩ましいと思います。個人的な考えですが、どっちでもいいです。しいて言えばMicrosoftから出る各種サンプルではScrumを選んでいるように見えるので、いちいち読み替えなくていいからScrumを選ぶというのでもありです。
チームの設定を行う画面の用語としては歴史的な事情(Scrumのほうが後に用意された)ということもあり、Sprintではなく、Iterationで統一されているようです。
注意:この記事ではVSTS/TFSでのテンプレートの説明をするものであり、開発プロセスそのものの説明ではありません。「スクラムとはこうだ」という話ではありませんので、ご注意願います。
テンプレートの注意点
現在において、ScrumとAgileのテンプレートを相互に行き来することはできません。「継承された」テンプレートには移行できます。例えば、Scrumから継承してInheritScrumというテンプレートを作ると、ScrumからInheritScrumへの移行は可能ですが、ScrumからAgileや、ScrumからAgileを継承したInheritAhgileへの継承はできません。
テンプレートで定義されている項目の違い
左がAgile, 右がScrumです(引用:docs.microsoft.comより)。ScrumとAgileの違いは、Product BacklogがUser Storyになっていることくらいです。ここだけなら正直読み替えても何ら変わりません。
作業項目クエリ
同様に、左がAgile, 右がScrumです(引用:docs.microsoft.comより)。デフォルトでチーム内の共有クエリで準備されているものがちょっと違いますね。これも作ってしまえばだいたい同じものにできるので、大した差ではありません。
Scrumでは「現在のスプリントで何をするか」という点にフォーカスしたクエリが用意されています。AgileではIteration中の作業の状態にフォーカスしたクエリが用意されているように見えます。
ワークフロー
左がAgile、右がScrumのそれぞれUser Story, Product Backlogを作ったときの初期設定です。Story PointとEffortは大体同じと思っていただいて構いません。どのくらいの作業量かという相対値になります。この値をちゃんと入力しておくと、ベロシティの値を計算してくれて、バーンダウンチャートに反映されます。
Priorityはどちらもありますが、RiskのみAgileにあります。要はこのUser Storyを実現するためのリスク予想ですね。数字が小さいほどリスクが高いです。Scrumにはありません。
Acceptance Criteriaとは受け入れ基準です。どうなっていればこのバックログ/Storyが完了したとみなせるか、というところを書きます。
作業ワークフロー
AgileのUser Story, Bug, Taskのワークフロー。
ScrumのProduct Backlog, Bug, Taskのワークフローです。実際のカンバンではApproveの中にさらに分割するといったこともできますし、カスタマイズすればもっと多段階にできますが、最初はやらないほうがいいでしょう。ちなみにVSTS開発チームではNew/Approve/Commited/Doneだけではなく、さらに2-3段階追加して、さらにdo/doneに分割しているそうです。
Approve, Commited, Active, Resolvedといった用語を入れ替えればまぁ大体同じと考えていただいてもいいと思います。
Taskの差
左がAgile、右がScrumでタスクを作ったときです。パッとわかる違いとしては、Agileには時間を記入するところがあります。Original Estimateは当初の見積もりですね。
Completed Workは完了までの時間。Remaining Workは見積りとの差異となります。
追跡単位
左がAgile、右がScrumで新規作成するときに選べる差です。Impediment, Product Backlog, issueの有無がわかると思います。Impedimentは「障害」という意味ですね。Ryuzeeさんのすばらしい解説があるので、どうぞ。
まとめ
どちらを選んでも致命的な違いはなく、どちらでもいいのですが、テンプレートとしてみた場合、Agileはイテレーション中のタスク管理という面にフォーカスしていて、Scrumはタスクそのものの質を分析しようとしているのではないかなと感じます。
最初はAgileでやったほうが、作業時間を見たい管理職の人には受けるのかもしれませんね。
追記
コメントでAgileプロセステンプレートはスクラムがもとになったMSF for Agileなので、差はほとんどないですよ。ということを教えてもらいました。ありがとうございます。
Agileプロセス テンプレートはMSFが元で、MSF for Agileの方はそもそもScrumがベースにカスタマイズしたものなので、よく似ています。なので、基本的には用語の違いと細かくデータを取るのが好きかどうかというところで判断されるといいと思っております。
— azukipochette (@azukipochette) June 22, 2018