連載:Team Foundation Server 2008の下流工程への適用第1回 チーム開発環境を無理なく導入するには?アバナード株式会社 安藤 大祐(Microsoft MVP 2008 for Team System)2008/10/28 |
|
|
■Team Foundation Serverの機能概要
|
TFSがリリースされるまでは、(.NET開発の)チーム開発環境の中で使われるバージョン管理ソフトウェアとしては、Visual SourceSafe(以下、VSS)が一般的だった。このため、TFSをVSSの上位レベル製品、つまりバージョン管理システムと思っていないだろうか?
確かにTFSはバージョン管理システムとしての機能を備えているが、それは1つの側面であって本質ではない。TFSはVSSとはまったく異なる目的を持つ製品である。それは、TFSが提供している機能を見ていくとよく分かる。
TFSが持つ機能は冒頭で示したとおりだが、これらのTFSの機能とVSTSとの関係をまとめると次の図のようになる。
○Team Foundation Serverが提供する基本機能
TFSが提供する基本的な機能は、次の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によって得られたフィードバックを基にさまざまな機能強化が行われている。
|
INDEX | ||
[連載] Team Foundation Server 2008の下流工程への適用 | ||
第1回 チーム開発環境を無理なく導入するには? | ||
1.Team Foundation Serverの実際 | ||
2.Team Foundation Serverの機能概要 | ||
3.費用は高額だが、得られる効果は? | ||
4.導入へのファースト・ステップ | ||
「Team Foundation Server 2008の下流工程への適用」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|