matsukawar’s blog

個人的な技術ブログです。SAPネタを充実したい。Twitter : https://twitter.com/matsukawar

TFSの作業項目のカスタマイズは簡単にできます

Visual Studio / Visual Studio Code Advent Calendar 2015 19日目の記事です

はじめに

今日は、TFSで管理されるタスクやテストケース、バグなどの項目のカスタマイズのやり方について書きたいと思います。
また、TFSのポータルのグラフ表示の機能で、視覚的に残工数や残作業項目を表示する方法についても触れたいと思います。

現在、タスク管理をするためにRedmine等を利用されている方が多いと思いますが、
TFSのタスク管理も、自由にカスタマイズできます。しかも、PowerToolsを使用することにより、
より簡単に変更することができるようになっています。
※簡単にできちゃうので、問題を起こしたくない場合は権限周りを見直す必要あり。

ある程度自由にカスタムフィールドが追加できれば、チームに沿った運用ができるようになります。

なお、この記事では、オンプレのTFSに関して記載します。
Visual Studio Onlineのプロセスの編集に関しては以下の記事を参照してください(英語)

Visual Studio Online Process Customization
http://blogs.msdn.com/b/visualstudioalm/archive/2015/05/05/visual-studio-online-process-customization.aspx

手順

1. TFS Power Tools を入れます

Visual Studio をインストールした後、Microsoft Visual Studio Team Foundation Server 2015 Power Tools を追加でインストールします。※VS2013の場合は、Microsoft Visual Studio Team Foundation Server 2013 Power Tools を使用ください。

インストールすると、VSのメニューに「ツール」−「Process Editor」が追加されます。

2. Process EditorでTFSにつなげる

VSのメニューの「ツール」−「Process Editor」−「Work Item Types」−「Open WIT from Server」をクリックします。
対象のTFSにつなぎ、カスタマイズしたい作業項目を選択します。

そうすると、以下の様な画面が開きます。(今回は"バグ"を選択。)

Fields :
各入力欄の定義一覧です。名前空間にSystem.HOGE、や、Microsoft.VSTS.HOGEとなっているものは、TFSの標準フィールドですので、これらのアイテムはいじらないほうが無難です。独自のカスタムフィールドを作る場合は、まずここに定義を行います。

Layout :
"Fields"で定義した項目を画面に配置します。項目の表示順番の変更や表示ON/OFF、追加。また、グルーピングや、ラベルの設定や空欄時のガイダンスなど、制限はありますがカスタマイズ可能です。

Workflow :
タスクの状態遷移と状態遷移時の理由を管理します。TFSの作業項目には、"状態"と"理由"という2つのフィールドが存在します。"状態"はそのまま、作業項目の状態を表し、"理由"というのは、タスクの状態遷移の理由になります。


Workflowでは、作業項目の状態遷移の理由のカスタマイズができます。
以下の図では、作業項目:バグについて、「新規」→「コミット済み」に状態遷移した際に選べる理由として、「チームによるコミットメント」という理由1個が選択できるという設定になっています。

状態遷移の際、例えば、作業項目が新規にTFSにコミットされた場合や、
作業項目をクローズする際に入力する理由をカスタマイズする場合、この画面にてReasonの定義を増やします。
ただし、各状態遷移ごとの設定になります。

3. カスタムフィールドを追加する

Fieldタブの"New"ボタンをクリックし、新規の項目を追加します。
"Field Definition"で以下の様に入力します。

Reference Nameは必須項目なので、「チームプロジェクト名.フィルド名」などと任意に命名しておきます。
次に、"Rules"タブで値の定義と初期値などを設定していきます。
設定するのは、ALLOWEDVALUESとDEFAULTです。

ALLOWEDVALUESでAAA, BBB, CCCという項目を定義した例

DEFAULTでBBBを定義した例

基本的にこの2つで事足りると思いますが、より細かい設定を行う場合は以下に事細かく書いてあります。

作業項目フィールドへの規則の適用
https://msdn.microsoft.com/ja-jp/library/ms404857.aspx

VSの保存ボタンをクリックすると、設定した内容がTFSに反映されます。

4. カスタムフィールドを配置する

先に作った、カスタム項目を、画面に配置していきます。
この画面はあくまでも、項目を画面に配置したり、ラベルを変更する程度の簡単なレイアウト機能です。
また、既存の項目で消したい項目があれば、非表示にすることができます。

入力欄を置きたい位置を右クリックし、"New Control"をクリックします。
設定としては、"Field Name"に先に作ったカスタム項目の名前空間を設定し、"Label"に任意のラベルを設定すれば終わりです。

なお、Label Font Size, Label HyperlinkやPaddingなども設定できますので、業務フローに合わせて利用できるものは利用するといいと思います。ただし、細かい設定はできません。

5. カスタムフィールドが正しく表示されているか確認します

カスタムフィールドを作ったら、以下の確認をして、意図したとおりにレイアウトされているか確認してください。

  1. Visual Studio で該当の作業項目を表示してみる
  2. Team Web ポータル で該当の作業項目を表示してみる。(URLは、通常ですと http://TFSサーバー:8080/tfs )
  3. (Microsoft Test Managerを使ってる場合のみ)Test Managerで該当の作業項目(バグ、要件、テストケース等)を表示してみる。

驚くことに、すべてのプラットフォーム上のレイアウトも先ほどのカスタムフィールドの設定変更に従ってレイアウトが変更されているはずです。
ここまでできれば、カスタムフィールドの値を作業項目の中に保存することができるようになります。

6. カスタムフィールドを使い倒す!グラフ表示機能

単にカスタムフィールドを追加しただけでは物足りません!
これを有効に使っていきましょう。特に、Team Web ポータルのグラフ表示の機能はチームに合わせて使い倒せること間違いなしです。

手順

  1. カスタムクエリを作ります
  2. グラフ化したいタスクをクエリで抽出します。
  3. 「結果」タブにてグラフの横軸や縦軸に取りたいカスタムフィールド値のカラムを表示します。
  4. 「グラフ」タブをクリックし、グラフを追加します。

※クエリの結果としてカラム表示されていれば、グラフの縦軸や横軸として値を設定可能です。

この機能を使えば、Team Web ポータルのダッシュボードに以下のようなグラフを出して(ピン止めする)、チームの運用状況を視覚的に表現することができるようになりTeam Web ポータルへアクセスすると日々チームの状態の変化を見ることができるので、アクセスするのが楽しくなります。(嘘?)

グラフ化例

  • タスクの進捗状況
  • テストケースの進捗状況
  • タスクの担当者、作業量などの集計


Enjoy!
Ryosuke Matsukawa