ソースコード管理
ソースコード管理とは開発を行う時にソースコードを特定の場所に保存してバージョン管理を行うことで、特に複数の人が開発に携わる時には非常に重要になります。ソースコード管理においてソースコートを預けることを「チェックイン」、預けたソースコードを取り出すことを「チェックアウト」と呼びます。既存のMicrosoftの製品としてVisual SourceSafe(以下VSS)がありますが、VSSではチェックインされたコードをファイルとして保存し、常に最新のソースコードがVSS上に保存されるようになってます。
これに対してTFSのソースコード管理はチェックインされたソースコードをデータベースに保存します。データベースに保存する事で、通常は最新の状態から操作を行えますが、いざという時は過去のチェックインの状態に戻すことのできる機能を持っています。さらに、チェックインを行う際に決められた条件を満たしていないとチェックインができないという制限を設けることができます。この制限のことをチェックインポリシーと呼びます。TFSに標準で用意されているチェックインポリシーは次の3点です。
- コード分析
- テストポリシー
- 作業項目
既定ではチェックインポリシーは設定されていませんので、UIから追加したいチェックインポリシーを選択して追加する必要があります。

それぞれのチェックインポリシーについてですが、テストポリシーでは指定された単体テストの実行を、コード分析では指定されたコード分析の実行をチェックし、未実行の場合警告を表示するようになっています。なお、テストポリシーを実行する場合には、VSTTがインストールされている必要があります。コード分析を実行する場合にはVSTDが必要です。また作業項目ではチェックインする時に後述する作業項目との関連付けがなされているかをチェックし、関連付けがなされていない場合は警告が表示されます。
さらにTFSのソースコード管理には、チェックインをせずに開発中のソースコードをほかの開発者と共有する機能があります。それが「Shelve」と呼ばれるものです。Shelveでの変更を反映させたい場合はマージを行う事で変更を反映することができます。Shelveを使用する際にはどの部分を切り分けるか、またどのタイミングでマージを行うかをしっかり考えておく必要があります。
作業項目管理
作業項目とは作業の進捗やバグの報告などを記載するもので、用途によってさまざまな型が用意されており、作業項目は標準のプロセステンプレートであるMSF AgileとCMMIとでも異なったものが提供されています。MSF AgileとCMMIには用途によって以下の作業項目が用意されています。
| 作業項目の型 | 内容 | MSF Agile | CMMI |
| タスク | 作業時間など日々の作業を入力したりチェックインと関連付けを持ったりして、作業をトラッキングできるようにするための型 | ○ | ○ |
| バグ | 発生したバグについて発見されたテストやビルド、優先度などを入力し、バグの発生から解決までをトラッキングできるようにするための型 | ○ | ○ |
| リスク | プロジェクトで懸念される事柄を報告し、解決を促すためための型 | ○ | ○ |
| シナリオ | 製品を利用する手順や利用する対象者についての情報を入力するための型 | ○ | × |
| サービス品質要求 | シナリオとは異なりパフォーマンスやセキュリティといった機能について特に入力するための型 | ○ | × |
| 変更依頼 | 変更者や作業実績、他への影響の有無など、変更が及ぼす影響や作業をトラッキングできるようにするための型 | × | ○ |
| 懸案事項 | 特に懸案される事について入力するための型。 | × | ○ |
| 必要条件 | 必要条件に対して専門家や作業量を入力し、必要条件がコミットされるまでトラッキングできるようにするための型 | × | ○ |
| レビュー | レビューの出席者やレビュー概要などを入力するための型 | × | ○ |
作業項目は1つの型から複数の作業項目を作成して使用します。作業項目は必要になった時点でどんどん追加していくことができるので、プロジェクトの状況に合わせて追加して使用します。作業項目はMicrosoft社のProject 2003やExcel 2003と連携することができ、作業項目の追加もProject 2003やExcel 2003から行うことができます。ただしどのような作成方法の場合でも、一旦作業項目を作成してしまうと消去する事はできないのでその点は注意してください。
作業項目の中で1番使用されると考えられるのがタスクの作業項目です。
タスク上部には担当者や作業の状況(現在アクティブか、それともクローズしたのかなど)、その状況になった理由などを入力します。下部には複数のタブがありますが、「リンク」タブではチェックインや他の作業項目などと作業項目を関連付けることができます。また「詳細」タブでは作業実績などを入力したり、「履歴」タブでは入力の履歴が自動的に保存されていたりします。
作業項目は同じプロジェクトで複数作成されますが、目的の作業項目だけを参照・編集したい場合はチームクエリを使用して作業項目を絞り込むことができます。チームクエリはMSF Agileで11種類、CMMIで16種類、いずれもよく使用されそうなクエリが用意されていますが、新たに追加したり編集したりすることも可能です。
チームクエリの編集方法ですが、図4の右ペインから編集したいクエリを選択すると、画面上部にSQLデザイナのような画面が表示されるので直観的に編集できます。クエリの追加も同様に直観的に操作することができます。
作業項目に入力された値は後述のレポート表示のデータとしても扱われますので、正確なレポートが必要な場合は作業項目の入力を正確に行うというルールが必要になります。


