連載:Team Foundation Server 2008の下流工程への適用

第1回 チーム開発環境を無理なく導入するには?

アバナード株式会社 安藤 大祐(Microsoft MVP 2008 for Team System)
2008/10/28
Page1 Page2 Page3 Page4

Team Foundation Serverの機能概要

Team Foundation ServerによるTeam System運用の実際

 TFSがリリースされるまでは、(.NET開発の)チーム開発環境の中で使われるバージョン管理ソフトウェアとしては、Visual SourceSafe(以下、VSS)が一般的だった。このため、TFSをVSSの上位レベル製品、つまりバージョン管理システムと思っていないだろうか?

 確かにTFSはバージョン管理システムとしての機能を備えているが、それは1つの側面であって本質ではない。TFSはVSSとはまったく異なる目的を持つ製品である。それは、TFSが提供している機能を見ていくとよく分かる。

 TFSが持つ機能は冒頭で示したとおりだが、これらのTFSの機能とVSTSとの関係をまとめると次の図のようになる。

図1 TFSを含むVSTSの構成概要
VSTSには、Architecture Edition、Development Edition、Database Edition、Test Editionという4つのエディションが用意され、これらをひとまとめにしたTeam Suiteというエディションもある。TFSは冒頭で紹介した各種機能を持ち、それらはプロセス・テンプレート(=個別の開発プロセスに従った手順や資料を提供する機能)によって包括されている。また、VSTSやOffice、Web Access(Windows SharePoint Services)とダイレクトに連携できる。さらに、機能拡張やサードパーティ製のツールによって、TFSの機能をカスタマイズ、拡張できる。

Team Foundation Serverが提供する基本機能

 TFSが提供する基本的な機能は、次の5点である。

  1. バージョン管理システム
  2. 自動ビルド・システム
  3. 作業項目管理
  4. プロジェクト管理
  5. コミュニケーション基盤

 以下に各基本機能の簡単な説明を示す。

1. バージョン管理システム
  バージョン管理システムで提供される標準的な機能(ソース・ファイルのチェックイン/チェックアウト、プロジェクトのブランチ/マージ、バージョン管理など)に加え、より高度なチーム開発のサポート(マルチ・チェックアウト、シェルブ、チェックイン・ポリシー)や分散拠点開発のサポート(Team Foundation Proxy)を提供する。これらの機能はVS 2008と完全に統合される。

* TFSのバージョン管理で用いられる用語は以下の表を参考にされたい。

用語 説明
チェックイン 変更作業を終了してバージョン管理システムに保存すること
チェックアウト 変更作業を開始するためにソース・ファイルを取得すること
ブランチ プロジェクトを分岐すること。異なるバージョンを同時に開発するとき、もしくは新規開発と同時に旧バージョンも保守しなければならないときに使う
マージ ブランチしていたプロジェクトを統合すること
シェルブ プロジェクトの一部分のソースを一時的に(チェックインせずに)バージョン管理システム上に棚上げ(=シェルブ)して共有すること。未完成のコード(つまりチェックインすべきでないコード)を一時的にチームで共有したい場合に利用する
マルチ・チェックアウト 複数の開発者による同時チェックアウト
チェックイン・ポリシー チェックインを受け付ける条件

2. 自動ビルド・システム
  バージョン管理システムに登録されているプロジェクトに対し、自動的にビルドおよびそれに関連する作業(コード分析や自動テスト、実行のスケジューリングなど)を実施する。ビルド・スクリプトはMSBuild用として記述される(大部分はウィザードを介して生成される)。また、ビルドの実行結果についてもTFSにて管理され(ビルドに含まれる変更セットや作業項目の追跡、品質評価の設定が可能)、リリース管理としての機能も持つ。

3. 作業項目管理
  プロジェクトにおけるさまざまな作業(要件やバグ、タスクなど)を管理する機能。TFSが提供するバージョン管理システムや自動ビルド・システムなどの機能やプロジェクト管理ツール「Microsoft Project」と連携して、作業項目をトラッキング(=追跡)できる。これらの作業項目は自由にカスタマイズが可能で、標準で提供される作業項目の修正/拡張が行え、また新規に独自の作業項目を作成することも可能である。

4. プロジェクト管理
  プロジェクトの進ちょく状況や潜在的に存在しているリスクを可視化するため、TFSに蓄積されているさまざまな情報の収集・分析をレポートする機能を提供し、Microsoft Office製品(WordやExcel)とも連動する。また、作業項目やレポートの定義などを含めた一連のソフトウェア・プロセスはプロセス・テンプレートとしてパッケージ化され、柔軟に変更および展開することが可能である。

5. コミュニケーション基盤
  TFSではWindows SharePoint Services上にプロジェクトのポータル・サイトを作成する。このサイトでは、プロジェクトで適用しているプロセスの説明を示すガイダンスや、成果物として作成されたドキュメントおよびテンプレート、分析されたレポートなどが共有される(これらの項目もプロセス・テンプレートにて定義される)。また、TFSにはイベント・サービス機能があり、TFS上で発生したさまざまなイベント(=ソースのチェックインや作業項目の変更など)をトリガに、メール送信やWebサービスの呼び出しを行う機能を提供する。

 上記を見てもらえば分かるとおり、TFSの目的はソース・コードの変更管理(バージョン管理)だけではなく、ソフトウェアの要求管理から、開発、ビルド、テスト、リリースに至るまでの一連の流れを管理・制御すること、つまりアプリケーション・ライフサイクル・マネジメント(以下、ALM)であるといえる。ALM全般にわたって統合サポートを行うことを目的とした製品が、TFSを中心としたVSTS製品群というわけである。

Team Foundation Server 2008 のエディションとライセンス

 TFSの内容については大体ご理解いただけたと思う。次に、TFSの費用対効果について筆者の意見を述べたいと思うが、その前に「実際にTFS 2008を導入するとどれくらいの費用がかかるのか」を知っていただくために、TFSのライセンスについて簡単に表にまとめた。

 なおTFSには、通常のエディションのほかにも、5人までのユーザーに限定したWorkgroup Editionも提供されている。

  通常版 Workgroup Edition
サーバ・ライセンス 38万円(サーバ・ライセンス)
TFSはデータ・リポジトリとしてSQL Serverを利用するが、SQL Server Standard EditionのライセンスがTFSに含まれているため、別途購入する必要はない(ただし、TFSでの利用に限る)
パッケージ版は存在しない
VSTS With MSDN Premium Subscriptionでのみ提供
クライアント・ライセンス(CAL) 6万8000円(ユーザー or デバイス)
VSTSのクライアント製品にはCALが含まれているため、別途購入は不要。Microsoft ProjectやExcel、Web Access(Windows SharePoint Services)をクライアントとして利用する場合には購入が必要
不要(利用可能ユーザーは5人)
表1 TFSのライセンス体系
上記の料金はパッケージを新規購入したときの標準価格である。実際にプロジェクトで購入する際は、ボリューム・ライセンスでの購入をお勧めする。詳細はhttp://www.microsoft.com/japan/presspass/addcont.aspx?addid=953を参照されたい。

 具体的にどのぐらいの費用が必要なのかを分かりやすくするため、小規模な開発チームを想定してみよう。このチームは、マネージャー1人、開発リード1人、開発者3人、テスター1人の計6人で構成されているものとする。

 このチームで、VSTS+TFSを導入した場合、従来と同じように(VSTSではなく)VS 2008 Professional(以下、VSPro)+VSSで構成する場合、そして両者のハイブリッドであるVSTS+VSSを利用する場合の3つのパターンで費用を比較したのが以下の表である。

  VSTS+TFS VSTS+VSS VSPro+VSS
マネージャー 6万8000円(TFS CAL)
Microsoft ProjectやWeb Access(Windows SharePoint Services)から利用
-
-
開発リード 150万円
(VSTS Team Suite)
150万円
(VSTS Team Suite)
12万8000円
(VSPro)
開発者×3 75万円×3
(VSTS Development Edition)
75万円×3
(VSTS Development Edition)
12万8000円×3
(VSPro)
テスター 75万円
(VSTS Test Edition)
75万円
(VSTS Test Edition)
12万8000円
(VSPro)
開発サーバ 38万円
(TFS)
9万3000円
(VSS)
9万3000円
(VSS)
494万8000円 459万3000円 73万3000円
表2 導入費用の比較
繰り返しになるが、上記の料金はパッケージを新規購入したときの標準価格であり、いずれの場合もボリューム・ライセンスにより購入することで費用を抑えることが可能である。

 このとおり、TFSを導入するか否かで約50万円、VSTS全体を導入するか否かでは400万円もの差が出てしまっている。これだけの金額であれば、明確に費用対効果を示さなければなかなか導入には踏み切れないだろう。

【コラム】Team Foundation Server 2008 SP1で変更された機能

 TFS 2005ユーザーのために、TFSの最新版での機能変更点を一覧表に簡単にまとめた。現在の最新バージョンであるTFS 2008 SP1では、TFS 2005によって得られたフィードバックを基にさまざまな機能強化が行われている。

導入バージョン 区分 変更点
TFS 2008 バージョン管理 ファイルの完全削除が可能になった
ソース管理されているファイルに注釈を表示する
フォルダを比較する機能を追加
自動ビルド 継続的インテグレーション(=チェックインをトリガにした自動ビルド)をサポート
スケジュールされたビルド実行をサポート
HTTPSとSSLを要求するチーム・ビルドのサポート
作業項目管理 作業項目操作のパフォーマンスが2倍ほど向上
TFS 2008 SP1 バージョン管理 エクスプローラからのドラッグ&ドロップによる項目の追加が可能
バインドされているソリューションに含まれていないファイルに対してもバージョン管理操作をサポート
作業フォルダの設定やバージョン管理の追加などの操作性が向上
コミュニケーション基盤 作業項目のメール送信が容易に利用できる
メールからWeb Access(Windows SharePoint Services)へのリンクを張ることが可能
そのほか管理項目 Windows Server 2008およびSQL Server 2008のサポート
VSSコンバータの強化
コマンドラインからのチーム・プロジェクトの作成
表3 TFS 2008およびTFS 2008 SP1での変更点


 INDEX
  [連載] Team Foundation Server 2008の下流工程への適用
  第1回 チーム開発環境を無理なく導入するには?
    1.Team Foundation Serverの実際
  2.Team Foundation Serverの機能概要
    3.費用は高額だが、得られる効果は?
    4.導入へのファースト・ステップ

インデックス・ページヘ  「Team Foundation Server 2008の下流工程への適用」


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 記事ランキング

本日 月間