連載:Team Foundation Server 2010入門

第6回 快適な進ちょく管理を実現する作業項目トラッキング

WINGSプロジェクト りばてぃ(監修:山田 祥寛)
2011/01/24
Page1 Page2

作業項目トラッキングとは

 まず、作業項目トラッキングについて少し解説をしておこう。

 そもそもどのようなことをするものか? ということだが、端的には作業の履歴を追跡することが主たる目的だ。イメージをつかむために図1をご覧いただきたい。

図1 ある作業の流れ

 この図は、ある作業を行うときの流れを示したものだ。何かしらの作業を行おうとすると、多少の差はあれど、たいていはこのような流れをたどるはずだ。

 仮に何人かが集まって開発を行っている場合、作業の計画を決める人と最後に作業の終了を承認する人が「管理者」となり、作業を実施してその結果を報告する人が「担当者」となるだろう。少人数や1人の場合はこの2つの役割を兼務する場合もあるかもしれないが、ある作業を実施する場合、通常はある役割を持つ人が、ある決められた作業を順に担当していくことになるはずだ。

 今回は、Team Foundation Server 2010(以下、TFS 2010)の真骨頂ともいえる作業項目トラッキング機能を使って、この作業そのものとその流れを管理するということを行っていく。普段、あまりこのようなことを意識して作業していないことも多いかもしれない。しかし、TFS 2010では明確に“見える化”を行おうとする。作業項目トラッキングはTFS 2010の肝であるのだが、このギャップが転じてTFS 2010そのものの全体が難しいと思わせてしまっている原因にもなってしまっている。

 これから、作業項目トラッキングの実際の使い方を順に追っていくことにするが、それと同時に作業の可視化、それに向けた自分自身の意識改革もぜひ頭に置いたうえで読み進めていただきたい。

作業項目の理解

 さっそく、作業項目トラッキングを使い始めていくが、その前に、そもそもTFS 2010の作業項目がどのようなものかを理解しよう。TFS 2010にはさまざまな種類の作業項目が用意されているのでそれらを一通り確認した後、最もよく利用される1つを例に取って具体的な中身を見ていくことにする。

作業項目の種類

 TFS 2010の作業項目と一口にいっても、実にさまざまな種類が用意されている。先ほどの図1で、ある作業の流れを示したが、作業の種類や管理するものの種類が異なれば、当然そこで必要なデータにも違いが出てくる。これらをあらかじめ分類し、それぞれごとにひな型のような形で作業項目が用意されている。

 TFS 2010には標準で2種類のプロセス・テンプレートが用意されており、それぞれに表1に示す作業項目の種類が用意されている。

作業項目の種類 概要 Agile(*1 CMMI(*2
タスク 設計や実装など個々の作業
テスト・ケース 予想される結果を得るためのテスト内容とテスト方法
バグ テストなどによって発見された障害内容
ユーザー・ストーリ 利用者の要求内容の特徴やそれを満たすために必要な機能  
共有ステップ テスト・ケース間で再利用できるテスト内容のグループ
懸案事項 今後の計画に対する潜在的な問題や障害
リスク プロジェクトの成功に影響するリスク内容  
レビュー コード・レビューで指摘された内容や決定事項  
変更要求 既存の要求に対する変更内容  
必要条件 機能要件や運用要件  
表1 作業項目の種類
*1)プロセス・テンプレート「MSF for Agile Software Development v5.0」。
*2)プロセス・テンプレート「MSF for CMMI Process Improvement v5.0」。

 表1を見ると、例えばタスクやテスト・ケースなどはどちらのプロセス・テンプレートにも用意されていることが分かる。また、ユーザー・ストーリや変更要求など、どちらかにしか用意されていないものもある。これらはそもそもどのような開発プロセスで作業を進めていくかを想定したときに必要となるものが定義されているため、想定する開発プロセスの違いがこのような差となって現れている。ただし、同じ名前で定義されていても微妙に求められる役割が異なっていることがあり、その場合は用意されているフィールドにも差異がある場合がある。

 これら以外にも標準外で用意されているものでは例えば、Microsoft Visual Studio Scrum 1.0というプロセス・テンプレートなどがあり、自分で好きなものをダウンロードしてきて利用することもできる。

 本連載でこれまで解説してきたソース・コード管理や自動ビルドを利用するうえでは、チーム・プロジェクトを作成する際のプロセス・テンプレートの選択はさほど重要なことではなかった。しかし、選択したプロセス・テンプレートによって利用可能な作業項目が変わってくるため、作業項目トラッキングにおいては非常に重要な選択となる。もう少し難しく考えると、本来は「どのような開発プロセスで作業を進めていくか」によって、選択するプロセス・テンプレートが決定されるという手順を踏むべきだ。

 このため、事前に、ある程度試してみてから本番に臨むのが理想ではあるが、それが難しい場合には、標準の2つのプロセス・テンプレートは、割と簡単に利用可能な「MSF for Agile」と、割とかっちりしている「MSF for CMMI」という違いがあることを覚えよう。自分たちの開発がこの2つのどちらにより近いかだけを考え、近い方のプロセス・テンプレートを利用して開発を始めてみるのでもいいだろう。

作業項目の作成

 では、作業項目の種類のうち、通常の作業そのものを表し、最もよく利用されることになる「タスク」という作業項目を例に取って、実際に作業項目を作成する過程を覚えていこう。下準備として、作業を行うためには、ソース・コード管理や自動ビルドの場合と同様にチーム・プロジェクトが必要となる。

 なお、本稿の説明ではプロセス・テンプレートに「MSF for Agile Software Development v5.0」を使用したものをベースに解説を行う。このため、「MSF for CMMI Process Improvement v5.0」や追加のプロセス・テンプレートを利用している場合には、作業項目の種類や用意された項目名(TFS 2010では「フィールド」と呼ぶ)などに違いがあるため、適宜解釈していただきたい。

 では、Visual Studio 2010(以下、VS 2010)のIDEを開き、作業を行うチーム・プロジェクトをチーム・エクスプローラに表示しよう。そのチーム・プロジェクトのツリーを展開し、[作業項目]のコンテキスト・メニュー(=右クリックにより表示されるメニュー)から[新しい作業項目]−[タスク]を選択する。

 すると、図2のようなエントリ・フォームが表示される。これがTFS 2010に用意された作業項目だ。

図2 作業項目の例

 このタスクを例に取って代表的なフィールドを説明したものを、表1に示す。

フィールド名 説明
タイトル 作業の概要を端的に示す作業名
担当者 作業の担当者名
状態 この作業の現在の状態
理由 この作業が現在の状態になった理由
区分 この作業の分類
イテレーション 開発工程におけるこの作業のイテレーション
優先度 この作業の優先度
最初の見積もり この作業の予定作業時間
残り 作業を始めた場合、決められたポイントでの残り作業時間
完了 作業を始めた場合、決められたポイントでの現在までの実績作業時間
詳細 この作業の内容を詳細に説明した文章
表1 タスク作業項目のフィールド

 タスクという作業項目1つ取っても、実にさまざまなフィールドが用意されていることが分かる。いくつかポイントとなる点を補足しておこう。

 [担当者]フィールドは、入力またはドロップダウンからの選択によって設定することが可能だ。このドロップダウンには、このチーム・プロジェクトへのアクセスが許可されたユーザーの名前が一覧されるようになっている。

 [区分]フィールドは、関係者が分かりやすいように作業を分類するために利用する。例えば機能単位で区切ったり、サブシステム単位で区切ったり、あらかじめ決められたチームで区切ったりといった使い方が想定されている。

 [イテレーション]フィールドは、開発の時間軸に対しての作業の分類を行うために利用する。イテレーション型開発を行っていればそのまま当てはめればいいだろう。それ以外の開発方法を取っている場合は「イテレーション」という言葉にとらわれず、自分たちが理解しやすい時間軸ごとに区切ればよい。ウォーターフォール型開発を例に取ると、要件定義、外部設計、内部設計、実装、テストなど工程そのものを区切りの単位として利用するといったことが考えられる。

 ただし、[区分]フィールドと[イテレーション]フィールドに設定できる選択肢は初期状態ではそれぞれ1つしか用意されていない。区分とイテレーションにどういった項目が必要かはチーム・プロジェクト作成後に設定する必要がある。設定を行うには、チーム・エクスプローラでチーム・プロジェクト項目のコンテキスト・メニューから[チーム プロジェクトの設定]−[区分およびイテレーション]を選択する。これにより表示される図3の画面から設定を行う。

図3 区分とイテレーションの設定
この例では[区分]タブを開いて、区分をツリー構造で設定している。

 区分およびイテレーション画面の[区分]タブと[イテレーション]タブの内容は同じ作りになっていて、図3にあるようにツリー構造で設定できる。チーム・プロジェクトに図3のような区分が設定されていると、作業項目の[区分]フィールドでは図4のように表示され、区分を選択できる。

図4 作業項目での区分の選択

 また、図3では便宜上、機能・サブシステム・チームと並べているが、実際に区分を利用する場合には、いずれかに絞った方が分かりやすいだろう。

 なお、[状態][理由][残り][完了]などのフィールドについては後述する。

 いくつかのフィールドを埋めたら、作成した作業項目を保存しておこう。これで、「作業の計画」を行う段階が終了したことになる。続いて、次のページでは「作業の実施」「作業の報告」について説明する。


 INDEX
  [連載]Team Fourndaiton Server 2010入門
  第6回 快適な進ちょく管理を実現する作業項目トラッキング
  1.作業項目トラッキングとは/作業項目の理解
    2.作業項目による作業状態の管理/Officeとの連携

インデックス・ページヘ  「連載:Team Foundation Server 2010入門」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間