kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Visual Studio Team Servicesで作業を管理する(4日目)

4日目は作業項目をカスタマイズを紹介します。

初期状態

f:id:kkamegawa:20161203205211p:plain

Workタブをクリックすると、Backlog Itemsが初期状態で表示されます。Scrumテンプレートでは、Features(要求される機能)、Backlog(作業内での優先リスト)、Task(実際の作業)という階層で扱います。

Product Backlog単位でスプリント期間中に作りこむ作業の優先順位を決定します。最初から詰め込んだ作業ができるとは思わず、最初は見積もった作業がオーバーすることもよくあります。また、緊急度やビジネス上の価値などを考慮して、チームで優先順位を変えていきます。

特にリリースしたサービスが止まってしまった場合などは最優先で対処しなくてはならないでしょう。そういう作業の優先度をシステム上で見えるようにします。

カンバン仕事術

カンバン仕事術

  • 作者: Marcus Hammarberg,Joakim Sundén,原田騎郎,安井力,吉羽龍太郎,角征典,?木正弘
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2016/03/26
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (5件) を見る

カンバンに特化した本やアジャイル関係の本はいくつも出ているので、詳細はそちらをどうぞ。

VSTSのカンバンはデジタルらしく、Feature,Backlogそれぞれでいろいろ設定ができますので、紹介します。

Features

バックログ

f:id:kkamegawa:20161203205212p:plain

一覧画面とカンバンそれぞれ設定ができます。ウィンドウ内の小さい歯車アイコンをクリックすると、Featuresの設定画面が表示されます。

f:id:kkamegawa:20161203205213p:plain

使用する機能レベルを表示します。Epicsは複数のスプリントをまたがるような大きな機能を作るときに使います。Featuresは要件と思ってもらえばいいと思います。小さいプロジェクトや、Scrumに慣れるまでは非表示でも構わないでしょう。

Backlogを非表示にすることはできません。

f:id:kkamegawa:20161203205214p:plain

作業可能な曜日を設定します。ここはブラックスプリントなので(嘘、実験用だから)、日曜から土曜まで全部入れていますが、通常は月曜から金曜までにします。もちろん特殊難環境で日曜から木曜まで働き、金曜土曜が休みというところはFridayとSaturdayのチェックを外します。

f:id:kkamegawa:20161203205215p:plain

バグをカンバン上に別扱いで表示するかどうかです。ここで出るバグというのはサービスが止まるような致命的な問題、と考えていただいて構いません。つまり最優先に対応しなければならないから、バックログと同じレベルということですね。

f:id:kkamegawa:20161203205216p:plain

一覧画面に表示する項目の追加/削除です。個人的なおすすめはIDで、これは作業項目IDです。IDはFeature, Backlog,Taskすべてで表示することをお勧めします。VSTSのいろんな場所で #番号 と書くと、作業項目番号をリンクすることができます(Gitのコミットメッセージでも有効です)。

「あの作業項目の番号何番だっけ?」といちいちタスクを開く必要がなくなります。

カンバン

f:id:kkamegawa:20161203205221p:plain

Board(カンバン)に切り替えて歯車アイコンをクリックすると、カンバン用の設定ができます。ここでもShow IDをチェックしておくと、ボード上に作業項目IDが表示されるのでわかりやすくなります。

f:id:kkamegawa:20161203205222p:plain

同様に、登録されたフィールドから明示的に表示したい項目を追加できます。例えば、Featureが変更された日付を表示したいならば、Changed Dateを追加します。

f:id:kkamegawa:20161203205223p:plain

カードのスタイルも変更できます。StyleタブでStyle Ruleをクリックすると、指定した条件に一致したカードの色変更ができます。例えば、昨日登録されたタスクが何も変わっていない場合、背景を赤色にするというスタイルを定義した例です。

チームメンバーで決めておけば危ない兆候を視覚的にわかりやすくすることができます。

f:id:kkamegawa:20161203205224p:plain

同様に、特定のタグが付いたFeatureに色付けすることもできます。タグの色付けは少し慣れてからでもいいかもしれません。タグの登録や削除には権限が絡んできますので、だれでも追加/削除できませんから。

f:id:kkamegawa:20161203205225p:plain

列を定義します。初期状態では3列ですが、チーム状況によってはもっと増やしても構いません。最初は3列から初めて、何か困ったら増やすほうがいいでしょう。VSTSを開発しているチームでは7列くらい作っているそうです(バックログだったかもしれませんが)。

f:id:kkamegawa:20161203205227p:plain

NewとDoneの間の列(今回はInProgress列)ではWIP limitを設定できます。これは「チームが仕掛として登録できる数」です。この考えはバックログも同じです。

むやみやたらにチームの稼働を超えたFeatureやBacklogを処理中にしても進むことはありません。メンバーの稼働状態でInProgressに登録できるタスクの数の上限を設定します。もちろん、メンバー数や能力に応じて上下します。

Split ColumnはInProgressをさらにDoingとDoneに分割する、という設定です。Doingは実際の作業中、Doneは「作業は終わったがDoneに移行する前の未レビュー状態」と考えていただければいいと思います。

レビューを受けて、関係者からのOKが出ればDoneに移行して、タスクが完全に終わりとなります。

f:id:kkamegawa:20161203205226p:plain

縦方向に分割できるんだから、横方向も分割できます。Swimlanesという設定がそれです。FeaturesやBacklogは表示順それ自体がタスクの優先度ですが、タスクの種類ごとに分割して認識したい場合があります。

今回の例で出しているキャプチャはよくないのですが、例えば、性能と画面デザイン、モバイルとWeb、それぞれ優先度はあるものの、別の行でまとめて見たいということは良くあります。

そういうときにSwimlanesで仕切るとそれぞれのカンバンが仕切られて見やすくなります。これも少し慣れてから使ってみてください。

Backlog Items

カンバン

Backlog Itemsも同じような設定ができますが、より細かくなります。

f:id:kkamegawa:20161203205228p:plain

Backlog Itemsとバグが同列で並びます。もちろんここでもShow IDにチェックを入れることをお勧めします(Bugも)。

f:id:kkamegawa:20161203205229p:plain

AnnotationsはBacklogに対応するテストとタスクを表示するかどうかです。Backlogがあるからには具体的なテストとタスクがある、ということなので、企保的には表示したままにすることをお勧めします。

f:id:kkamegawa:20161203205230p:plain

バックログに対する手動テストおよび、テスト計画です。関連して設計するか、テスト計画は完全に独立して設計し、関連付けるかという選択です。基本的にはその都度新しいテスト計画を作ることをお勧めします。

作業工数管理

実際、だれがどれくらいの作業を行ったか、またこのスプリントでどれくらいの作業ができるかという管理は重要です。最初からうまくいくこともありませんが、入力データが怪しければそこから先はどうにもなりません。スプリント単位でどんな作業が何時間できるか、登録しておきましょう。

f:id:kkamegawa:20161203205218p:plain

Capacityをクリックすると、各メンバーが該当スプリントで実施する作業内容と作業時間が設定できます。このブログを書くための時間という想定なので、毎日1時間程度です。

f:id:kkamegawa:20161203205219p:plain

開発に1時間、ドキュメントに1時間というように、複数の作業を設定することもできます。

Days offはあらかじめわかっている休日などを指定します。Team Days offはGWや祝日などのまとまった不定期の休みを設定すれば、チームメンバー全員に反映されます。これはチーム管理者の仕事になります。

f:id:kkamegawa:20161203205220p:plain

これで、スプリントの設定までできました。明日からいよいよ作業項目を作っていきます。