Visual Studio のアプリケーション ライフサイクル管理の概要
このトピックでは、Jason Zander のブログ記事 (2009 年 10 月投稿) を抜粋し、一部修正して掲載しています。この記事は、Visual Studio Team Foundation Server が提供する魅力溢れる価値を紹介しており、また実践ガイドとしても活用できます。 Team Foundation Server の知識はあるのですぐに使い始めたいという方には、ソフトウェア開発チームでの役割別に役立つトピックへのリンクも掲載しているため、ぜひ参考にしてください。
Zander は、Visual Studio 部門担当の副社長です。 記事中のスクリーンショットは、最終製品版のものに差し替えています。
このトピックの内容
チュートリアル: Microsoft Visual Studio Team Foundation Server 2010 の概要
役割別の Team Foundation Server 2010 の作業
チュートリアル: Microsoft Visual Studio Team Foundation Server 2010 の概要
Team Foundation Server の基本構成が新しくなり、ソース管理、作業項目、およびビルドをサポートする Team Foundation Server を簡単に設定できるようになりました。Visual SourceSafe の資産の絶好の移行先であると同時に、新しい機能もお届けします。ここでは、このシステムの使い方について詳しく解説したいと思います。
この記事では、Team Foundation Server を以前にインストールまたは使用した経験のないユーザーにとって役立つ情報をお伝えします。Team Foundation Server は、レポート機能、SharePoint 製品との統合、複数ドメインのサポート、分散データベースなど、高度な環境をサポートしていますが、これらについては、ここでは解説しません。"Team Foundation Server を選ぶ理由" とシステムの使い方を理解する一助として利用してください。
まず、"Team Foundation Server を選ぶ理由" について説明します。Team Foundation Server の目標は、役割にとらわれずに簡単に共同で作業できるよう支援するツール一式を備えた中央リポジトリの確立です。たとえば、複数の異なるシステムを次のように組み合わせて使用することは可能です。
この場合、各システムが専用のストレージを備え、資産に対して一連の ID を独自に割り当て、独自のコマンドやツールを有しています。 このやり方は、カスタム部品を組み合わせてコンポーネント ステレオを構築するようなもので、達成できないわけではありませんが、手間がかかり、何かを見過ごすリスクも避けられません。
私なら、これらのアイテムをすべて統合できるシステムを用意し、そのシステムで既定のワークフローを利用できるようにします。
この統合により、非常に一般的なシナリオが実現します。 通常、私はソース コードを編集し、製品をビルドしてテストし、バグを報告して修正し、このような作業を 1 日中繰り返します。 このワークフロー全体が、1 つの統合リポジトリでサポートされていれば、すべてのアイテムを相互に関連付けることができます。 たとえば、バグ修正をチェックインする際は、不具合が解決し、変更セットが記録されたことを確認できると便利です (下の例を参照)。
Team Foundation Server の基本構成で、まさにこれを実現できます。単なるソース管理だけを行うる場合と比べて、飛躍的な改善です。フル バージョンの Team Foundation Server になると、自動テスト、仮想ラボの配置、アーキテクチャ検証などの新機能 (ごく一例です) も加わります。その結果、ワークフローは次のように拡充されます。
Visual Studio の使用に際しては、これらの新コンポーネントのうちどれを追加するかを選択できます。
Team Foundation Server へのアクセス方法は多数あります。エンジニアは一般に、Visual Studio のバージョンからアクセスします。テスターは、新しいテスト マネージャー製品を使用できます (Visual Studio のインストールは不要です)。プロジェクト マネージャーも Web インターフェイス、Microsoft Excel、Microsoft Project、または (Visual Studio 2010 の新機能) ダッシュボード用の Microsoft Office SharePoint Server 2007 のサポートを利用できます。これについては後で詳しく述べます (詳細については、「役割別の Team Foundation Server 2010 の作業」を参照してください)。
この記事の後半では、Team Foundation Server で基本構成を使用して初のプロジェクトを作成する方法について、手順に従って解説します。
作業の開始
概念の理解はできたので、実作業に取りかかります。 まず、Brian Harry の Team Foundation Server に関する記事に記載されている手順を実行する必要があります。この手順では、コンピューター上に必須ソフトウェアをすべてインストールし、既定のコレクション (DefaultCollection) を用意します。
この時点で、Visual Studio から Team Foundation Server コレクションに接続できます。一番簡単な接続方法は、[チーム] メニューを使用する方法です (ホーム ページ上のリンクを使用することもできます)。
Team Foundation Server が稼働しているサーバーの選択用ダイアログ ボックスが表示されます。この例では、Windows 7 コンピューターの名前は JLZW7 です。[追加] をクリックしてこのサーバーをリストに追加し、[閉じる] をクリックします。
これで、コンボ ボックスからサーバーを選択できるようになります。続いて、DefaultCollection を選択して [接続] をクリックします。
[チーム エクスプローラー] タブにサーバー接続と DefaultCollection が表示されますが、データを格納するための Team Foundation Server プロジェクトはまだありません。
このチュートリアルでは、サンプル ソリューションとして新しい Windows フォーム プロジェクトを作成します ([ファイル]、[新規作成]、[プロジェクト]、[Windows フォーム アプリケーション])。 この新しいコード プロジェクトをソース管理に追加しようとすると、エラー メッセージが表示されます。 次に例を示します。
[ソリューションをソース管理に追加] メニュー項目を選択すると、"使用できるチーム プロジェクトのソース管理フォルダーがありません" というエラー メッセージが表示されます。
このエラーは、(特に、Word プロジェクトが Team Foundation Server と Visual Studio コード ソリューション内の両方で使用されているが、区別されている点を考えると) あまりわかりやすくはありません。このエラーの意図するところは、作業に必要な資産をすべて格納するための実際の Team Foundation Server プロジェクトを作成する必要があるということです。チーム エクスプローラー で、コレクションを右クリックして [新しいチーム プロジェクト] をクリックします。
今回の例では、買掛金管理 (Accounts Payable) システム用の Team Foundation Server プロジェクトを作成します。このプロジェクトに、システム全体に必要なソリューションやデータなどをすべて格納します。必要なデータを入力したら、[次へ] をクリックします。
Agile テンプレートが既定で選択されていますが、CMMI テンプレートを選択することもできます。 プロジェクト テンプレートの種類の詳細については、MSDN を参照してください。 アジャイル方式 (TDD など) を使用する場合は、既定のテンプレートが適切です。 テンプレートを選択したら、[完了] をクリックします。
プロジェクトの作成中は、各種処理の進行状況が表示されます。
正常に作成されたら、[閉じる] をクリックします。
チーム エクスプローラー に新しいプロジェクトが表示され、その下位に [作業項目]、[ビルド]、および [ソース管理] の各フォルダーが用意されます。
この時点で、プロジェクト コレクションを更新できます。 ここでもう一度、この新しいソリューションを Team Foundation Server に追加します。ソリューション エクスプローラーでプロジェクトを右クリックし、[ソリューションをソース管理に追加] をクリックします。
今回は、Team Foundation Server に該当ソリューション用のフォルダーを新規作成するか、既定のフォルダーをそのまま使用できます。指定したら、[OK] をクリックします。
正常に終了すると、ソリューション エクスプローラーでファイルがソース管理下に置かれていることを確認できます (ファイル名の前に "+" 記号が表示されます)。
ソリューションの発行に際して行われたソース管理アクションのリストも確認できます。 コメントを追加し、[チェックイン] をクリックします。
チェックインの確認メッセージで [はい] をクリックします。
これで、新しいソリューションが Team Foundation Server に作成され、作業項目を作成できるようになりました。
作業項目
作業項目は、チーム エクスプローラー、Web フロントエンド、およびテスト マネージャー ツールを使用して、Visual Studio 内に直接作成できます。作業項目を表示するには、チーム エクスプローラーを開き、[作業項目]、[チーム クエリ]、[イテレーション 1] の順に展開します。([アクティブなバグ] などの) クエリをダブルクリックし、利用できる項目を確認できます。
この例の Team Foundation Server プロジェクトは空なので、アクティブなバグは一覧に表示されません。
最初に、新しい項目を作成します。 [チーム] メニューの [新しい作業項目] をクリックします。 機能や不具合を追跡するために、さまざまな種類の作業項目を作成できます。 今回は、[バグ] を選択します。
新しいバグのデータを入力し、[作業項目の保存] をクリックして、バグをデータベースにコミットします。
ここで "アクティブなバグ" クエリのリストを最新の状態に更新すると、新しいバグが表示されます。
実際のバグを追加して、プロジェクトを修正します。 この例では、既定の Windows フォーム アプリケーションを作成しました。 タイトルを更新する必要があるとします。
このバグを修正する必要があります。 ソリューション エクスプローラーに戻り、Form1.cs を選択してから [編集用にチェックアウト] を選択します。
[チェックアウト] をクリックして確定します。
ファイル名の横にチェック マークが表示されるため、編集用に開かれていることがわかります。
メイン ウィンドウの Text プロパティを更新したときに、依存ファイルがあれば、Visual Studio によってこれらのファイルが自動的にチェックアウトされます。
これは Windows フォーム アプリケーションですが、すべての種類のソリューションとプロジェクトでも同様です。 コードの変更結果に問題がないため、Visual Studio の下部にある [保留中の変更] タブをクリックします。
今回はバグを修正しているため、[作業項目] アイコン ボタンをクリックします。
タイトルの誤りについて記録されているバグ番号 2 を選択します。 今回のチェックイン時に、このバグを解決します。
必要なコメントを追加して [チェックイン] をクリックし、確認メッセージで [はい] をクリックします。
バグ番号 2 を最新の状態に更新すると、ステータスが [解決済み] に変化し、履歴が更新されていることがわかります。
変更セット (ソース管理変更セット) が履歴に自動的に追加されている点に注目してください。
この後引き続いて、ソリューションの公開までに訂正が必要なバグを作成し、修正できます。
Team Foundation Server のその他の操作方法
Team Foundation Server リポジトリへのアクセスに Visual Studio 自体を使用する必要がないことは前述しました。Web や Microsoft Office などの他のクライアントとの統合についても、開発努力が払われています。たとえば、Web ブラウザーを開いて、サーバー名 (http://jlzw7:8080/tfs/、8080 は既定のポート) を使用して直接サーバーにアクセスできます。
これで、コレクションやプロジェクトを操作できます。 前の手順で作成した新しい AccountsPayable プロジェクトを選択し、[続行] をクリックすると、詳細情報が表示されます。 この場合、[作業項目] タブで、新たに解決されたバグも含め、システムのバグを確認できます。
この方法だと、任意のコンピューターから特にセットアップを必要とすることなくプロジェクトを簡単に操作できます。 Microsoft Excel や Microsoft Project の使用も同様にサポートされています。 この種のアクセス方法のおかげで、プロジェクトにかかわる全員 (エンジニアとプロジェクト マネージャー) が簡単に共同で作業できます。
ここまでで、業務に利用できる有用な資産一式を用意できました。 現在 Visual SourceSafe を利用している場合は、これまでに紹介したレベルのサポートで十分であると考えられます。このチュートリアルをひとまず終了し、後でもっと高度な機能 (このチュートリアルでベータ 1 を使用して紹介したテスト シナリオなど) を試すことができます。
ビルド サポート
ワークフローの中で次に一般的な部分は、製品のビルドの自動化です。 Brian が紹介したインストール手順に従っている場合は、Team Foundation Server がインストールされているコンピューターでローカル ビルドがサポートされています。まず、チーム エクスプローラー に移動し、[ビルド] を右クリックして [ビルド定義の新規作成] をクリックします。
コード プロジェクトのプロパティ ページと似たような、定義一式の設定ウィンドウが表示されます。
[トリガー] ページでは、ビルドをどのタイミングで実行するかを指定できます。 次のように多数の選択肢があります。
[手動] は既定のオプションです。今回はこのオプションを使用します。 このオプションを使用して、適宜ビルドを行う必要があります。
[継続的インテグレーション] は、チェックインのたびに新しいビルドを作成する場合に便利です。 この方法では、何回ものチェックインが行われた後まで待たずに、新しい変更点をすぐに検証できます。
[ビルドのロール] では、ビルドに時間がかかり始め、毎回ビルドする余裕がなくなってきたときに、変更点を何回分かまとめてビルドすることができます。
[ゲート チェックイン] では、Team Foundation Server にコミットされる前にチェックイン時のビルドをすべて検証できます。これにより、ビルド ブレークが他のチーム メンバーに公開される心配がなくなります。
[スケジュール] は、チーム全体で日常的に行うビルドを設定する場合に有用です。
複数の異なるビルド定義を作成して使用し、目的に応じてさまざまなビルドの種類を採用できます。
他のタブについても自由に確認してください (各タブの詳細については、製品付属のドキュメントを参照してください)。 ただし、黄色の警告サインが [ビルドの既定値] タブに表示されている場合は、新しいビルドの格納場所を指定して、問題を解決する必要があります。この場合は、コンピューター上に作成した共有フォルダーの UNC を指定します。
ここで、ビルド定義を Team Foundation Server に保存します。チーム エクスプローラー に戻ると、プロジェクトのビルドをキューに配置できます。
確認ダイアログが表示されたら、[キューに登録] ボタンをクリックします。
コンピューター上のビルドがキューに配置されます (ステータス ページで確認できます)。
キュー内のビルドを右クリックすると、そのビルドのステータスの詳細情報が表示されます。
ここで、警告とエラーの確認、ログ ファイルの表示、格納フォルダーへの移動などの操作ができます。 たとえば、[ログの表示] リンクをクリックすると、実行されたビルド スクリプト (サブセット) を確認できます。
[格納フォルダーを開く] リンクをクリックすると、格納場所に移動します。
これで、だれでもこのビルドに対して日常的なテストや顧客へのリリースを行うことができます。
ここまでで、Team Foundation Server の基本機能を最大限に活用するために必要な情報はすべて紹介しました。
役割別の Team Foundation Server 2010 の作業
チームで Visual Studio アプリケーション ライフサイクル管理 (ALM) を使い始める際は、管理者がサーバーを設定し、プロジェクト マネージャーがチーム プロジェクトを作成し、他のチーム メンバーが作業環境を設定します。 このトピックの以降に掲載しているリンクは、ソフトウェア開発における次の役割別に、Team Foundation Server を使い始めるにあたって必要な作業を案内しています。
Team Foundation Server の管理者
プロジェクト マネージャー
ソース管理とビルド マネージャー
各チーム メンバー
Team Foundation の管理者の作業
このトピックの前半のチュートリアルを行った場合は、基本構成を使用して Team Foundation Server がインストールされています。 しかし、以前にインストールした Team Foundation Server のアップグレードや、Team Foundation Server またはその必須コンポーネントのカスタム インストールの実行など、別のインストール作業を実行する必要が生じることもあります。
詳細については、Microsoft Web サイトの「Visual Studio Team System 2010 用 Team Foundation インストール ガイド」のこのトピックを参照してください。
このトピックの前半のチュートリアルを行った場合は、Team Foundation Server のインストール中に、プロジェクトの作成に必要なアクセス許可がすべて自動的に付与されています。 管理者、プロジェクト管理者、またはその他の役割としての業務に必要なアクセス許可を他のユーザーに付与することができます。
詳細については、「ユーザー、グループ、およびアクセス許可の構成」を参照してください。
ハードウェア障害やその他の事態が発生した場合に備えて、データを確実にバックアップするメンテナンス プランを作成します。 詳細については、「配置のバックアップおよび復元」を参照してください。
いずれかのチームで Visual Studio Lab Management を使用する場合は、Microsoft System Center Virtual Machine Manager をインストールし、Lab Management を構成し、仮想環境を作成します。
詳細については、「Lab Management の初めての構成」を参照してください。
いずれかのチームがリモートからビルドを配置してテストを実行する場合は、物理マシンまたは仮想マシン上にテスト コントローラーとテスト エージェントをインストールします。
詳細については、「テスト コンピューターでのテストの実行またはデータの収集の設定」を参照してください。
このトピックの前半のチュートリアルを行った場合は、基本構成を使用して Team Foundation ビルド がインストールされています。 しかし、必要なビルド環境を整備するために、所定の管理業務の実行が必要になることもあります。
詳細については、「Team Foundation のビルドの管理」を参照してください。
運用上のニーズの変化に合わせて、配置の変更または修正のオプションを見直します。 詳細については、「サーバー構成の管理」を参照してください。
プロジェクト マネージャーの作業
使用する Team Foundation のクライアントをインストールします。
詳細については、「Visual Studio のインストール」を参照してください。
プロジェクト リソースの要件と、チーム プロジェクトの作成先とするプロジェクト コレクションを判断します。
詳細については、「チーム プロジェクトを開始するためのクイック スタート ガイド」を参照してください。
プロセス テンプレートを選択する。
詳細については、「プロセス テンプレートの選択」を参照してください。
チーム エクスプローラー で、チーム プロジェクトを作成します。
詳細については、「チーム プロジェクトの作成」を参照してください。
(省略可能) チーム プロジェクトの製品領域とマイルストーンを定義します。
詳細については、「区分およびイテレーションの作成および修正」を参照してください。
チーム プロジェクトでの作業に必要なアクセス許可をチーム メンバーに与えます。
詳細については、「チーム プロジェクトへのユーザーの追加」を参照してください。
(省略可能) 特定のチーム メンバーに別途アクセス許可を付与する。
Team Foundation バージョン管理下のソース コード管理、ビルドの管理、テストの管理、テスト用ラボ環境の管理など、プロジェクト レベルのさまざまなアクティビティを担当するチーム メンバーに対し、別途アクセス許可を追加しなければならない場合があります。 個々のチーム メンバーまたはグループに対して、特定のアクセス許可を割り当てることができます。
詳細については、「Team Foundation Server のアクセス許可」の次のセクションを参照してください。
ビルド レベルのアクセス許可
プロジェクト レベルのアクセス許可
作業項目トラッキングの区分レベルおよびイテレーション レベルのアクセス許可
バージョン コントロールのアクセス許可
Lab Management のアクセス許可
(省略可能) レポートの作成者に追加のアクセス許可を与えます。
データ ウェアハウスに格納されているデータにアクセスするレポートを作成または変更するには、データ ウェアハウスを構成するデータベースに対する読み取りアクセスがチーム メンバーに割り当てられている必要があります。 詳細については、「Visual Studio ALM 用データ ウェアハウスのデータベースへのアクセスの許可」を参照してください。
チーム プロジェクトのリソースや登録アクティビティをチーム メンバーに通知する。
詳細については、「チーム メンバーへのチーム プロジェクト リソースの通知」を参照してください。
製品の計画を立てる。
MSF for Agile Software Development v5.0 のプロセス テンプレートをベースにしてチーム プロジェクトを作成した場合は、製品計画ブックを使用して製品バックログを作成することができます。 製品計画ブックを使用すると、ユーザー ストーリーのバックログを管理して、複数のイテレーション (スプリントとも呼ばれます) 間で作業負荷を分散させることができます。 詳細については、「製品計画ブック」を参照してください。
MSF for CMMI Process Improvement v5.0 のプロセス テンプレートをベースにしてチーム プロジェクトを作成した場合は、製品要求チーム クエリを使用して製品の計画に着手することができます。 このクエリは、Office Excel で開いて要件を追加し、Team Foundation に発行することができます。 Office Project を使用してプロジェクトの計画とスケジュールを立てることもできます。 詳細については、次のトピックを参照してください。
バージョン コントロールとビルド マネージャーの作業
バージョン コントロールを構成します。
詳細については、「Team Foundation バージョン管理の管理」を参照してください。
Team Foundation ビルド を使用している場合は、各チーム プロジェクトに対してビルド定義を作成します。
詳細については、「アプリケーションのビルド」を参照してください。
各チーム メンバーの作業
Team Foundation のクライアントをインストールして使用できるようにします。
詳細については、「Visual Studio のインストール」を参照してください。
バージョン コントロールのためのワークスペースを設定します。
詳細については、「ワークスペースの作成とチーム プロジェクトの操作」および「バージョン管理へのファイルの追加」を参照してください。
タスクやその他の作業項目の作成、変更、および検索手順を習得します。
詳細については、「作業の追跡の概要」を参照してください。